Odpowiedz 
 
Ocena wątku:
  • 2 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
obliczanie azymutu/kierunku dla poligonu
12-12-2016, 12:37 AM
Post: #1
obliczanie azymutu/kierunku dla poligonu
witam,
w jaki sposób można obliczyć azymut/kierunek dla kilkuset poligonów o nieforemnym kształcie (nieco zbliżonym do prostokąta)?
Przykład:
Poligony oznaczają kształt grobów na jednym z dużych cmentarzysk. Celem jest wyznaczenie kierunku, w jakim groby są ułożone.
Pozdrawiam
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
12-12-2016, 09:32 AM
Post: #2
RE: obliczanie azymutu/kierunku dla poligonu
Nie wiem jak można przetransformować wielokąta w jedną linię kierunkową...

Ale, załóżmy, że nawet ręcznie to zrobisz, to po czym utwórz pola typu Real, i zastosuj następujące wyrażenie:

degrees (azimuth(point_n($geometry,1),(point_n($geometry,2))))
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
13-12-2016, 12:09 AM (Ten post był ostatnio modyfikowany: 13-12-2016 10:57 PM przez pitt.)
Post: #3
RE: obliczanie azymutu/kierunku dla poligonu
witam,
podobny watek był już poruszany na innym forum:
http://www.goldenline.pl/grupy/Komputery...s,2702680/
Problemem było (i jest) wyznaczenie linii, która przebiega przez środek poligonu.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
19-12-2016, 01:55 PM
Post: #4
RE: obliczanie azymutu/kierunku dla poligonu
czy istnieje możliwość wyznaczenia linii kierunkowej (centraline) w QGIS, przecinającej dłuższą os poligonu?
Wprowadziłem kilka linii ręcznie i wyrażenie zaproponowane przez Italiano sprawdza eis w 100 procentach. Jednak liczba poligonów jest tak duza, ze ciężko będzie digitalizować każdy pojedynczo.
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
20-12-2016, 11:37 PM (Ten post był ostatnio modyfikowany: 28-12-2016 07:48 PM przez cogito94.)
Post: #5
RE: obliczanie azymutu/kierunku dla poligonu
(19-12-2016 01:55 PM)pitt napisał(a):  czy istnieje możliwość wyznaczenia linii kierunkowej (centraline) w QGIS, przecinającej dłuższą os poligonu?
Wprowadziłem kilka linii ręcznie i wyrażenie zaproponowane przez Italiano sprawdza eis w 100 procentach. Jednak liczba poligonów jest tak duza, ze ciężko będzie digitalizować każdy pojedynczo.

Mam taki mały pomysł. Pokaże go w krokach
1. Zamień poligon na polilinie [SAGA Convert Polygons to Lines]
2.Zamień polilinie na linie(tzn. polilinia o 2 wierzchołkach) [ GRASS v.split.vert] gdzie liczba werteksów to 2 -->dostajesz linie z 1 atrybutem tj.id twojej polilinii
3. Dodajesz sobie nową kolumnę "dlugosc" i liczysz jej długość [w Kalkulatorze $lenght]
4. Teraz trzeba by jakość wybrać max("dlugosc") tylko że pogrupowaną po id polilinii - nie mam pomyslu
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
22-12-2016, 01:06 PM
Post: #6
RE: obliczanie azymutu/kierunku dla poligonu
(20-12-2016 11:37 PM)cogito94 napisał(a):  4. Teraz trzeba by jakość wybrać max("dlugosc") tylko że pogrupowaną po id polilinii

Pytasz i masz:

[Obrazek: cogito_ergo_sum.gif]

... i Wesołych Świąt !!!

[Obrazek: smile.gif]
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
28-12-2016, 07:50 PM
Post: #7
RE: obliczanie azymutu/kierunku dla poligonu
Nieźle, Zapytanie działa więc jesteś w domu.

Chyba wątek do zamknięciaWink
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
29-12-2016, 03:02 PM
Post: #8
RE: obliczanie azymutu/kierunku dla poligonu
(28-12-2016 07:50 PM)cogito94 napisał(a):  Chyba wątek do zamknięcia

Jeszcze nie, patrz Cool

Począwszy od wersji 2.16, można wybrać najdłuższe elementy za pomocą agregacji.

View => Select by expression

po czym:

[Obrazek: aggregazione.gif]
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
30-12-2016, 04:15 PM
Post: #9
RE: obliczanie azymutu/kierunku dla poligonu
witam,
jednak wciaz brak jest rozwiazania, ktore umozliwia przeprowadzenie linii przez srodek nieregularnego poligonu. Dodatkowo powyzsze przyklady maja stosunkowo prosta budowe, natomiast w sytuacji kiedy poligon przeksztalcimy na polilinie i tak otrzymamy duzo bardziej skomplikowane strukturę niz ta na przykladzei powyzej.
Tutaj przyklad kilku poligonow, z jakimi pracuje:
   
i po przeksztalceniu na polilinie:
   
A tutaj przyklad rozwiazania, jakiego szukam:
   
Znajdź wszystkie posty użytkownika
Zacytuj ten post w odpowiedzi
01-01-2017, 09:43 PM (Ten post był ostatnio modyfikowany: 02-01-2017 03:22 PM przez cogito94.)
Post: #10
RE: obliczanie azymutu/kierunku dla poligonu
[quote='pitt' pid='5793' dateline='1483107302']
witam,
jednak wciaz brak jest rozwiazania, ktore umozliwia przeprowadzenie linii przez srodek nieregularnego poligonu. Dodatkowo powyzsze przyklady maja stosunkowo prosta budowe, natomiast w sytuacji kiedy poligon przeksztalcimy na polilinie i tak otrzymamy duzo bardziej skomplikowane strukturę niz ta na przykladzei powyzej.
Tutaj przyklad kilku poligonow, z jakimi pracuje:

No to na to również jest rozwiązanie.
Użyj narzędzia geoprocesingu "Oriented minimum bounding box" --> polega ono na tym że wpasowuje prostokąt ograniczający w twój poligon, który jest dodatkowo zorientowany. Dodatkowo taki prostokąt bardzo przyśpiesza analizy przestrzenne.
Patrz załącznik, dalej to jak w dyskusji Wink
przed:
https://1drv.ms/i/s!AhBpQSAaQjxvrhJ7yFb1X8iZnh7R

po:
https://1drv.ms/i/s!AhBpQSAaQjxvrhG2eOOmvldte9G7

Tworzysz pudełka ograniczające narzędziem "Oriented minimum bounding box" problem jest taki że nie przepisuje atrybutów ( możesz je uzyskać np. przez zapytanie przestrzenne, z twego rysunku wynika, że groby są rozłączne więc przez interesect np. tak:

Kod:
UPDATE groby.boundingbox
SET id = (
    SELECT groby.poligon.id
    FROM groby.poligon
    WHERE ST_Intersects(groby.boundingbox.geom,groby.poligon.geom) = TRUE
    )
2.

PS. Jak wstawiłeś swoje załączniku. Dzięki.
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 2 6 033 19-11-2015 07:59 AM
Ostatni post: karliTToO
  Wyrysowanie azymutu od punktu basiuunia 0 2 922 28-11-2013 11:00 AM
Ostatni post: basiuunia
  obliczanie azymutu linii tomsik 1 6 344 13-01-2012 10:57 AM
Ostatni post: tomalos
  obliczanie pól obszarów pitt 6 11 062 28-01-2011 07:07 PM
Ostatni post: borys
  Obliczanie długości rewelator 4 9 538 22-09-2010 09:55 PM
Ostatni post: rewelator

Skocz do: