Come eseguire la stima della densità del kernel con una barriera / limite fisico in QGIS?


18

Qualcuno è a conoscenza di un programma che consentirà il kernelling che tiene conto di un limite nel suo calcolo piuttosto che semplicemente mascherare aree impossibili?

Finora ho trovato: componente aggiuntivo GME per Arc10 (Hawthorne Beyer) - Ricevo un errore ogni volta che specifico un file di forma limite. Ho provato molti tipi diversi di shapefile e complessità dei limiti, ecc. Funziona bene quando non specifico un limite.

Pacchetto AdehabitatHR in R (Calange 2011) - funziona bene ma il limite specificato deve essere molto semplice - segmenti di linea con larghezza di banda del kernel 3x di lunghezza e non troppo tortuosi. Per i miei dati questa è una grande semplificazione eccessiva.

Quindi mi chiedo se qualsiasi altro software può farlo, GRASS o QGIS per esempio.

Grazie


3
Articolo recente con codice R di potenziale interesse, distorsione di confine e kernel ponderati . Tutto il codice è solo un modo per ponderare le osservazioni per correggere la distorsione del bordo (se riesci a capire i pesi puoi usare qualunque programma per stimare il kde finché non saranno i pesi).
Andy W,

1
Esattamente come vuoi che "conti" per un confine? Esistono molti modi possibili, che vanno dal mascheramento al blocco della diffusione fino alla correzione degli effetti al contorno.
whuber

1
Grazie @AndyW e whuber per le risposte. Voglio spiegare il confine impedendo al kernel di diffondersi attraverso di esso. I dati sono posizioni delle tartarughe marine, quindi so che la distribuzione dell'utilizzo non dovrebbe diffondersi sulla terra, ma molte delle località sono molto vicine alla costa, quindi non voglio scostarmi da queste posizioni semplicemente mascherando le parti del kernel che diffuso nella terra. Grazie per il link al documento: sembra fantastico, cercherò di utilizzare un codice simile per i miei dati.
KimS,

Risposte:


2

Al centro della stima della densità del kernel c'è la nozione di distanza. La migliore soluzione che conosco è quella di utilizzare una metrica di distanza migliore che tiene conto dei confini e dei costi di viaggio variabili. È meglio scegliere una metrica di distanza adatta al problema che si sta tentando di risolvere. L'attrito terrestre è ottimo per le escursioni, ma non per la dispersione di aerosol. Le correnti del vento sono essenziali per il monitoraggio della barca a vela, ma non sono rilevanti per le indicazioni stradali.
Ora che la nozione di metriche di distanza appropriate è, si spera, sufficientemente motivata, posso raccomandare le superfici di costo come una buona metrica di distanza per scopi generali. Sono disponibili in tutto, da ArcGIS, a R, a JavaScript e sono abbastanza semplici da costruire. In qGIS, ad esempio, è possibile costruire una superficie di attrito raster e utilizzarla per calcolare i percorsi. Personalizza la superficie di attrito per tenere conto dei tuoi confini e vedrai la massa dai chicchi attorno ai tuoi punti che si allarga ordinatamente intorno agli ostacoli.


+1 Questo è potenzialmente un ottimo approccio. Dopo averlo applicato in molti problemi, ho scoperto che la principale difficoltà non è quella qui menzionata: esattamente come proponete di diffondere i kernel secondo questa metrica? Le soluzioni out-of-the-box non possono farlo.
whuber

@whuber Vero, i sistemi out-of-the-box di solito non hanno la capacità di tenere conto sia delle superfici di costo che della densità del kernel allo stesso tempo. Il mio suggerimento sarebbe di usare la superficie di attrito per calcolare la distanza punto-punto, quindi applicare direttamente una funzione del kernel per il peso. In qGIS o ArcGIS puoi scrivere usando la normale funzione di distribuzione in Python, e in R c'è la dnorm()funzione.
JasonRDalton,

Ho fatto esattamente questo in alcuni casi, ma pensare al processo e ispezionare i risultati rivela alcuni problemi intrinseci. Il più difficile sembra essere il modo di garantire che la massa venga preservata: non si può semplicemente diffondere i valori secondo una funzione gaussiana fissa, perché la massa risultante totale di un punto di diffusione non sarà uguale alla massa originale. Non esiste un modo efficiente per eseguire questo calcolo.
whuber


0

In realtà sto aiutando con il plugin AniMove per QGIS, che mira a sbarazzarsi della dipendenza R per la stima della densità del kernel. Dai un'occhiata qui .

EDIT: il plug-in è effettivamente disponibile come sperimentale nel repository ufficiale di plug-in QGIS

E non esitare a chiedere sulla lista se hai qualche suggerimento


-2

L'ho fatto con successo usando Geostatistical Analyst che è un'estensione di ESRI ArcGIS. È possibile caricare il set di dati delle funzioni di linea come barriere e i risultati sono abbastanza decenti. Faccio delle prove mentre modifico i parametri delle funzioni per avere una chiara idea di come calibrare lo strumento. Per convalidare i risultati, ciò che consiglio è se si dispone di un set di dati abbastanza grande è rimuovere un campione di punti, generare la superficie di densità senza quei punti, quindi confrontare la differenza tra i valori dei punti rimossi con i valori della superficie nella posizione dei punti rimossi.


2
Potresti amplificare un po 'questa risposta per spiegare come GA - che implementa i metodi di interpolazione - è in grado di calcolare una stima della densità del kernel ? Come doppio controllo della correttezza della tua soluzione, hai verificato che l'integrale della griglia GA era approssimativamente uguale alla somma di tutti i dati di input?
whuber

1
In 10.1 è possibile eseguire l'interpolazione del kernel con barriere, ma ciò non determina una stima della densità. Tuttavia, dati i metodi a cui fa riferimento il post originale, mi chiedo se non siano interessati a una stima del kernel gaussiano e non a una stima della densità.
Jeffrey Evans,
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.