Za pomocą narzędzia CalculateField_management można określić jednostkę miary podczas obliczania długości kształtu:
#Calculate polyline lengths in miles
polylines = "C:\sampleShape.shp"
arcpy.CalculateField_management(polylines, "shapeLen", "!Shape.length@MILES!", "PYTHON_9.3")
Chciałbym zrobić to samo w obrębie kursora za pomocą „SHAPE @ LENGTH” każdej funkcji, przy czym długość jest zwracana w wybranej przeze mnie jednostce:
#hypothetical example 1
with arcpy.da.UpdateCursor(polylines, field_names=["[email protected]", "shapeLen"]) as upCurs:
for row in upCurs:
row[1] = row[0]
upCurs.updateRow(row)
A może używając (mniej wydajnego) obiektu geometrii @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)
Czy jest jakiś sposób, aby to zrobić?
źródło