12-12-2016, 00:37,
|
|
pitt
geofomaniak
|
Liczba postów: 78
23
Dołączył: 11-02-2010
Reputacja:
0
|
|
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
|
|
12-12-2016, 09:32,
|
|
Italiano
geofomaniak
|
Liczba postów: 163
0
Dołączył: 07-10-2015
Reputacja:
6
|
|
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))))
|
|
13-12-2016, 00:09,
(Ten post był ostatnio modyfikowany: 13-12-2016, 22:57 {2} przez pitt.)
|
|
pitt
geofomaniak
|
Liczba postów: 78
23
Dołączył: 11-02-2010
Reputacja:
0
|
|
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.
|
|
19-12-2016, 13:55,
|
|
pitt
geofomaniak
|
Liczba postów: 78
23
Dołączył: 11-02-2010
Reputacja:
0
|
|
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.
|
|
20-12-2016, 23:37,
(Ten post był ostatnio modyfikowany: 28-12-2016, 19:48 {2} przez cogito94.)
|
|
cogito94
geofon
|
Liczba postów: 25
8
Dołączył: 13-01-2016
Reputacja:
0
|
|
RE: obliczanie azymutu/kierunku dla poligonu
(19-12-2016, 13:55)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
|
|
28-12-2016, 19:50,
|
|
cogito94
geofon
|
Liczba postów: 25
8
Dołączył: 13-01-2016
Reputacja:
0
|
|
RE: obliczanie azymutu/kierunku dla poligonu
Nieźle, Zapytanie działa więc jesteś w domu.
Chyba wątek do zamknięcia
|
|
29-12-2016, 15:02,
|
|
Italiano
geofomaniak
|
Liczba postów: 163
0
Dołączył: 07-10-2015
Reputacja:
6
|
|
RE: obliczanie azymutu/kierunku dla poligonu
(28-12-2016, 19:50)cogito94 napisał(a): Chyba wątek do zamknięcia
Jeszcze nie, patrz
Począwszy od wersji 2.16, można wybrać najdłuższe elementy za pomocą agregacji.
View => Select by expression
po czym:
|
|
30-12-2016, 16:15,
|
|
pitt
geofomaniak
|
Liczba postów: 78
23
Dołączył: 11-02-2010
Reputacja:
0
|
|
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:
|
|
01-01-2017, 21:43,
(Ten post był ostatnio modyfikowany: 02-01-2017, 15:22 {2} przez cogito94.)
|
|
cogito94
geofon
|
Liczba postów: 25
8
Dołączył: 13-01-2016
Reputacja:
0
|
|
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
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.
|
|
|