Odpowiedz 
 
Ocena wątku:
  • 2 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
obliczanie azymutu/kierunku dla poligonu
03-01-2017, 10:30 PM (Ten post był ostatnio modyfikowany: 10-01-2017 09:16 AM przez pitt.)
Post: #11
RE: obliczanie azymutu/kierunku dla poligonu
cześć,
opcja "Oriented minimum bounding box", której do tej pory nie znalem, jest faktycznie pomocna. Jednak w ten sposób otrzymujemy prostokąty gdzie każdy z prostokątów (poligonów) ma dwie identycznie linie, co stwarza problem dla rozwiązania zaproponowanego przez Italiano: View => Select by expression
Dodatkowo wciąż brak jest linii, która faktycznie przecina centrycznie poligon.
W jaki sposób można wyznaczyć taka linie dla utworzonych przez "Oriented minimum bounding box" prostokątów, tzn. linie która przebiega dokładnie przez środek prostokąt po jego dłuższej osi.

PS
załącznik dodajesz z menu "odpowiedz" lub "odpisz", tam na dole (niebieskie okno) istnieje opcja dodania załącznika "Załączniki - Nowy załącznik".
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
18-01-2017, 05:32 PM
Post: #12
RE: obliczanie azymutu/kierunku dla poligonu
witam,
jest ktoś w stanie dalej pomoc?
"W jaki sposób można wyznaczyć taka linie dla utworzonych przez "Oriented minimum bounding box" prostokątów, tzn. linie która przebiega dokładnie przez środek prostokąt po jego dłuższej osi."
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
25-01-2017, 02:31 PM (Ten post był ostatnio modyfikowany: 25-01-2017 04:35 PM przez tomalos.)
Post: #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
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
10-02-2017, 03:19 PM (Ten post był ostatnio modyfikowany: 10-02-2017 03:39 PM przez pitt.)
Post: #14
RE: obliczanie azymutu/kierunku dla poligonu
witam,
dzięki za wskazówki. Groby są zorientowane w kierunku zachodnim (z głowa na zachód).
Ja chwilowo utknąłem w punkcie 6, tzn. nie jestem w stanie wybrać zapytaniem ["length" = minimum( "length", "ID" )] dwóch najdłuższych odcinków związanych z tym samym ID.


Załączone pliki Miniatury
   
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
13-02-2017, 01:53 PM (Ten post był ostatnio modyfikowany: 13-02-2017 02:03 PM przez tomalos.)
Post: #15
RE: obliczanie azymutu/kierunku dla poligonu
Mi zaznaczenie wyrażeniem po długości z uprzednio utworzonej kolumny z długością działa i zaznacza dokładnie połowę z istniejących linii (po dwie najkrótsze)
Kod:
"length"  =  minimum( "length" , "gid")

Natomiast jak zaznaczam długością obliczaną z geometrii czy to zaokrąglając:
Kod:
round ($length = minimum(  $length , "gid"),1)
czy nie:
Kod:
$length = minimum(  $length , "gid")
to kilka linii zostaje pominiętych.

Żeby tego uniknąć zrobiłem tak:
Kod:
$length < (minimum(  $length , "gid")+0.1)
i zrobił co trzeba, więc może tak spróbuj.

Żeby nie było idealnie to jak wywołuję "kalkulator pól", czy narzędzie "zaznaczenia za pomocą wyrażenia" z narzędzi geoprocesingu to też mi nie działają funkcje z grupy "Agregates" z kalkulatowa pól, przez co nie da się tego wykorzystać do stworzenia modelu. Jak otwieram z menu to działa normalnie. Chciałem zrobić model, żeby ci podesłać i sprawdzić czy u ciebie zadziała to co działa u mnie, ale nie działa nawet u mnie Smile.
   
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
11-08-2017, 02:34 PM (Ten post był ostatnio modyfikowany: 11-08-2017 02:38 PM przez pitt.)
Post: #16
RE: obliczanie azymutu/kierunku dla poligonu
witam,
powracam jeszcze na krotko do tego watku
Mam problem z pkt. 10 (lista Tomalosa), a mianowicie nie jestem w stanie zlaczyc/przypisac atrybutow wg. lokalizacji.
Korzystam - podobnie jak w pkt. 2 - z narzedzia "Zlacz atrybut wg lokalizacji"         i niestety ale na 360 obiektow (zolte punkty), jedynie 176 atrybutow zostaja ponownie przypisane (czerwone punkty)     .
Dlaczego?
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
12-08-2017, 11:11 PM
Post: #17
RE: obliczanie azymutu/kierunku dla poligonu
Może spróbuj zmienić parametr "Dokładność" na kilkadziesiąt centymetrów.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
15-08-2017, 11:21 PM (Ten post był ostatnio modyfikowany: 01-09-2017 09:03 AM przez pitt.)
Post: #18
RE: obliczanie azymutu/kierunku dla poligonu
zmieniając parametr dokładności (próbowałem tutaj wielu wariantów) uzyskuje błędny wpis wartości w tabeli atrybutów, tzn. niektore z wartości są wielokrotnie przypisywane innym, pomimo unikatowego ID lub przypisywana jest wartosc NULL.
       
Wynika to najprawdopodobniej wlasnie ze zmiany paramertu "dokladnosci", przez co niektore wartosci sa "przyciagane / przypisywane" (np. w obrebie kilkudziesieciu cm) do tych niewlasciwych.
Spotkal sie juz ktos z was z podobnym problemem?
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
20-09-2017, 08:01 PM
Post: #19
RE: obliczanie azymutu/kierunku dla poligonu
Wiem, że nie popisałem się refleksem ale może spróbuj zamiast punktów użyć ich buforów o jakimś małym promieniu (kilka, kilkanaście lub kilkadziesiąt centymetrów).
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
Odpowiedz 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Automatyczne obliczanie długości lini i dodanie do tab. atrybutów? karliTToO 9 6 936 20-11-2017 01:33 PM
Ostatni post: Binko
  Wyrysowanie azymutu od punktu basiuunia 0 3 162 28-11-2013 11:00 AM
Ostatni post: basiuunia
  obliczanie azymutu linii tomsik 1 6 683 13-01-2012 10:57 AM
Ostatni post: tomalos
  obliczanie pól obszarów pitt 6 11 753 28-01-2011 07:07 PM
Ostatni post: borys
  Obliczanie długości rewelator 4 10 108 22-09-2010 09:55 PM
Ostatni post: rewelator

Skocz do: