Estoy creando un polígono rectangular muy básico usando un código Python muy básico
nCols,nRows=100,100
corners =[[0,0],[0,nRows],[nCols,nRows],[nCols,0],[0,0]]
p=arcpy.Polygon(arcpy.Array([arcpy.Point(*coords) for coords in corners]))
arcpy.AddMessage(p.area)
y este es un mensaje
10000.0244140774
Parece que la conversión forzada a dobles es una razón, como se describe en Las exportaciones de ArcGIS 10 pierden precisión con los números grandes
¿Quién puede decir cómo obtener un resultado más preciso?
P.D. El polígono creado en ArcView 3 utilizando las mismas coordenadas tiene un área de 10000.0000
Esto es una actualización de mi pregunta original . Código ligeramente modificado:
nCols,nRows= 101, 101
corners =[[1,1],[1,nRows],[nCols,nRows],[nCols,1],[1,1]]
p=[arcpy.PointGeometry(arcpy.Point(*coords)) for coords in corners]
arcpy.CopyFeatures_management(p, "d:/rubbish/points.shp")
p=arcpy.Polygon(arcpy.Array([arcpy.Point(*coords) for coords in corners]))
arcpy.AddMessage(p.area)
produjo la respuesta correcta (!). Área del polígono = 10000.
Esto es un alivio, no tengo que escribir mi propio procedimiento en GIS para calcular el área de la forma. Lo que no me gusta son las coordenadas de los puntos que forman este polígono: