Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#1 Tue 15 June 2021 11:56
- LePanda
- Juste Inscrit !
- Date d'inscription: 15 Jun 2021
- Messages: 1
Equivalence POSTGIS - GEOPANDAS (SHAPELY)
Bonjour tout le monde,
Je travaille sur des données géospatiales (polygon, multi polygon) avec Postgis sur PostgreSQL.
J'ai besoin de faire des algorithmes trop compliqué à faire en SQL donc je suis passé sur du python.
Mais j'ai du mal avec quelques manipulations des geométries, pourtant basiques.
Voici un exemple que je n'arrive pas à faire avec geopandas : prenons une table avec une colonne contenant les géométries. Je veux juste faire l'union géométrique de toute la colonne.
En postgis je ferai simplement :
Code:
select ST_UNION(geom) from maTable
Mais en geopandas ? : gdf["geom"].union() ? gdf["geom"].sum() ?
Quelqu'un aurait-il une solution assez simple pour faire ça svp ?
Merci par avance
Hors ligne
#2 Tue 15 June 2021 17:27
Re: Equivalence POSTGIS - GEOPANDAS (SHAPELY)
Salut,
Pompage assumé de https://stackoverflow.com/questions/403 … e-geometry
Code:
import geopandas as gpd import matplotlib.pyplot as plt from shapely.ops import cascaded_union inputfile = '/home/thomasg/ne_10m_admin_0_countries.shp' gdf = gpd.read_file(inputfile) # Solution 1 boundary = gpd.GeoSeries(cascaded_union(gdf.geometry)) print(boundary) boundary.plot(color = 'red') plt.show() # Solution 2, en trichant avec dissolve en créant un colonne "bidon" gdf['new_column'] = 0 gdf_new = gdf.dissolve(by='new_column') print(gdf_new.geometry)
Cordialement
Thomas
Hors ligne