Estoy esperando que alguien va a ser capaz de ayudar a mí aquí. He escrito un breve ArcGIS secuencia de comandos de Python (principalmente improvisaba a partir de otros ejemplos) que ordena una característica de la clase ascendente basado en dos campos (ruta, y la secuencia). Un tercer campo es, a continuación, rellena con un ascendente número. Un bloque If reinicia la numeración de cada ruta. El problema es el rendimiento. El proceso es muy lento cuando se ejecuta en mis datos de prueba (~8000 registros). Pienso en la ejecución de este en 100000 registros, por lo que cualquier ayuda o sugerencia para mejorar la velocidad será apreciado. Gracias. James
import arcpy,os
from arcpy import env
inTable = arcpy.GetParameterAsText(0) # Input feature class
# set variables for route and sequence starting values
route_previous = ""
route_current = ""
new_sequence = 1
# create an update cursor that will append ascending order sequence number to the Service_Type field
# sorts ascending by Route and Sequence
rows = arcpy.UpdateCursor(inTable,'','','','Route A;Sequence A')
for row in rows:
route_current = row.Route
# if the current service location is on the same route as the previous
if route_current == route_previous:
row.setValue("Service_Type",new_sequence)
new_sequence += 1
rows.updateRow(row)
# if the current service location is on a different route to the previous
else:
new_sequence = 1
row.setValue("Service_Type",new_sequence)
new_sequence += 1
route_previous = row.Route
rows.updateRow(row)
# delete the update cursor
del rows