Fare heatmap dai dati di linea in QGIS?


12

Voglio eseguire un'analisi della densità della linea per i miei dati di linea, basata su un attributo.

L'opzione heatmap (analisi della densità del kernel) sembra essere possibile solo per i dati dei punti.

Ho provato a convertire i dati della mia linea in punti e creare una mappa di calore, ma gli attributi per il peso sono stati persi sulla conversione.

Questa è un'analisi della densità della linea eseguita con ArcGIS. Stavo cercando di fare lo stesso con QGIS.

inserisci qui la descrizione dell'immagine

È possibile eseguire un'analisi della densità di linea simile in QGIS? e questi sono i dati su QGIS

Risposte:


4

Non riesco a trovare un modo per farlo in QGIS tramite le funzioni DB Manager / SQLite, ma in PostGIS, facciamo quanto segue:

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

Questo, esportato in una nuova tabella, consente i punti delle linee (nel nostro caso dagli studenti di PGRouting alla loro scuola) in modo da poter visualizzare l'hotspot delle rotte che gli studenti "potrebbero" prendere:

inserisci qui la descrizione dell'immagine


4

In effetti, è possibile eseguire la densità di linea in QGIS utilizzando i menu standard che inviano i parametri agli eseguibili GDAL.

L'uso di gdal_rasterize usando l'opzione -burn -add creerebbe un raster di densità di linee o punti, senza raggio di ricerca come densità del kernel e simili. Quanti punti o quante linee all'interno di una cella raster.

gdal_rasterize si trova nel menu Raster -> Conversione -> Rasterizza. Nell'ultimo campo di testo, premi il pulsante della matita e modifica il testo per includere "-burn 1 -add" simile al seguente. Naturalmente, si modificano i parametri -tr (risoluzione) e il nome di input e output in base alla propria situazione.

gdal_rasterize -burn 1 -add -tr 200.0 200.0 -l righe C: /lines.shp C: /out_lines.tif

Jukka Rahkonen mi ha dato i suggerimenti sulla mailing list di gdal_dev. Lo cerco da anni.

Per quanto riguarda i valori delle celle raster per le linee rasterizzate, non sono sicuro di cosa rappresentino i valori. Apparentemente non è un numero di linee o lunghezze di linee.

Densità di linea con gdal_rasterize


3

Utilizzando un approccio simile alla risposta di @DPSSpatial, utilizzerei il plug-in QChainage per creare punti equidistanti lungo ciascuna linea.

Questo plugin genera punti lungo la linea, ma non copia tutti gli attributi dalla linea.

Qui sto assumendo WGS84 (4326, Degrees Lat / Lon). Probabilmente vuoi farlo usando una proiezione appropriata in metri.

  • usa QChainage per generare punti lungo la linea, ad esempio ogni 0,05 gradi
  • Buffer questo strato ad esempio di 0,001 gradi.
  • Esegui un join spaziale ( Vettore> Strumenti di gestione dati> Unisci attributi per posizione ) (usando "Intersezioni"), dai punti bufferizzati al livello di linea originale. Ciò consentirà ai punti di raccogliere il valore dell'influenza dalle linee sottostanti.
  • Converti questo livello in punti usando Vettore> Strumenti geometria> Centroidi poligonali

Infine, vorrei utilizzare il renderizzatore di mappe di calore standard. Assicurati di usare i punti peso impostando e usando il campo influenza.

Ora dovresti avere qualcosa del genere. I numeri lungo ciascuna riga mostrano il valore "influenza".

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.