este problema se puede tratar de variadas formas, pero en este caso te compartimos la solución más completa en nuestra opinión.
Solución:
GeoDataframe
ahora acepta un geometry
argumento de palabra clave. Aprovechando eso, podemos escribir
envgdf = gpd.GeoDataFrame(geometry=gpd.GeoSeries(env))
Esto establece automáticamente la GeoSeries
como la columna de geometría.
El tipo de env
aquí hay un polígono bien formado. en esta linea
envgdf['geometry'] = env
Está intentando asignar un polígono a una columna de geometría. En su lugar, puede crear una Geoserie a partir del Polígono y crear un Geodataframe basado en eso. Aquí está el código actualizado:
import sys
import geopandas as gpd
shp = (sys.argv[1])
gdf = gpd.read_file(shp)
union = gdf.unary_union
env = union.envelope
# Replace these three lines:
#envgdf = gpd.GeoDataFrame()
#envgdf['geometry'] = env
#envgdf.geometry.name
# With
envgdf = gpd.GeoDataFrame(gpd.GeoSeries(env))
# Edit: Following Tim C's comment below, this line sets geometry for resulting geodataframe
envgdf = envgdf.rename(columns=0:'geometry').set_geometry('geometry')
print("nGeoDataFrame :n", envgdf)
Sección de Reseñas y Valoraciones
Puedes corroborar nuestra investigación fijando un comentario o dejando una valoración te estamos agradecidos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)