No puede actualizar su campo FID, por lo que debe crear una nueva clase de característica en la que inserte los polígonos en el orden que desee. Sin embargo, esto no es necesariamente una buena idea porque el FID podría cambiar en caso de una sesión de edición. De todos modos, el primer paso es una unión espacial para obtener el atributo de las líneas que están dentro de sus polígonos. Para evitar una relación espacial ambigua, recomiendo hacer esta unión espacial usando el punto central ("feature vertices to point" con la opción "MID"), pero esto no es necesario.
En Python, puede utilizar arcpy.da.searchCursor(subshed, ("joint_subriver_FID_FIELD" , "SHAPE@"))
A continuación, se realiza un bucle en el cursor para crear una tupla de Python
Usted ordenar esta tupla en función de su primer elemento
Usted crea un insertcursor en un shapefile vacío
Se hace un segundo bucle para insertar las filas en el orden que se desee
EDITAR :
Primer paso: asignar el FID de las polilíneas a los polígonos. Crear puntos para evitar ambigüedades entre las líneas y los polígonos al unirlos. Cree una copia del campo FID de la línea para asegurarse de que se transmitirá a los puntos.
arcpy.featureVerticesToPoints_management("lines.shp", "points.shp", "MID") arcpy.SpatialJoin_analysis("polygon.shp", "points.shp", "joinpolygon.shp")
Ahora tienes una nueva capa de polígono con los atributos de las líneas. A continuación, debe crear un nuevo shapefile de tipo "polígono" que almacenará las nuevas geometrías. El shapefile debe contener también los campos que desea conservar. Sobre la base de estos dos shp (jointpolygon.shp y newpolygon.shp), puede utilizar el siguiente Python script.
fc = "C:/jointpolygon.shp"
sc = arcpy.da.SearchCursor(fc, ("FID_from_lines", "otherfield","SHAPE@))
storage = []
for row in cursor:
storage.append(row)
sortedlist = sorted(storage, key=lambda x: x[0]) #sort based on line FID
poly = "C:/temp/newpolygon.shp"
fcout = arcpy.da.InsertCursor(poly, ("FID_from_lines","otherfield","SHAPE@"))
for i in sortedlist:
fcout.insertRow(i)
del fcout, sc