Comment construire une coque convexe minimale traversant la ligne des 180 degrés?


13

J'ai construit des coques convexes pour les espèces qui habitent l'Indo-Pacifique (~ de 20 à -65 degrés de longitude). Le problème que j'ai rencontré est que pour les espèces qui peuvent être trouvées des deux côtés de la ligne de longitude 180 degrés, la coque reconstruite s'étend sur toute la couche plutôt que d'inclure les points dans un polygone beaucoup plus petit comprenant les deux extrémités de la couche. La raison de ce comportement est que cette ligne représente le bord de la couche, et QGIS n'encapsule pas les cartes vectorielles (voir l'image ci-dessous ... ma 'réputation' est maintenant 'assez bonne pour l'inclure, merci).

entrez la description de l'image ici

Après réflexion et recherche sur Google, voici quelques-unes des approches possibles du problème que j'ai rencontré; cependant, je ne suis pas trop sûr de leur mérite ou de leur mise en œuvre:

  1. Changez le méridien central de 0 (c'est-à-dire Greenwich) à, disons, 150 degrés. Comment cela peut-il être fait? Cela changerait-il simplement l'affichage de la carte (utile en soi), ou contribuerait-il également à la construction de la coque convexe correcte?

  2. Changez le système de coordonnées d'un format de +/- 180 degrés à un format de 0 à 360 degrés. Apparemment, quelque chose dans ce sens peut être réalisé en utilisant la fonction 'ST_Shift_Longitude' dans PostGIS, qui ajoute 360 ​​degrés aux longitudes négatives. Existe-t-il un moyen plus simple de procéder? Cette fonction produit également une carte centrée à 180 degrés, ce qui ne serait pas la fin du monde, mais une carte centrée à 150 degrés serait mieux (~ le centre de l'Indo-Pacifique).

    Merci pour votre temps et votre aide, et désolé pour le long message.


1
Les coques convexes n'ont de sens que lorsqu'un système de coordonnées projetées est utilisé

2
Bien que vous avez raison en général, @ Dan, il y a de nombreux cas où la coque convexe exerce ses du sens - et cela est probablement l' un d'entre eux. Nous pouvons définir la coque convexe de n'importe quel ensemble de points sur la sphère en construisant leur cône (qui est l'union des rayons originaires du centre de la Terre et passant par les points) et en coupant la coque convexe de ces rayons (considérés comme un sous-ensemble de espace) avec la sphère.
whuber

Une question connexe sur gis.stackexchange.com/questions/17788 demande de calculer des boîtes englobantes de points qui pourraient traverser le méridien de + -180 degrés. Dans le cas présent, cependant, soit une solution en coordonnées projetées (comme suggéré par @Dan Patterson), soit la solution 3D ressemble aux meilleurs paris. Attention cependant: la plupart des SIG ont toujours des problèmes pour gérer les données qui couvrent ce méridien. Effectuez des tests avec des ensembles de données simples avant de vous engager dans une solution.
whuber

Réponses:


4

Vous pouvez utiliser GRASS GIS (dans QGIS disponible via la boîte à outils GRASS ou mieux, le plugin Sextante) qui est capable de gérer le bouclage global à la date.

Voici un exemple avec des points aléatoires dans cette zone avec un polygone de coque convexe généré avec v.hull :

entrez la description de l'image ici


0

Si vous souhaitez déplacer le méridien central de la carte du monde de Greenwich à quelque chose d'autre, vous obtenez les mêmes erreurs que vous avez rencontrées, mais avec l'arrière-plan de la carte, s'il est construit par des polygones vectoriels.

Voir ce Q & A pour une solution de contournement à ce sujet:

Reprojection d'un jeu de données Natural Earth à World Eckert I

Bien qu'écrit pour la projection Eckert, il devrait fonctionner pour toutes les vues mondiales centrées sur des méridiens différents de Greenwich.

L'utilisation d'un arrière-plan raster comme Blue Marble éviterait ce problème.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.