Screenshot (in two parts) of the Module 7 script results. |
Rough pseudocode generally replicating the above is as follows:
Start
Set workspace environment
Create new geodatabase
Print shapefile feature class list
Copy shapefile data to the new geodatabase
Set SearchCursor to identify each city that is a county seat
Create a new dictionary
Populate the new dictionary with all cities that are county seats
Key = City Name, Value = City Population
Print the county seat dictionary
End
Just after the point when I copied the shapefile data to the new geodatabase is where things started to get a bit hairy... While there were problems with my original code attempts using the SearchCursor method, the real issues lay with the fact that my geodatabase didn't initially populate! This was a little something I figured out after several attempts to run the code - once I was locked out of my dataset (and decided to delete the geodatabase in ArcCatalog to start over) I found that I couldn't expect my code to search a cities feature class if it never actually existed in my geodatabase in the first place! The solution was to use the arcpy.ClearEnvironment function... after that I finally had a working code.
My success was short-lived - getting the dictionary to populate was also not so easy for me. The hint in the lab was that the code need to iterate within a for loop, and an example of how to set up the iteration was even provided. It sounded simple (and looking back on it, it IS simple) but this single step took me hours to get through. To summarize my problems and solution mini-drama:
- The original SQL query used from my previous SearchCursor step had been deleted after that step... so I needed to re-write that bit of code.
- The for loop needed its iteration cycle set up... first by defining my variables, then by plugging these variables into the iteration code suggestion.
- The number used to define the for loop variables needed to match the placement of my variable within my SearchCursor code; for example, if my city was listed first within my SearchCursor then it needed to be listed as [0] within my for loop code.
No comments:
Post a Comment