Pages: 1
- Sujet précédent - QGIS 3.22: reduire le temps de calcul d'une jointure spatiale - Sujet suivant
#1 Thu 07 April 2022 11:38
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
QGIS 3.22: reduire le temps de calcul d'une jointure spatiale
Bonjour à tous,
Je dois faire plusieurs jointures spatiales concernant un très grand jeu de données. Toutes les jointures se font sur plus de 3,5 millions de polygones. Les calculs sont donc extrêmement long et me prennent plus de 10h en général.
Est-ce qu'il y aurait une solution pour réduire les temps de calculs ?
Merci d'avance pour vos réponses
Bonne journée, Hugo
Hors ligne
#2 Thu 07 April 2022 15:15
- Oliv38
- Participant actif
- Date d'inscription: 21 Dec 2011
- Messages: 142
Re: QGIS 3.22: reduire le temps de calcul d'une jointure spatiale
Bonjour,
quelle est le but de ces jointures ? Vous travaillez sur quel type de format de données ?
Avec autant d'objets géo, j'aurais tendance à dire qu'il vaudrait mieux le traiter sur un serveur de base de données avec les données indexées, et en créant vos jointures au travers de vues matérialisées par exemple (via postgis notamment).
Oliv
Hors ligne
#3 Fri 08 April 2022 10:32
- Hugo 78
- Participant occasionnel
- Date d'inscription: 6 Apr 2022
- Messages: 19
Re: QGIS 3.22: reduire le temps de calcul d'une jointure spatiale
Bonjour,
quelle est le but de ces jointures ? Vous travaillez sur quel type de format de données ?
Merci pour votre réponse, le but des jointures est de ranger plein d'informations (nombre d'habitant, forêts, cours d'eau, routes...) issues de base de données différentes dans des polygones pour faire une analyse à une fine échelle.
J'avais en effet pensé à postgis mais je ne le maitrise pas très bien. Si il n'y a pas de solution dans disponible dans qgis je devoir me former pour gagner du temps.
Merci pour votre retour.
Hugo
Hors ligne
#4 Fri 08 April 2022 11:22
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 613
Re: QGIS 3.22: reduire le temps de calcul d'une jointure spatiale
Ca semble bien difficile de rester uniquement sur QGIS.
Postgis pourrait être bien effectivement mieux adapté ! Dans tous les cas, vos données doivent être bien indexées pour optimiser les croisements spatiaux.
Pascal PLUVINET
Hors ligne
#5 Fri 08 April 2022 11:54
- Ratonlaveur
- Participant occasionnel
- Date d'inscription: 25 Aug 2017
- Messages: 40
Re: QGIS 3.22: reduire le temps de calcul d'une jointure spatiale
Bonjour,
Pour ma part j'utilise (si les données ne sont pas indexées dans une base de données par ex postgreSQL) geopandas sous python après l'avoir installé (via commande pip install geopandas). Traitement d eplusieurs dizaines de milliers de data en quelques secondes (comparatif sur un traitement : QGIS : 9h, geopandas : 7 secondes...)
Voici un petit script à enregistrer (*.py) pour croiser avec geopandas des points avec des polygones issus de shape (déclinable ligne/poly ou poly/poly et avec d'autres formats de données et d'autres opérateurs) par ex :
import geopandas
from geopandas import moncroisement
points = moncroisement.geopandas.GeoDataFrame.from_file('chemin vers répertoire source/couchepoints.shp')
polygones = moncroisement.geopandas.GeoDataFrame.from_file('chemin vers répertoire source/couchepolygone.shp')
pointInpolygones = moncroisement.sjoin(points, polygones, op='within')
pointInpolygones.to_file('chemin vers répertoire destination'/macoucheresultatcroisement.shp')
J'espère que cela vous aidera. n'hésitez pas à vous tourner également vers les ressources geopandas d'aide en ligne notamment cette page : https://geopandas.org/en/stable/docs/us … gdata.html
Dernière modification par Ratonlaveur (Fri 08 April 2022 12:04)
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.22: reduire le temps de calcul d'une jointure spatiale - Sujet suivant