2 votos

Intentando extraer xyz de un shapefile multipoligonal

Quiero extraer las x, y y z de los vértices de los polígonos del shapefile donde la geometría es multipoligonal. Una vez extraídos me gustaría tenerlos en un marco de datos geopandas. He visto un par de enfoques sin embargo, el problema parece ser que cuando el shapefile se importa no puedo conseguirlo a una característica que tiene un atributo Z. Por ejemplo, lo siguiente funciona para obtener la x y la y solamente, usando un shapefile que fue generado desde ArcGIS Pro convirtiendo el formato multipolígono a sus partes individuales.

import geopandas as gpd

gdf = gpd.read_file("C:/FG3D_2019/code/Collada_Geospatial/Boston_Mesh_Evaluation/Boston_Bldg1_SingleParts.shp")
print('gdf type', type(gdf))
geom_uu = gdf.unary_union
# Extract the point values that define the perimeter of the polygon
x, y = geom_uu.exterior.coords.xy

Lo que me gustaría es obtener las coordenadas z del campo de la geometría así que esencialmente; x, y, z = geom_uu.exterior.coords.xyz .

¿Alguien ha tenido suerte con esto?

1voto

GreyCat Puntos 146
from shapely.geometry import Polygon
polygon = Polygon([[0.0, 0.0, 2.0], [1.0, 0.0, 3.0], [1.0, 1.0, 4.O], [0.0, 1.0, 5.0]])
x,y,z = zip(*polygon.exterior.coords)
print(x)
(0.0, 1.0, 1.0, 0.0, 0.0)
print(y)
(0.0, 0.0, 1.0, 1.0, 0.0)
print(z)
(2.0, 3.0, 4.0, 5.0, 2.0)

0 votos

Gracias Gene, ha funcionado.

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