Saltar al contenido

Cómo convertir una GeoSeries a un GeoDataFrame con Geopandas

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *