Ocena wątku:
  • 2 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
obliczanie azymutu/kierunku dla poligonu
25-01-2017, 14:31, (Ten post był ostatnio modyfikowany: 25-01-2017, 16:35 {2} przez tomalos.)
#13
RE: obliczanie azymutu/kierunku dla poligonu
Przerobiłem cały proces na przykładzie kilku rezerwatów przyrody.
   

1. Utworzyłem zorientowane minimalne "skrzynki" (OMBB).

2. Złączyłem je z według lokalizacji z rezerwatami.

3. Zamieniłem na linie (narzędzie: Poligony na linie).

4. Linie rozbiłem na pojedyncze odcinki (narzędzie: Rozdziel linie).

5. W kalkulatorze pól utworzyłem pole z długością odcinka z pewnym zaokrągleniem (z dokładnością do metra, liczby całkowite).

6. Wybrałem zapytaniem dwa najkrótsze odcinki z OMBB każdego rezerwatu, te zaokrąglone z tabeli atrybutów (nie na podstawie geometrii ($length), choć też by można stosując "round"). Ze względu na zaokrąglenie dla każdego rezerwatu dwa najkrótsze odcinki OMBB mają taką samą długość, przez co dla każdego rezerwatu zaznaczą się dwa odcinki.
   

7. Z zaznaczonych utworzyłem nową warstwę (rozdzielone_short).

8. W kalkulatorze pól utworzyłem pole "id" z unikalnym id (wiersze > $id).

9. Utworzyłem warstwę punktową (middle_pft) ze środkiem każdego odcinka (narzędzie: Środek ciężkości).
   

10. W tym momencie znowu gubią się atrybuty, więc trzeba złączyć według lokalizacji.

11. Połączyłem punkty tworząc linie (wtyczka: Points to Path).
   

12. Na koniec zostaje dodanie azymutu: degrees (azimuth(point_n($geometry,1),(point_n($geometry,2)))) w kalkulatorze pól.

   

Pewnie można to jakoś uprościć ale mi udało się zrobić tak.

Widzę w tej ścieżce postępowania dwa problemy:
1. Nie jest rozstrzygnięty zwrot azymutu, przykładowo nie wiadomo czy linia biegnie z północy na południe czy z południa na północ, obrazowo pisząc nie wiadomo gdzie w grobie są nogi a gdzie głowa. Chyba, że pitt poda jeszcze ten parametr to pomyślimy dalej.
2. Wyznaczanie azymutu za pomocą OMBB sprawdzi się w przypadku lekko wydłużonych i w miarę zwartych obiektów. Przy obiektach zwartych i niewydłużonych (zbliżone do koła czy kwadratu) oraz rozbudowanych (powiedzmy prostokąt z jakimś długim cienkim wąsem) może być mylące. Widać to w przypadku rezerwatu Lubiaszów na ostatnim załączniku, gdzie jako azymutem wydaje się być linia w kierunku zbliżonym do N (lub S). Rozwiązaniem może być wstępna generalizacja poligonów albo utworzenie zorientowanych hmm.... "oriented minimum bounding elipses"? Da się coś takiego zrobić? I dopiero dla tych "oriented minimum bounding elipses" utworzenie OMBB... Tak sobie filozofuję, może kogoś to natchnie Smile


Wiadomości w tym wątku
RE: obliczanie azymutu/kierunku dla poligonu - przez tomalos - 25-01-2017, 14:31

Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak dodać atrybut z jednakowym tekstem dla każdego poligonu? pikobello 2 4 289 08-06-2020, 10:42
Ostatni post: pikobello
  obliczanie powierzchni poligonów wolfspider666 8 16 910 27-11-2018, 14:48
Ostatni post: wolfspider666
  Automatyczne obliczanie długości lini i dodanie do tab. atrybutów? karliTToO 10 41 588 02-01-2018, 10:26
Ostatni post: sebaq
  Wyrysowanie azymutu od punktu basiuunia 0 7 897 28-11-2013, 11:00
Ostatni post: basiuunia
  obliczanie azymutu linii tomsik 1 13 729 13-01-2012, 10:57
Ostatni post: tomalos
  obliczanie pól obszarów pitt 6 28 263 28-01-2011, 19:07
Ostatni post: borys
  Obliczanie długości rewelator 4 22 956 22-09-2010, 21:55
Ostatni post: rewelator

Skocz do: