Utilizzando lo strumento CalculateField_management, è possibile specificare l'unità di misura quando si calcola la lunghezza della forma:
#Calculate polyline lengths in miles
polylines = "C:\sampleShape.shp"
arcpy.CalculateField_management(polylines, "shapeLen", "!Shape.length@MILES!", "PYTHON_9.3")
Vorrei fare la stessa cosa all'interno di un cursore usando 'SHAPE @ LENGTH' di ogni funzione, con la lunghezza restituita in un'unità di mia scelta:
#hypothetical example 1
with arcpy.da.UpdateCursor(polylines, field_names=["SHAPE@LENGTH.FEET", "shapeLen"]) as upCurs:
for row in upCurs:
row[1] = row[0]
upCurs.updateRow(row)
O forse usando l'oggetto (meno efficiente) della geometria @SHAPE ?:
#hypothetical example 2
with arcpy.da.UpdateCursor(polylines, field_names=["@SHAPE", "shapeLen"]) as upCurs:
for row in upCurs:
row[1] = row[0].length@FEET
upCurs.updateRow(row)
C'è un modo per farlo?