Da dataframe panda a geodataframe

Sep 02 2020

Ho un dataframe panda con due campi: ID e geometria (la geometria è già in WKT). Voglio cambiare questo dataframe in geodataframe così posso salvarlo come shapefile.

Ho provato a cambiarlo in geodataframe nel modo seguente:


covex = gdf(covex, crs="EPSG:4326", geometry='geometry')
covex.to_file("covex.shp")

non ha funzionato e ho ricevuto questo messaggio di errore:

TypeError: l'oggetto "GeoDataFrame" non è richiamabile

covex = gdf(covex, crs="EPSG:4326", geometry=covex.iloc[:,1])
covex.to_file("covex.shp")

ma ho ricevuto lo stesso messaggio di errore.

Cosa sbaglio? Ho pensato che avrei dovuto passare la colonna geoemtry lì, ma sembra che dovrebbe essere qualcos'altro. come posso cambiarlo in geodataframe e poi in shapefile?

Risposte

3 Ben Sep 02 2020 at 13:04

Penso che ti manchi una funzione (gdf. GeoDataFrame ), presumo che tu stia importando geopandas come gdf.

ecco un collegamento alla documentazione per la creazione di GeoDataFrames, anche se non vedo nulla sull'utilizzo di un df per creare, ma non riesco a immaginare che non funzionerebbe https://geopandas.org/reference/geopandas.GeoDataFrame.html https://geopandas.org/reference.html#geodataframe

import geopandas as gdf

# Thish should create a new dataframe
covex = gdf.GeoDataFrame(covex, crs="EPSG:4326", geometry=covex.iloc[:,1])
covex.to_file("covex.shp")