Robisz mapę termiczną z danych linii w QGIS?


12

Chcę przeprowadzić analizę gęstości linii dla moich danych linii na podstawie atrybutu.

Opcja mapy cieplnej (analiza gęstości jądra) wydaje się możliwa tylko w przypadku danych punktowych.

Próbowałem przekonwertować dane linii na punkty i utworzyć mapę termiczną, ale atrybuty wagi zostały utracone podczas konwersji.

Jest to analiza gęstości linii wykonana za pomocą ArcGIS. Chciałem zrobić to samo z QGIS.

wprowadź opis zdjęcia tutaj

Czy w QGIS można przeprowadzić podobną analizę gęstości linii? i to są dane w QGIS

Odpowiedzi:


4

Nie mogę znaleźć sposobu, aby to zrobić w QGIS za pomocą funkcji DB Manager / SQLite, ale w PostGIS wykonujemy następujące czynności:

select
(ST_DumpPoints(l.geom)).geom
from linedata as l

To, wyeksportowane do nowej tabeli, pozwala na punkty linii (w naszym przypadku od uczniów PGRouting do ich szkoły), dzięki czemu możemy wizualizować hotspot tras, które uczniowie mogą „wybrać”:

wprowadź opis zdjęcia tutaj


4

W rzeczywistości możliwe jest wykonanie gęstości linii w QGIS przy użyciu standardowych menu wysyłania parametrów do plików wykonywalnych GDAL.

Użycie gdal_rasterize przy użyciu przełącznika -burn -add stworzy raster gęstości linii lub punktów, bez promienia wyszukiwania, podobnie jak gęstości jądra i podobne. Ile punktów lub ile linii w komórce rastrowej.

gdal_rasterize znajduje się w menu Raster -> Konwersja -> Rasterize. W ostatnim polu tekstowym naciskasz przycisk ołówka i zmieniasz tekst tak, aby zawierał „-burn 1 -add” podobnie jak poniżej. Oczywiście zmieniasz parametry -tr (rozdzielczość) oraz nazwę wejścia i wyjścia w zależności od sytuacji.

gdal_rasterize -burn 1 -add -tr 200,0 200,0 -l wiersze C: /lines.shp C: /out_lines.tif

Jukka Rahkonen dał mi wskazówki na liście mailingowej gdal_dev. Szukałem tego dosłownie od lat.

Jeśli chodzi o wartości komórek rastrowych dla linii zrasteryzowanych, nie jestem pewien, co reprezentują te wartości. Najwyraźniej nie jest to liczba linii ani długość linii.

Gęstość linii za pomocą gdal_rasterize


3

Korzystając z podobnego podejścia do odpowiedzi z @DPSSpatial, użyłbym wtyczki QChainage do stworzenia równomiernie rozmieszczonych punktów wzdłuż każdej linii.

Ta wtyczka generuje punkty wzdłuż linii, ale nie kopiuje żadnych atrybutów ponad linię.

Tutaj zakładam WGS84 (4326, Degrees Lat / Lon). Prawdopodobnie chcesz to zrobić za pomocą odpowiedniej projekcji w metrach.

  • użyj QChainage do generowania punktów wzdłuż linii, np. co 0,05 stopnia
  • Buforuj tę warstwę np. O 0,001 stopnia.
  • Wykonaj połączenie przestrzenne ( wektor> Narzędzia do zarządzania danymi> Połącz atrybuty według lokalizacji ) (używając „Przecięcia”), od zbuforowanych punktów do oryginalnej warstwy linii. Pozwoli to punktom podnieść wartość wpływu z linii pod nimi.
  • Przekształć tę warstwę z powrotem w punkty za pomocą opcji Wektor> Narzędzia geometrii> Centroidy wielokątów

Na koniec użyłbym standardowego renderera map cieplnych. Upewnij się, że używasz punktów wagi, ustawiając i wykorzystując pole wpływu.

Powinieneś teraz mieć coś takiego. Liczby wzdłuż każdej linii pokazują wartość „wpływu”.

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.