Estoy creando un shapefile basado en tres columnas de mi archivo CSV: Latitud, Longitud y Laps. En su mayor parte, entiendo cómo bucle a través de los datos y crear los muchos puntos basados en la columna de latitud y longitud, pero estoy teniendo problemas con mi columna Laps. Tengo que ser capaz de bucle a través de los datos, pero excluir las columnas en blanco. A continuación se muestra una muestra de mis datos del archivo CSV. La fila que necesita ser excluida es la fila con el tiempo total de la vuelta para esa vuelta (es decir, #Lap 0...)
A continuación se muestra el código que estoy utilizando. Cuando lo ejecuto, obtengo un Error 99999: Algo inesperado ha hecho que la herramienta falle.
# This script reads GPS tracks in CSV format and
# writes the geometries (polyline) from the list of coordinate pairs
import csv
import arcpy
def addPolyline(fc, array, sr):
polyline = arcpy.Polyline(array, sr)
with arcpy.da.InsertCursor(fc, ("SHAPE@",)) as cursor:
cursor.insertRow((polyline,))
array.removeAll()
# setup workpace to save the file
arcpy.env.workspace = r"C:\\"
# setup the feature class and spatial reference
polylineFC = "carpath.shp"
sr = arcpy.SpatialReference("GCS_WGS_1984")
arcpy.CreateFeatureclass_management(arcpy.env.workspace, polylineFC, "POLYLINE", spatial_reference = sr)
spatialref = arcpy.Describe(polylineFC).spatialReference
# open the input file
wakefieldRaceWay = open (arcpy.env.workspace + "\WakefieldParkRaceway_20160421.csv", "r")
# setup csv reader and process the header
csvReader = csv.reader(wakefieldRaceWay)
header = next(csvReader)
latIndex = header.index("Latitude")
lonIndex = header.index("Longitude")
lapIndex = header.index("Lap")
# create an array
vertices = arcpy.Array()
# create a loop to iterate over lines but
# exclude lines that have zero data in them
for row in csvReader:
isLap = row[lapIndex]
if isLap == '\n':
if vertices.count> 0 :
addPolyline(polylineFC, vertices, spatialref)
# Loop through the lines in the file and get each coordinate
# put the coordinates into a tuple and add it to the list
Latitude = row[latIndex]
Longitude = row[lonIndex]
vertex = arcpy.Point(Latitude, Longitude)
vertices.add(vertex)
# add the last segment manually
addPolyline(polylineFC, vertices, spatialref)