I have an assignment to create a polyline feature class of rhino tracks from a csv file. I am getting an error that says "unbound method add() must be called with Array instance as first argument (got type instance)". this is for line 104, the line I underlined and put in bold below in my code. What does this mean? If there are other obvious code issues, please feel free to comment. I am unsure if my code is correct. Thank you for your time! Cheers, Carie
# Reads rhino positions from an Excel-originating CSV file import arcpy from arcpy import env import fileinput import string import os env.overwriteOutput = True # Hard code file paths spreadsheet = "C:/WCGIS/Geog485/Lesson4/ RhinoObservations.csv" # Sample of data ###Observer,X,Y,Rhino,Comments ##Ben,26.99391,-19.10447,Bo, ##Ben,27.00071,-19.1089,Tulip,Bathing ##Ben,26.9919,-19.10511,Bo, ##Ben,27.00071,-19.1059,Tulip, ##Ben,26.96809,-19.09578,Patches, ##Ben,26.97808,-19.11016,Dinky, ##Ben,26.99213,-19.10395,Bo, ##Ben,27.00083,-19.10326,Tulip, ##Ben,26.97038,-19.09863,Patches,Not doing much of anything ##Ben,26.97768,-19.11153,Dinky, ##Ben,26.99107,-19.10421,Bo, ##Ben,27.00138,-19.1021,Tulip, ##Ben,26.97122,-19.0991,Patches, ##Ben,26.97551,-19.11269,Dinky, ##Ben,26.9904,-19.10553,Bo, ##Ben,26.99893,-19.10342,Tulip, # output feature class?? feature class doesn't exist yet, so not sure how to do this?? fcname = "C:/WCGIS/Geog485/Lesson4" outname = "C:/WCGIS/Geog485/Lesson4/Rhino.shp" # Open the CSV file & read the header line observations = open(spreadsheet, "r") headerline = observations.readline() fieldList = headerline.split(",") ### 0 1 2 3 4 ### Observer,X,Y,Rhino,Comments # Look through the header to find "X", "Y" and the "Rhino" field indices rhinoIndex = fieldList.index("Rhino") xIndex = fieldList.index("X") yIndex = fieldList.index("Y") ## print "Rhino "+str(rhinoIndex) +" X "+str(xIndex)+" Y "+str(yIndex) # Create a list / array for RhinoTracks rhinoTracks = {} # create the output feature class arcpy.CreateFeatureclass_management ("C:/WCGIS/Geog485/Lesson4", "Rhino.shp", "POLYLINE") # open an insert cursor for the new feature class cur = arcpy.InsertCursor(outname) # Loop through the rest of the file to read in all of the rhinos for line in observations.readlines(): ##Ben,26.99391,-19.10447,Bo, segmentedLine = line.split(",") rhino = segmentedLine[rhinoIndex] #print rhino # If rhino exists in dictionary - get the array from its key & add a point if rhino in rhinoTracks: coordArray = rhinoTracks[rhino] # create a new row or feature, in the feature class ## coordArray { [x,y] } lineArray = arcpy.Array() coord = arcpy.Point coord.X = segmentedLine[xIndex] coord.Y = segmentedLine[yIndex] ## add point to coordinate array coordArray.add(coord) #print "Rhino is "+rhino+" added point "+str(segmentedLine[xIndex])+" "+str(segmentedLine[yIndex]) ## coordArray { [x,y],[x1,y1] } feat = cur.newRow() # set the geometry of the new feature to the array of points feat.shape = lineArray #insert the feature cur.insertRow(feat) lineArray.removeAll() lineArray.add(coord) # If rhino doesn't exist in dictionary - make a new array & add a point else: cur = arcpy.InsertCursor(outname) ## Create a coordinate array coordArray = arcpy.Array ## Create a point object coord = arcpy.Point coord.X = segmentedLine[xIndex] coord.Y = segmentedLine[yIndex] ## add point to coordinate array *coordArray.add(coord) * feat = cur.newRow() # set the geometry of the new feature to the array of points feat.shape = lineArray #insert the feature cur.insertRow(feat) lineArray.removeAll() lineArray.add(coord) ## add coordinate array to my Dictionary (list of rhinos) rhinoTracks[rhino] = coordArray
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor