Python >> Tutoriel Python >  >> Python Tag >> Pandas

Comment convertir une GeoSeries en GeoDataFrame avec Geopandas

GeoDataframe accepte maintenant un geometry argument de mot-clé. En profitant de cela, nous pouvons écrire

envgdf = gpd.GeoDataFrame(geometry=gpd.GeoSeries(env))

Cela définit automatiquement le GeoSeries comme colonne de géométrie.


Le type de env voici un polygone galbé. Dans cette ligne

envgdf['geometry'] = env

Vous essayez d'attribuer un polygone à une colonne géométrique. Vous pouvez à la place créer une géosérie à partir du polygone et créer une géodonnée basée sur celle-ci. Voici le code mis à jour :

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)