Mis disculpas por la demora, pero pensé que había puesto esta para ayudar a explicar (y la portada de mi último post. Hice esta prueba y confirmado el siguiente código funciona, tal vez más rápido que la calculadora de campo. Mis disculpas si he engañado a nadie con el uso de la '@' token -- en lugar de ello he utilizado una referencia espacial de objetos con la actualización del cursor para hacer de la 'sobre la marcha' de la conversión. La tecla de línea (ver más abajo) es la configuración de la actualización del cursor, esencialmente el 3er parámetro permite la conversión de la unidad sin el paso intermedio, CalculateAreas_stats (o incluso sin un paso más con la conversión de la unidad), como he prometido no era necesario (@ R. K. - lo siento por no haberlo explicado mejor antes):
Aquí está la crítica de línea en el código:
filas = arcpy.UpdateCursor(fc ", objSR)
EDIT: Una cosa más, sobre el "acceso a datos" módulo de actualización de cursor (arcpy.da.UpdateCursor), que es parte de la pregunta original -- no tengo 10.1 en este punto, pero la documentación muestra que el SR objeto se admite la misma manera "...puede ser especificado con un SpatialReference objeto o una cadena equivalente." Se ve como el acceso a la geometría ha cambiado un poco, el uso de la '@' token: FORMA@ÁREA
http://resources.arcgis.com/en/help/main/10.1/index.html#//018w00000014000000
import arcpy, os
# Target shapefile (in native state plane feet units):
fc = r'C:\Documents and Settings\whitley-wayne\Desktop\updatecursorShapeArea\New_ShapefileBuffer.shp'
# The state plane system projection file:
prjFilename = r'NAD 1983 HARN StatePlane Florida East FIPS 0901 (Meters).prj'
# The system subdirectory tree:
coordSysDir = r'Coordinate Systems\Projected Coordinate Systems\State Plane\NAD 1983 HARN (Meters)'
# ...getting the ArcGIS install directory and joining the above path- and file- names...
prjFilepath = os.path.join(os.path.join(arcpy.GetInstallInfo()['InstallDir'], coordSysDir), prjFilename)
# The spatial reference object (establishing a metric unit of measure):
objSR = arcpy.SpatialReference(prjFilepath)
# Opening an update cursor using the spatial reference object (in meters)...
# The shapefile native units are still feet.
# The update cursor will update the Shape_Area field using objSR for the units conversion to meters:
rows = arcpy.UpdateCursor(fc, '', objSR)
for row in rows:
row.Shape_Area = row.shape.area
rows.updateRow(row)
del row, rows