2 votos

¿Cómo se crea una arcpy.Polyline en 3D?

Trabajando con ArcGIS Pro 2.2, tengo que crear una polilínea en 3D a partir de una matriz de coordenadas XYZ.

Cuando intento este fragmento de código:

array = arcpy.Array([arcpy.Point(0, 0, 0),arcpy.Point(0, 100, -1000)])
polyline = arcpy.Polyline(array, has_z=True)

Recibo un error que dice que has_z es de solo lectura:

AttributeError: DescribeGeometry: Atributo de solo lectura has_z

En la documentación realmente no parece ser así.

Cuando intento no especificar el parámetro has_z:

array = arcpy.Array([arcpy.Point(0, 0, 0),arcpy.Point(0, 100, -1000)])
polyline = arcpy.Polyline(array)

No recibo errores, pero la Polilínea se establece en hasz=False como debe ser.

Al hacer polyline.firstPoint se confirma esto:

¿Existe otra forma legítima de hacerlo?

Me parece incorrecto que el parámetro has_z sea de solo lectura.

6voto

Randyaa Puntos 904

Ok, lo hice yo mismo. Creo que probablemente sea un error.

Al usar parámetros posicionales en lugar de parámetros de nombre, no hay error. Este es el código que utilicé con éxito para crear una polilínea 3D, espero que ayude. Probablemente informaré esto a Esri.

array = arcpy.Array([arcpy.Point(0, 0, 0),arcpy.Point(0, 100, -1000)])
polyline = arcpy.Polyline(array, None, True)
polyline.firstPoint
>>>  #¡CORRECTO!

EDICIÓN

Aquí está el enlace al hilo de GeoNet que abrí.

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