Zapytanie OSM dla wszystkich plaż skierowanych na zachód? - Preferowany QGIS


17

Chcę zidentyfikować wszystkie plaże na tej planecie (lub określony jej podzbiór) skierowane na zachód (+/- 20-30 stopni).

Moim pomysłem jest użycie OSM jako źródła danych. Wyodrębnienie wszystkich wielokątów ze znacznikiem „natural = plaża” daje mi zbiór danych / plik kształtów wszystkich obszarów oznaczonych jako plaże. Jak na razie dobrze.

Wiem również, że mogę korzystać z danych wybrzeża (na przykład z OSM lub Natural Earth), aby zidentyfikować plaże.

Buforowanie kształtów plaży w celu skorygowania drobnych niedopasowań i przecinanie ich z linią brzegową powinno dostarczyć mi danych, po której stronie kształtu zwrócona jest w stronę wody. Wykorzystanie wartości max / min wszystkich przecinających się punktów powinno dać mi wyobrażenie o łożysku. (90 stopni +/- 20-30 stopni byłoby w porządku ...)

I tam się zgubiłem ...

Moim preferowanym narzędziem będzie QGIS, ale PostGIS również będzie OK.

Czy jest ktoś, kto ma sprytny pomysł, jak rozwiązać tę zagadkę?


4
Zamiast używać buforów ... Czy nie byłoby łatwiej wymyślić, jak przesunąć wszystkie elementy w swoim pliku kształtu nieco na wschód, a następnie uruchomić Przecięcie między plikiem kształtu linii brzegowej a plikiem kształtu plaży? Będą się one nakładać tylko tam, gdzie plaże są zwrócone na zachód.
Tim Couwelier

Tim - niezły pomysł. Nie jestem pewien, czy to naprawdę zadziała w przypadku „dziwnych” geometrii. Wpadłem na inny pomysł: weź linię brzegową jako linie, a centroid plażowych wielokątów za pomocą v.net w trawie przyciągnie centroid do najbliższej linii (lub postgis). teraz masz linię reprezentującą kierunek. obliczyć namiar od punktu początkowego środka ciężkości do punktu końcowego linii za pomocą wyzwalacza. Chociaż fajnie, nie jest w pełni „w obrębie” QGIS. Jakieś sprytniejsze pomysły?
jdoe

Jeśli potrafisz znaleźć sposób na przekształcenie linii brzegowej w serię danych punktowych, a także centroidy na plaży, możesz wypróbować analizę najbliższego sąsiedztwa, jak opisano tutaj: link Zamiast łączyć atrybuty, jak pokazano w przykładzie, upewnij się, że masz x, Wartości y dla dwóch zestawów danych pasujących. za pomocą kalkulatora pola można znaleźć względne różnice między wartościami xiy dla środka ciężkości i najbliższego punktu. Na podstawie znaku różnicy x wiesz, czy jest to zachód czy wschód, i na podstawie stosunku różnic (y) / diff (x) jak zachodni.
Tim Couwelier,

Biorąc pod uwagę, że zabrakło mi charachters, oto: jeśli wartość x centroidów> wartość x punktu linii brzegowej, plaża skierowana jest na zachód. współrzędne x i y dwóch pozwolą obliczyć kąt w kierunku osi y: (y2-y1) / (x2-x1) daje nachylenie linii, które można przeliczyć z powrotem na stopnie
Tim Couwelier

5
Możesz zrasteryzować swoje dane, ustawić wartości otwartej wody na zero, a plaż na 1, a następnie uruchomić narzędzie Analiza terenu-> Aspekt. Otrzymasz raster kierunku opadania i będziesz w stanie wybrać komórki, które są wystarczająco „zachodnie”.
WxMacMan,

Odpowiedzi:


1

Usługa elewacji w ArcGIS Online obejmuje gotowe do użycia dane z całego świata, a także wbudowaną funkcję rastrową do generowania obrazu. Równie łatwo jest filtrować jednocześnie zakres wartości (290-250 stopni), a także wysokości (np. 0 do 10 metrów, w zależności od tego, jak zdefiniujesz plażę - a może już wyznaczyłeś plaże?). Nie wiem, czy jesteś otwarty na korzystanie z technologii ArcGIS - jeśli tak, mogę wysłać Ci przykładowe żądania REST.

Załączony png nie jest odpowiednio filtrowany pod kątem wysokości, ale pokazuje koncepcję ...wprowadź opis zdjęcia tutaj

Cody B.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.