Recherchez OSM pour toutes les plages exposées à l'ouest? - QGIS préféré

17

Je veux identifier toutes les plages de cette planète (ou un sous-ensemble donné) qui sont orientées vers l'ouest (+/- 20-30 degrés).

Mon idée est d'utiliser OSM comme source de données. Extraire tous les polygones qui ont la balise "natural = beach" me donne un ensemble de données / shapefile de toutes les zones qui sont marquées comme plages. Jusqu'ici tout va bien.

Je sais aussi que je peux utiliser les données du littoral (soit de l'OSM ou de la Terre Naturelle par exemple) pour identifier le parement des plages.

La mise en mémoire tampon des formes de plage pour corriger les décalages mineurs et leur intersection avec le littoral devrait me fournir des données sur le côté de la forme faisant face à l'eau. L'utilisation des valeurs max / min de tous les points d'intersection devrait me donner une idée du relèvement. (90 degrés +/- 20-30 degrés serait bien ...)

Et c'est là que je suis perdu ...

Mon outil préféré serait QGIS, mais PostGIS serait bien aussi.

Y a-t-il quelqu'un autour avec une idée intelligente pour résoudre ce puzzle?

jdoe
la source
4
Au lieu d'utiliser des tampons. Ne serait-il pas plus facile de trouver un moyen de déplacer tous les éléments de votre fichier de formes un peu vers l'est, puis d'exécuter une intersection entre le fichier de formes du littoral et le fichier de formes des plages? Ils ne se chevaucheront que là où les plages font face à l'ouest.
Tim Couwelier
Tim - bonne idée. Pas sûr que ça marche vraiment pour des géométries "étranges". J'ai reçu une autre idée: prendre le littoral en lignes et le centroïde des polygones de plage en utilisant v.net dans l'herbe, aligner le centroïde sur la ligne la plus proche (ou en postgis). vous avez maintenant une ligne qui représente la direction. calculer le relèvement du point de départ du centre de gravité au point final de la ligne à l'aide de trig. Bien qu'agréable, il n'est pas entièrement "dans" QGIS. Des idées plus intelligentes?
jdoe
Si vous pouvez trouver un moyen de transformer le littoral en une série de données ponctuelles et les centroïdes de la plage, vous pouvez essayer l'analyse du voisin le plus proche comme décrit ici: lien Au lieu de joindre les attributs comme indiqué dans l'exemple, assurez-vous d'avoir x, Les valeurs y pour les deux jeux de données correspondent. en utilisant la calculatrice de champ, vous pouvez trouver les différences relatives entre les valeurs x et y pour le centroïde et le point le plus proche. Sur la base du signe de la différence x, vous savez si c'est ouest ou est, et basé sur le rapport de diff (y) / diff (x) à l'ouest.
Tim Couwelier
Étant donné que je n'ai plus de caractères, voici: si la valeur x des centroïdes> la valeur x du point de côte, la plage fait face à l'ouest. les coordonnées x et y des deux vous permettraient de calculer l'angle vers l'axe y: (y2-y1) / (x2-x1) vous donne l'inclinaison de la ligne, que vous pouvez reconvertir en degrés
Tim Couwelier
5
Vous pouvez pixelliser vos données, définir des valeurs en eau libre à zéro et des plages à 1, puis exécuter l'outil Analyse du terrain-> Aspect. Vous obtiendrez un raster de la direction de la pente descendante et pourrez choisir des cellules suffisamment "à l'ouest".
WxMacMan

Réponses:

1

Le service d'élévation sur ArcGIS Online comprend des données mondiales prêtes à l'emploi, ainsi qu'une fonction raster intégrée pour générer un aspect. Il est également assez simple de filtrer simultanément pour une plage de valeurs d'aspect (290-250 degrés) ainsi que l'élévation (par exemple 0 à 10 mètres, selon la façon dont vous définissez une plage - ou peut-être avez-vous déjà délimité les plages?). Je ne sais pas si vous êtes prêt à utiliser la technologie ArcGIS - si oui, je peux vous envoyer des exemples de demandes REST.

Le png attaché n'est pas correctement filtré pour l'élévation, mais montre le concept ...entrez la description de l'image ici

Cody B.

Benkelman
la source