Message posté par : Sylvain M.
----------------------------------------
Bonsoir à tous,
J'ai plusieurs projets persos où je souhaite faire une synthèse par mailles hexagonales de jeux de données ponctuels volumineux (~200 000 entités) et d'emprise mondiale (pour ceux qui sont curieux : photothèque ou observations naturalistes, mais le principe est le même).
Voici un exemple de carte interactive utilisant ce principe de mailles hexagonales : https://api.gbif.org/v2/map/demo2.html
Plutôt que de générer des couches de mailles mondiales à chaque échelle, ce qui seraient extrêmement volumineux vu que je souhaite descendre jusqu'à des mailles de quelques centaines de mètres, j'essaie de générer les géométries de mailles à la volée depuis les points source.
J'ai trouvé pour cela les fonctions hexagon() et hexagoncoordinates() sur cette page github :
https://github.com/CrunchyData/pg_tileserv?tab=readme-ov-file#dynamic-hexag…
J'essaie de les adapter/comprendre, mais je constate un comportement étrange sur mes données : pour un point en entrée, les fonctions retournent plusieurs mailles hexagonales.
Voici un exemple qui illustre mon problème :
-----------------
Code :
WITH point_test AS (SELECT st_geomfromtext('POINT (0.47003 47.65044)',4326) AS geom)
SELECT geom,
hexagoncoordinates(geom,0.1) AS hexagon_coordinates,
ST_SetSRID(hexagon((hexagoncoordinates(geom, 0.1)).i, (hexagoncoordinates(geom, 0.1)).j, 0.1),4326) AS hexagon_geom
FROM point_test
-----------------
Cette requête depuis un point fictif ne devrait sortir qu'un polygone, mais il en sort 4 :
-----------------
Code :
geom hexagon_coordinates
POINT (0.47003 47.65044) (3,275)
POINT (0.47003 47.65044) (3,276)
POINT (0.47003 47.65044) (4,275)
POINT (0.47003 47.65044) (4,276)
-----------------
Si jamais un expert PostGis passe par là, et si le challenge l'intéresse, je serai très reconnaissant s'il me permet d'avancer ! :D
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=375310#p375310
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net
Message posté par : image95
----------------------------------------
Bonjour,
Je me permets de poster un message. Il y a quelques semaines, j'avais posté un premier message :
https://georezo.net/forum/viewtopic.php?id=136209
mais après réflexion, je me permets d'en créer un nouveau pour apporter une précision/clarification.
Pour rappel, mon but est de trouver une méthode/outil pour comparer la similarité/dissimilarité entre 2 couches vecteurs polygonales constituées de plusieurs entités. Dans mon cas d'usage, cette comparaison concerne une couche polygonale issue d'un travail de photo-interprétation (modélisation des grandes unités physionomiques/habitats). je joins une capture écran, cette couche apparait en couleur bleu).
L'autre couche vecteur polygonale est une couche vecteur polygonale issue d'un traitement de segmentation (via un outil OTB disponible via Qgis).(elle est en couleur jaune sur la capture écran jointe).
Dans mon précédent post, j'évoquais comme indicateur possible de similarité : "pour chaque entité/polygone photo-interprété, calculer le pourcentage de surface recouverte par l'entité de la couche issue de la segmentation ayant le grand recouvrement."
Pour être plus parlant, dans l'exemple de la capture écran, ce pourrait être :
"pour l'entité de la couche photo-interprétation numéro 11 (bleu), j'aimerais connaitre la part de surface recouverte par l'entité de la couche de segmentation ayant le plus grand recouvrement avec cette entité 11 (dans ce cas précis, c'est probablement l'entité 42 jaune). "
Cela pourrait être : surface de l'entité 42 en superposition avec l'entité 11 / surface totale de l'entité 11.
Mais après réflexion, je pense que c'est insuffisant. Qu'il faudrait aller un peu plus loin.
Pour ces aspects méthodes pour quantifier la précision d’une segmentation/fidélisation à la PI. Le niveau/degré de ressemblance, je pense qu'il faudrait intégrer un aspect/ une logique de "bi-similarité" : d’avoir une approche par couples de polygones les plus couvrants :
Étape 1 :
- Pour chaque entité polygone de la PI, récupérer l'id et la geom du polygone de la segmentation qui a le plus fort recouvrement. En calculer le taux de recouvrement.
(ex : surface de l'entité 42 en superposition avec l'entité 11 / surface totale de l'entité 11).
Étape 2:
-Une fois ce premier indicateur calculé, faire le calcul pour le même couple/la même séquence de polygones calculée lors de l'étape numéro 1 : effectuer le même calcul mais cette fois sur la surface totale de l'entité 42 (polygone issu de la segmentation)
(ex : surface de l'entité 42 en superposition avec l'entité 11 / surface totale de l'entité 42).
Étape 1/2 variante :
Je me disais qu'une variante/synthèse/résumé en 1 étape des étapes 1 et 2 pouvait être :
- (ex : surface de l'entité 42 en superposition avec l'entité 11 / surface totale constituée par l'entité 11 ET par l'entité 42).?
- étape 3 :
l'idée serait à partir des étapes 1/2, d'avoir une sorte de score global au niveau de la couche. Qui pourrait être une sorte moyenne/médiane pour tous les couples de polygones ? Ou une autre métrique ?
J'imagine que cet outil n'existe/,'est pas mis à disposition sous Qgis. Bien que j'ai découvert ce plugin :
https://plugins.qgis.org/plugins/similarity_plugin/#plugin-abouthttps://github.com/panickspa/SimilarityPlugin
Plugin intéressant. Mais qui à mon humble avis ne couvre qu'une partie du besoin.
Afin d'être complet, ayant fait un peu de recherche sur internet. j'ai également trouvé un indicateur potentiellement intéressant :
https://postgis.net/docs/ST_HausdorffDistance.htmlhttps://en.wikipedia.org/wiki/Hausdorff_distance
Si une personne pense pouvoir m'aiguiller. Un grand merci.
----------------------------------------
Le message est situé https://georezo.net/forum/viewtopic.php?pid=375097#p375097
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net