4 votos

¿Cómo se escribe un polígono 3D usando ArcPy?

Estoy trabajando en algunos scripts con polígonos 3D utilizando ArcPy (ArcGIS 10). La lectura y manipulación de datos funciona bien. Sin embargo, parece que escribir la salida de nuevo en un archivo de forma no funciona, solo genera archivos 2D. Para escribir, utilizo la siguiente función:

import arcpy    
def write_new_MP(data,outfile):
        array = arcpy.Array()
        point = arcpy.Point()
        features=[]
        for feature in data:
            for part in feature:         
                point.X=part[0]
                point.Y=part[1]
                point.Z=part[2]
                array.add(point)
            MP=arcpy.Polygon(array,None,True,True)
            array.removeAll()
            features.append(MP)
        arcpy.CopyFeatures_management(features, outfile,"", "0", "0", "0")
        return

Los datos son una lista como data=[[[5,5,5],[10,5,5],[10,10,5],[5,10,5],[5,5,5]],[[15,15,15],[10,15,15],[10,10,15],[15,10,15],[15,15,15]]]

¿Alguien sabe por qué los valores de Z no se están utilizando al generar la salida?

0 votos

¿Cómo has confirmado que la Z no está escrita en el archivo? ¿Estás viendo esto en el Analista 3D?

0 votos

Al ver en arcscene, todos los objetos aparecen planos sin importar los datos de z que se escriban

0 votos

¿Estás utilizando una clase de entidad existente o estás creando la fc como parte de este script? Si es parte del script, ¿puedes publicar esa parte también? ¿Cómo estás configurando el sistema de coordenadas, etc.?

12voto

Azim Puntos 4541

¿Estás utilizando una clase de entidad existente o estás creando la clase de entidad como parte de este script? Si es parte del script, ¿puedes publicar esa parte también? ¿Cómo estás estableciendo el sistema de coordenadas, etc.?

1voto

Jim Puntos 4057

El CreateFeatureClass_management tiene las banderas necesarias para habilitar los valores Z, mientras que CopyFeatures_management no. Quizás ese sea el cambio necesario que debes hacer.

1voto

Bushibytes Puntos 301

Permíteme decir primero que pasé unos minutos aprendiendo qué es GIS y unos minutos más aprendiendo qué es arcpy. Además, no tengo el software requerido para verificar tu código. Sin embargo, la similitud entre tu código y el código en Arc Gis Resource Center-Desktop10-polygon example-Create a polyline feature class from scratch es sorprendente. Lo que falta en tu código es lo siguiente.

"Agregar el primer punto del array para cerrar el polígono"

array.add(array.getObject(0))

entre tus líneas

array.add(point)
MP=arcpy.Polygon(array,None,True,True)

¿Ya lo intentaste?

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