6 votos

Configuración de unidades en python mediante ArcGIS 10

Quiero calcular el área de cada polígono en un shapefile. ¿Cómo puedo controlar las unidades de medida son?

def getArea(shapefile):
    """Print area of polygons"""

    Rows = ARCPY.SearchCursor( shapefile ) 

    for row in Rows:

        tmp_area = row.area # this assumes a field name 'area' exists
        print str(tmp_area) 

Miré para ver si hay alguna opción en la arcpy.env. módulo, pero no podía encontrar uno. Si hago establecer las unidades en mi secuencia de comandos de python, eso no significa que todos los aspectos de la shapefile permanecen sin cambios? Por ejemplo, si el shapefile había unidades de pies, en mi script puedo cambiar las unidades de KM, el archivo de forma todavía tienen unidades de pies después?

7voto

Daniel Broekman Puntos 1951

Las unidades son siempre ligado a su sistema de coordenadas. Suponiendo que estamos hablando de un sistema de coordenadas proyectadas, las unidades están en las unidades utilizadas por la referencia espacial del conjunto de datos. Si estás conjunto de datos está en metros, su área será en metros cuadrados. Usted debe ser capaz de obtener esta información de su conjunto de datos espaciales de referencia. Usted puede obtener el conjunto de datos espaciales de referencia con:

sr = arcpy.Describe(dataset).spatialReference
unit = sr.linearUnitName 

Para responder a su segunda pregunta, se calcula el área en alguna unidad distinta de lo que su referencia espacial de los usos no podrá modificar los datos subyacentes. La única manera de cambiar las unidades de los usos de los datos es utilizar la herramienta del proyecto.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X