workspace = arcpy.env.workspace = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb" fc = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb\Selected_CBSAs" uniqueSet = set([r[0] for r in arcpy.da.SearchCursor (fc, ["ID"])]) for uniqueVal in uniqueSet: print "Creating Feature Dataset for CBSA " + uniqueVal + "..." arcpy.CreateFeatureDataset_management(workspace, "CBSA_" + str(uniqueVal)) print "Successfully created CBSA " + str(uniqueVal) + " Feature Dataset." for uniqueVal in uniqueSet: featureDataset = arcpy.ListDatasets("*" + str(uniqueVal), "Feature") workspace = arcpy.env.workspace = featureDataset print "Splitting CBSA " + str(uniqueVal) + "..." arcpy.Select_analysis(fc, "CBSA_" + str(uniqueVal) + "_bdy", "ID = " + str(uniqueVal)) print "Success."
Solved! Go to Solution.
import arcpy, os arcpy.env.workspace = workspace = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb" fc = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb\Selected_CBSAs" uniqueSet = set([r[0] for r in arcpy.da.SearchCursor (fc, ["ID"])]) for uniqueVal in uniqueSet: print "Creating Feature Dataset for CBSA " + uniqueVal + "..." arcpy.CreateFeatureDataset_management(workspace, "CBSA_" + str(uniqueVal)) print "Successfully created CBSA " + str(uniqueVal) + " Feature Dataset." for uniqueVal in uniqueSet: featureDataset = arcpy.ListDatasets("*" + str(uniqueVal), "Feature")[0].encode('utf-8') # remove unicoding arcpy.env.workspace = os.path.join(workspace, featureDataset) print "Splitting CBSA " + str(uniqueVal) + "..." arcpy.Select_analysis(fc, "CBSA_" + str(uniqueVal) + "_bdy", "ID = " + str(uniqueVal))
import arcpy, os arcpy.env.workspace = workspace = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb" fc = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb\Selected_CBSAs" uniqueSet = set([r[0] for r in arcpy.da.SearchCursor (fc, ["ID"])]) for uniqueVal in uniqueSet: print "Creating Feature Dataset for CBSA " + uniqueVal + "..." arcpy.CreateFeatureDataset_management(workspace, "CBSA_" + str(uniqueVal)) print "Successfully created CBSA " + str(uniqueVal) + " Feature Dataset." for uniqueVal in uniqueSet: featureDataset = arcpy.ListDatasets("*" + str(uniqueVal), "Feature")[0].encode('utf-8') # remove unicoding arcpy.env.workspace = os.path.join(workspace, featureDataset) print "Splitting CBSA " + str(uniqueVal) + "..." arcpy.Select_analysis(fc, "CBSA_" + str(uniqueVal) + "_bdy", "ID = " + str(uniqueVal))
for uniqueVal in uniqueSet: print "Creating Feature Dataset for CBSA " + uniqueVal + "..." arcpy.CreateFeatureDataset_management(workspace, "CBSA_" + str(uniqueVal)) print "Successfully created CBSA " + str(uniqueVal) + " Feature Dataset." print "Resetting workspace to CBSA " + str(uniqueVal) + "'s Feature Dataset..." arcpy.env.workspace = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb\CBSA_" + str(uniqueVal) print "Successfully reset Workspace." print "Splitting CBSA " + str(uniqueVal) + " into Feature Dataset..." arcpy.Select_analysis(fc, "CBSA_" + str(uniqueVal) + "_bdy", '"ID" = ' + "'" + str(uniqueVal) + "'") print "Successfully split CBSA " + str(uniqueVal) + " into Feature Dataset."
Can you or anyone else spot any areas I could revise to boost performance? ]
for uniqueVal in uniqueSet:
print "Creating Feature Dataset for CBSA " + uniqueVal + "..."
arcpy.CreateFeatureDataset_management(workspace, "CBSA_" + str(uniqueVal))
print "Successfully created CBSA " + str(uniqueVal) + " Feature Dataset."
print "Resetting workspace to CBSA " + str(uniqueVal) + "'s Feature Dataset..."
arcpy.env.workspace = r"C:\Users\jdk588\Documents\New File Geodatabase.gdb\CBSA_" + str(uniqueVal)
print "Successfully reset Workspace."
print "Splitting CBSA " + str(uniqueVal) + " into Feature Dataset..."
query = '"ID" = ' + "'%s'" %uniqueVal
tmp = arcpy.MakeFeatureLayer_management(fc, 'tmp_lyr', query)
arcpy.CopyFeatures_management(tmp, 'CBSA_%s_bdy' %uniqueVal)
print "Successfully split CBSA " + str(uniqueVal) + " into Feature Dataset."
from datetime import datetime as d startTime = d.now() # Do all the stuff print '(Elapsed time: %s)' %(str(d.now() - startTime)[:-3])