Dans nos SIG, les opérations de superposition (overlay dans la langue de Shakespeare) telles que les intersections, les unions, les différences, etc. ainsi que l'accrochage utilisé par les dessinateurs, sont omniprésentes. Ces processus s'appuient sur des calculs similaires, simplifiés ici pour une meilleure compréhension dans cette présentation générale.
Cet article est la première partie de la série d'été sur la gestion de la géométrie dans les SIG.
Toutes les données utilisées sont disponibles sur mon GitHub, et pour simplifier la compréhension et la transposition de ces données dans différents SIG, j'utiliserai les formats WKB et WKT1.
autopromo
Pour celles et ceux qui veulent en savoir plus sur ces formats, pensez à suivre Geotribu sur les réseaux sociaux ou à vous abonner à notre newsletter pour être informé du prochain article dédié .
Revenons-en au fait, prenons un exemple avec une géométrie de type ligne, ici fermée, mais cela serait similaire pour un polygone (puisqu'un polygone est une ligne). Les géométries utilisées sont projetées dans le système de coordonnées EPSG:3946, projection de mon coin magnifique.
Nous avons désormais notre base pour étudier ce problème de précision/tolérance/intersection.
Justement, calculons l'intersection entre ces lignes. Pour cela, nous allons utiliser l'outil native:lineintersections de QGIS.
Nous obtenons deux points d'intersection. Visuellement, les résultats sont conformes à nos attentes, les points d'intersection se trouvant précisément sur les lignes.
Quand je dis « précisément », si l'on visualise sur une échelle totalement « absurde », on a toujours cette superposition.
Pour plus tard, on notera leurs WKB :
0101000000a899efc8c83c3e4175e5698166d55341
dont l'équivalent WKT est POINT(1981640.7849060092 5199258.022088398)
Tout d'abord, on va utiliser la fonctionnalité d'accrochage sur les intersections. Attention, ce n'est pas sur les points que l'on vient de générer, mais sur les intersections entre les géométries. On repère l'icône d'accrochage d'intersection avec une croix. L'accrochage sur un sommet avec un carré.
Dans la vidéo ci-après, je montre comment j'ai généré des lignes de part et d'autre de la ligne principale aux points d'intersection.
Je répète l'opération, cette fois en me focalisant sur les points d'intersection. L'objectif est de garantir l'accrochage précis sur la ligne principale, indépendamment des variations des sommets adjacents.
On fait confiance à QGIS et, visuellement, les lignes apparaissent bien accrochées à la ligne de base.
Comparons maintenant nos géométries textuelles. On a 8 lignes/segments dans les deux cas. Si l'accrochage se déroule correctement, on devrait avoir les mêmes points de départs.
Par conséquent, nous avons des lignes qui sont sur le point d'intersection. Si l'on souhaite vérifier l'accrochage, on utilise le prédicat « intersecte » de QGIS. Pour vérifier cela, utilisons l'outil « sélection par localisation » :
On regarde si line_snap est accroché sur base. Dans les exemples ci-après, même si je devrais n'utiliser que touches ou intersects, je vais tout cocher sauf disjoint.
Pour aller plus loin, je réalise des tests aléatoires en essayant d'accrocher la ligne principale à différents endroits. C'est la couche test_line dans le GeoPackage.
Dans notre franchise OSGeo, QGIS est un de nos superhéros, tel Spider-Man. Notre petite toile d'araignée manque de glu, car notre accrochage n'est toujours pas bon :
Il y a quelques années, j'ai développé un outil pour créer des transects. Il génère des bandes, suivant un angle donné. Il est principalement utilisé pour des analyses sur des profils en travers, en génie civil, en écologie, etc. Ici, on va réaliser un transect avec l'outil… « transect », tous les mètres de part et d'autre de la ligne principale.
Pour commencer, nous allons densifier la géométrie :
Ensuite, on génère de cette couche les transects à gauche et à droite de la ligne (suivant le sens de la ligne) :
Notre dessin ressemble à :
Et maintenant, on va sélectionner les entités de transect_left et transect_right qui intersectent la base :
Et, non, ce n'est pas l'algo de transect qui est tout buggué.
Après un cursus en Histoire, je me suis orienté vers l'urbanisme sur l'aménagement des territoires.
J'ai travaillé pendant environ 10 ans dans une station touristique dans les Alpes, Megève, en tant qu'urbaniste puis responsable du bureau d'études et administrateur SIG.
Bidouilleur et partisan des solutions OpenSource, j'ai commencé à toucher à GRASS, puis QGIS et PostGIS. Au fil du temps j'ai contribué à ces logiciels, principalement pour migrer des outils DAO vers le SIG et je suis aujourd'hui commiter QGIS, PostGIS et FreeBSD où je m'occupe des paquets des outils OSGeo et plus si affinité.
formats standards de représentation des géométries :
WKB (Well-Known Binary) : Le WKB est un format binaire utilisé pour représenter des objets géométriques de manière compacte et efficace, couramment utilisé dans les bases de données géospatiales pour le stockage et l'échange de données géographiques.
WKT (Well-Known Text) : Le WKT est un format texte utilisé pour représenter des objets géométriques de manière lisible par l'humain. Il est souvent utilisé pour le partage et l'affichage de données géographiques.
Pour plus d'informations, consultez la page Wikipedia. ↩
Commentaires
Afin de favoriser les échanges constructifs, merci de préférer le pseudonymat à l'anonymat. Pour rappel, l'adresse mail n'est pas exposée publiquement et sert principalement aux notifications de réponse. Les commentaires sont automatiquement republiés sur nos réseaux sociaux pour favoriser la discussion. Consulter la page sur la confidentialité et les données personnelles. Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires. Propulsé par Isso.