Quantcast
Channel: Forums - Python
Viewing all articles
Browse latest Browse all 2485

ArcMap10.1 Loop through a unique list to create new layers for each unique name.

$
0
0
I have only taken one GIS class that used python so this is messy!

I was able to get the unique list from the attributes table under the column 'Layer'. Next I need the program to use each unique name from that list, select by attributes and create a new layer file for each unique name. I have the count in there because there are 33 different unique names in that list. I know there is a better way to do this, I just don't remember how.

I realize my code is far from perfect so if you have other questions or tips please don't hesitate to ask.

import arcpy, sys, os, traceback

fc = r"C:\Users\Drew\Desktop\Montpelier\PythonTest\PythonGDB.gdb\dshline_Project"
field = ["Layer"]
valueList = []

#Use search cursor to aquire a list of unique values
with arcpy.da.SearchCursor(fc, field) as cursor:
for row in cursor:
valueList.append(row[0])

uniqueSet = set(valueList)
uniqueList = list(uniqueSet)
uniqueList.sort()

del cursor

count = 0
name = uniqueList[count]
outputname = r"C:\Users\Drew\Desktop\Montpelier\PythonTest\PythonGDB.gdb\"" + name
if count < 34:
arcpy.MakeFeatureLayer_management (r"C:\Users\Drew\Desktop\Montpelier\PythonTest\PythonGDB.gdb\dshline_Project", "layer")
arcpy.SelectLayerByAttribute_management("layer","NEW_SELECTION", """Layer" = """ + name)


## arcpy.SelectLayerByAttribute_management("dshline_Project","NEW_SELECTION",""""Layer" = 'ANNOT'""")

arcpy.CopyFeatures_management(fc,outputname,"#","0","0","0")
count += 1
else:
print "Done"

Please Help!

Viewing all articles
Browse latest Browse all 2485

Trending Articles