Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je dispose 2 couches d'occupation du sol (2006 et 2018) de type Multipolygon, et une grille de polygones de 100*100m de type Polygon.
Ces 2 couches sont coupées sur un cercle de 10 000 m², sont sur le Lambert 93, et ont un index spatial.
https://zupimages.net/viewer.php?id=20/49/dlkk.png
La couche d'occupation du sol de 2006 contient 14 320 entrées, celle de 2018 environ 13 000, et la grille 31 000.
Dans chaque cellule de ma grille (et dans sa stricte emprise), je souhaite découper les éléments d'occupation du sol, de manière séparée pour les 2 dates différentes (pour commencer). Pour cela, je me suis dirigé vers st_intersection :
select grille.id as id_carr, 2006 as annee, code, st_intersection(occ_2006_test.geom, grille.geom) as geom
from grille, occ_2006_test
where st_intersects(occ_2006_test.geom, grille.geom);
select grille.id as id_carr, 2018 as annee, code, st_intersection(occ_2018_test.geom, grille.geom) as geom
from grille, occ_2018_test
where st_intersects(occ_2018_test.geom, grille.geom);
La première requête, celle sur la couche de 2006, dure 12 secondes et me retourne 110 000 lignes. La seconde, pour une raison inconnue, tourne encore après 10 minutes....
Comment expliquer cette différence de performance ? (le lien pour accéder à mes couches, si jamais https://drive.google.com/file/d/1P4_C_5 … sp=sharing
Merci.
Dernière modification par preliator (01/12/2020 10:39:54)
Hors ligne
le fichier n'est pas accessible
Marc.
Hors ligne
Oups ! J'ai du mal avec le Drive ... voilà c'est bon. Merci.
Hors ligne
Il vaudrait mieux un dump de la base, histoire de pouvoir reproduire le problème... parce que là, on peut en faire un peu ce qu'on veut, des gpkg
Marc.
Hors ligne
Merci pour votre disponibilité ! Qu'entendez-vous par un dump ? Sinon, voici les données au format .sql : https://drive.google.com/file/d/1P4_C_5 … sp=sharing
Hors ligne
Les deux jeux de données sont très similaires… à un polygone près:
gis=# select id,st_npoints(geom) as np from occ_2018 order by np desc limit 5;
id | np
------+--------
7685 | 955200
7670 | 11054
8998 | 2579
4473 | 2055
12198 | 1802
C'est cette géométrie (7685) qui fait tout tomber. De ce que je vois dans qgis, c'est l'ensemble des rues de Lyon, ce polygone. Ou un truc ressemblant. Dès qu'on le supprime, ça va mieux.
Marc.
Hors ligne
Un grand merci... effectivement, c'est un très gros polygone. Au lieu de le supprimer, existe t-il un moyen de le "couper" en plusieurs partie ?
Hors ligne
Oui, il doit y avoir moyen, mais j'ai vraiment l'impression qu'il est rendondant avec les autres. Sinon vous pouvez le découper, à coup de st_intersection par exemple (avec votre grille ?), ou de st_subdivide ?
Marc.
Hors ligne
Pages : 1