Tengo un script de Python que se crea un punto de shapefile desde un archivo csv dentro de una secuencia de comandos de Python. Este script me da un ValueError para la longitud de campo (LON), si no hay un extra absurdo campo a la derecha de la misma. A continuación es el error y cómo el archivo csv se ha formateado para eliminar este error:
lonValueIndex = valueList.index("LON")
ValueError: list.index(x): x not in list
DATE LAT LON TEST
2/19/2011 34.27531 -118.21071 a
2/19/2011 34.18069 -118.34079 b
2/19/2011 34.0215 -118.21857 c
¿Ves que la Prueba de campo con los valores de a, b y c? Si no pongo un campo a la derecha de la LON campo me sale el ValueError. A continuación es parte de mi script. ¿Alguien sabe por qué ese extra de campo es necesario? Gracias.
import arcpy, csv
arcpy.env.overwriteOutput = True
#Set variables
arcpy.env.workspace = "C:\\GIS\\StackEx\\"
outFolder = arcpy.env.workspace
pointFC = "art2.shp"
coordSys = "C:\\Program Files\\ArcGIS\\Desktop10.0\\Coordinate Systems" + \
"\\Geographic Coordinate Systems\\World\\WGS 1984.prj"
csvFile = "C:\\GIS\\StackEx\\chicken.csv"
fieldName = "DATE1"
#Create shapefile and add field
arcpy.CreateFeatureclass_management(outFolder, pointFC, "POINT", "", "", "", coordSys)
arcpy.AddField_management(pointFC, fieldName, "TEXT","","", 10)
gpsTrack = open(csvFile, "r")
headerLine = gpsTrack.readline()
#print headerLine
valueList = headerLine.split(",")
print valueList
latValueIndex = valueList.index("LAT")
lonValueIndex = valueList.index("LON")
dateValueIndex = valueList.index("DATE")
# Read each line in csv file
cursor = arcpy.InsertCursor(pointFC)
for point in gpsTrack.readlines():
segmentedPoint = point.split(",")
# Get the lat/lon values of the current reading
latValue = segmentedPoint[latValueIndex]
lonValue = segmentedPoint[lonValueIndex]
dateValue = segmentedPoint[dateValueIndex]
vertex = arcpy.CreateObject("Point")
vertex.X = lonValue
vertex.Y = latValue
feature = cursor.newRow()
feature.shape = vertex
feature.DATE1 = dateValue
cursor.insertRow(feature)
del cursor