każdy, kto może pomóc. Chcę tylko dodać kierunek (łożysko: N 25 35 E) i odległość (długość: 125 metrów) jako moje nowe pole w danych polilinii / linii. czy jest wtyczka do generowania tych pól? Próbowałem użyć opcji „eksportuj / dodaj kolumny geometrii” w moich danych linii, ale dodano tylko wartość „Długość”.
18
Odpowiedzi:
Możesz obliczyć namiar w kalkulatorze polowym w QGIS. Działa to we współrzędnych UTM (metrycznych) na małych odległościach (setki kilometrów), ale w przypadku dużych odległości lub stopni dziesiętnych potrzebne byłoby coś bardziej zaawansowanego.
Otwórz tabelę atrybutów dla warstwy linii, przełącz edycję i kliknij przycisk Kalkulator pola, aby otworzyć okno dialogowe:
Utwórz nowe pole dziesiętne z dokładnością 1 lub 2.
Wklej ten kod w polu „Wyrażenie” i kliknij „OK”:
(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))
Pierwsza część oblicza odwrotną styczną do różnic xiy i konwertuje ją na stopnie (180 / pi). Druga część dodaje 180 lub 360 do uzyskanej liczby, aby uzyskać łożysko w zakresie 0-360 °.
źródło
Nie potrzebujesz wtyczki. Wszystko jest w klasie QgsPoint PyQGIS
Jeśli zbadamy zawartość klasy punktowej QGIS za pomocą wbudowanej w Python funkcji dir () w konsoli Python Console.
Możesz zobaczyć, że są funkcje azymutu i sqrDist i po kilku próbach:
Problem
Tak więc w konsoli Python
teraz xy zawiera wszystkie węzły (punkty) linii
Używając wszystkich punktów węzłów linii:
1) punkt azymutu i do punktu i + 1 (+/- 180 °) (węzły linii)
2) odległość euklidesowa między punktem i a punktem i + 1
Następnie dodanie tych wartości do tabeli atrybutów nie jest trudne.
Używam tej techniki do analizy lineamentów (geologii) za pomocą matplotlib i wtyczki Script Runner
źródło
Rozwiązanie dostarczone przez @Simbamangu jest dość skuteczne, ale nie obejmuje wszystkich przypadków. Na przykład zastosowanie formuły z przemieszczeniem poziomym spowoduje NULL wyniku, więc należy użyć tego sformułowania w Kalkulatorze polowym QGIS
źródło