Dal poligono alla misura continua della diversità?


11

Prima di tutto; Ho provato a trovare una domanda simile, senza successo. Forse è perché sono abbastanza nuovo in GIS e non so davvero cosa sto esattamente cercando. Se qualcuno mi indica un problema simile, sarei felice di rimuovere questo post.

Ho bisogno di creare una variabile "continua" o raster (in piccole celle della griglia) della diversità della popolazione per un determinato paese. Ho uno shapefile che mostra la diffusione dei gruppi etnici nei poligoni (fig. 1) e il risultato che sto cercando è un "indicatore medio di diversità" in ciascuna delle unità amministrative (AU, in questo caso, il 360 collegi elettorali nigeriani).

Fig.1 - Poligoni di gruppi di popolazione

Fig 1. Popolazione raggruppa poligoni in Nigeria

La soluzione che mi è venuta in mente è stata quella di ottenere la percentuale di area di ciascun poligono in ogni UA e calcolare un indice di eterogeneità da quello. Ma il problema è che lascerei da parte molte informazioni a causa della distribuzione delle unità amministrative. Come mostrato in fig. 2, i quadrati "a", "b" e "c" avrebbero lo stesso "indice di segregazione", ma è chiaro che non si trovano nella stessa posizione rispetto ai "punti caldi".

Fig 2

Fig 2

Quindi ho pensato che un'altra soluzione potesse essere quella di creare una mappa della griglia e calcolare la distanza dal bordo più vicino, ma condividere di nuovo un solo bordo non è lo stesso che trovarsi nella parte centrale della mappa, dove vivono diversi gruppi insieme.

Dopo aver trovato questa domanda , immagino che i poligoni possano essere trasformati in punti usando i loro centroidi, quindi applicare lo stesso metodo. Ma la verità è che sono nuovo in questo, e a quella domanda non è stata data una risposta chiara. Come ho potuto fare una cosa del genere?

Utilizzando un altro esempio, voglio creare qualcosa del genere (immagini da questo sito Web ):

1 2

Vista la distribuzione di alcuni punti con caratteristiche qualitative diverse , ricava una misura della diversità da cui potrei stimare una "eterogeneità media" di ciascuna unità amministrativa.

Come potrei farlo? Uso R e QGIS, quindi non mi dispiace su quale piattaforma si basa la soluzione.

Risposte:


5

Darei davvero a SpatiaLite la possibilità di farlo! Più comodamente, è possibile utilizzare il plug-in QSpatiaLite in QGIS.

Basta impostare una griglia poligonale con una dimensione sensibile per le griglie. Quindi interseca la griglia con il poligono del gruppo etnico e calcola l'area di ogni intersezione. Con la tabella risultante puoi calcolare i tuoi indici usando le aree di intersezione, che sono aree di gruppi etnici in ciascuna griglia, come "metrica di abbondanza" (ecco come lo chiamerebbe un ecologo)!

Supponendo che il livello dei gruppi etnici sia chiamato "Gruppi etnici", con un campo "gruppo" e la griglia poligonale sia denominata "Griglia" con un campo "ID", si applica questa query SQL:

SELECT 
  g.ID AS gID, 
  e.group AS egr,
  AREA(INTERSECTION(e.geometry, g.geometry)) AS egr_area
FROM Grid AS g JOIN EthnicGroups AS e 
ON INTERSECTS(g.Geometry, e.Geometry)
ORDER BY gID, egr_area ASC

Per calcolare le metriche sulla diversità con formule speciali, utilizzerei R, comprimendo queste "abbondanze", producendo un valore per ciascuna griglia, che alla fine potrebbe essere ricollegato alle geometrie della griglia!

Per ottenere la tua diversità media per ogni UA potresti usare gli indici di diversità che hai aderito alla griglia. Ancora una volta usando SpatialLite raggruppando i valori all'interno dei poligoni AU con l'applicazione della funzione media.

Divertente che di recente ho scritto un post sul blog che tratta questo problema, che potrebbe darti un'idea: http://thebiobucket.blogspot.co.at/2014/12/usecase-find-dominant-species-and.html

Per quanto mi riguarda, consiglierei di saltare l'idea di "continuità" a questo proposito, perché la diversità è significativa solo in relazione all'unità spaziale su cui si basa. Quindi penso che tutti gli approcci e le tecniche fantasiose che usano qualsiasi tipo di media o interpolazione su unità diverse dalle unità spaziali su cui si basano i tuoi indici, non aggiungeranno nulla di prezioso, ma piuttosto oscureranno il risultato!

Ecco una mappa che mostra la diversità di anfibi (piuttosto che etnici;) per cui ho usato quasi lo stesso metodo: inserisci qui la descrizione dell'immagine

ps: questo link potrebbe essere di interesse, se vuoi ottenere diversità all'interno di un dato raggio di ricerca!


4

In QGIS, potresti generare una griglia di punti in cima ai tuoi poligoni. Troverai questa funzione in Vector -> Strumenti di ricerca (penso che si chiami così in inglese, la mia versione di QGIS è in un'altra lingua.) Dovrai trovare una granularità ragionevole quando si tratta della spaziatura della griglia dei punti.

Quindi, nel menu Vettore, esegui un attributo Unisci per posizione (disponibile in Gestione dati) utilizzando i punti come destinazione e i poligoni etnici come fonte.

Ora hai una griglia di punti con un attributo di etnia per ogni punto.

Qui è dove diventa un po 'complicato. È possibile generare un raster utilizzando questi punti, se si ricodifica l'attributo in un valore numerico (ad esempio utilizzando lo strumento Crea campo numerico equivalente nella casella degli strumenti di elaborazione QGIS). È quindi possibile utilizzare Crea griglia in Raster -> Analisi. Qui potresti forse sperimentare l'analisi della media mobile o del vicino più vicino, quindi puoi utilizzare le statistiche zonali (ci sono una serie di opzioni nella casella degli strumenti di elaborazione, oltre che nel menu raster).

Il trucco è come ottenere l'indice di eterogeneità ignorando il valore arbitrario creato ricodificando gli attributi in un indice numerico, ma potresti avere un'idea del tuo qui. Non sono del tutto sicuro di come procedere senza prendere troppo tempo da quello che sto supponendo di fare ora :)

Un'altra idea è quella di caricare la griglia dei punti in un database Spatialite (o PostGIS, ma è un'operazione più grande per iniziare.) Quindi è possibile utilizzare SQL e le funzioni spaziali nel database per testare tutti i punti entro un determinato raggio da ciascun punto a assegnagli un indice di varianza locale e quindi genera un raster da quel valore. Di recente ho lavorato un po 'con questo.

Spero che questo ti dia qualche idea! Sentiti libero di usare i commenti se vuoi discutere ulteriormente.


Molte grazie!! Proverò a risolverlo e tornerò da te se avessi ulteriori problemi (sicuramente lo farò).
Fran Villamil,

2

Ci sono una serie di ipotesi nella tua domanda che devono essere affrontate prima di arrivare alla domanda di implementazione. L'esempio fornito è un'analisi della biodiversità basata su un campione di varietà di una determinata specie di piante. Ho esaminato il manuale del software utilizzato per generare questo raster e non vi è alcuna indicazione che questo sia appropriato per o sia stato applicato alle popolazioni umane. Il centroide di un'area culturale umana (che proponete di utilizzare per la vostra analisi) non è in alcun modo analogo a un campione (vale a dire l'osservazione effettiva) di una collezione di piante.

La vicinanza di sottogruppi umani (divisa lungo qualsiasi dimensione, qui la dimensione è etnia) può essere espressa come una misura di diversità o una misura di segregazione. Una misura di diversità ampiamente usata è l' indice di Herfindahl , che varia da 0 a 1 ed è piccolo quando un'area ha molti piccoli gruppi e grande quando un'area ha molti grandi gruppi. Viene calcolato all'interno di una popolazione o area senza riferimento a qualcosa al di fuori di tale popolazione o area. Ciò è problematico poiché sei interessato all'interazione spaziale oltre i confini amministrativi.

Una misura di segregazione ampiamente usata è l' indice di dissomiglianza , che varia da 0 a 1 ed è piccolo quando le sottozone hanno la stessa distribuzione della popolazione della regione maggiore e grandi quando le sottozone sono esclusivamente un gruppo o un altro. Di solito viene calcolato all'interno di una regione per la quale sono disponibili informazioni demografiche per molte sottozone (ad esempio, è possibile calcolare l'indice di dissomiglianza bianco-nero per l'area metropolitana sulla base di dati demografici per tutti i tratti del censimento all'interno dell'area metropolitana). Wong (2002) ha modellato il localesegregazione calcolando l'indice di dissomiglianza per ciascuna sottozona in base alla popolazione delle sottozone vicine (cioè contigue) anziché alla regione nel suo insieme. Una limitazione di questa misura è che può funzionare solo per due gruppi alla volta. Tuttavia, l'ho usato nelle mie ricerche usando i due gruppi più popolosi all'interno di ciascuna zona dei vicini.

Hai indicato che desideri calcolare la diversità per ciascuna unità amministrativa (AU). Ma dici anche che devi creare un raster continuo di diversità. Non mi è chiaro se in realtà desideri un raster continuo di diversità o se pensi di averne bisogno per calcolare la diversità UA. Se in effetti desideri una diversità continua, consiglierei di dare un'occhiata a O'Sullivan & Wong (2007) , che visualizza la diversità continua usando uno stimatore della densità del kernel. Ciò ha l'effetto di tenere conto dell'interazione della popolazione attraverso i confini amministrativi, che si indica che si desidera.

OTOH, se vuoi davvero la diversità per unità amministrativa, puoi farlo utilizzando l'indice Herfindahl o l'indice locale di dissomiglianza. Ma ciò richiede informazioni sulle caratteristiche demografiche all'interno di ogni UA. Suppongo che il motivo per cui stai utilizzando la mappa delle aree etniche sia perché non disponi di dati sulla popolazione etnica per le UA. Ma se conosci la popolazione di ogni UA e la intersechi con la griglia delle aree etniche, puoi allocare la popolazione delle UA in aree etniche. Il presupposto importante con questa e le altre risposte proposte finora è che presuppongono che la densità di popolazione sia costante in tutta l'UA o nell'area etnica. Questa ipotesi sembra prima facie non plausibile, ma conosci i dati meglio di me e potresti essere a tuo agio con questa ipotesi.

Sulla base della mia comprensione dei tuoi obiettivi, penso che il mio approccio sarebbe il seguente:

  1. Popolazione modello all'interno di subunità in cui le subunità possono essere l'intersezione di UA e aree etniche o una griglia vettoriale o raster. Dato abbastanza tempo, vorrei provarlo in entrambi i modi.
  2. Calcola l'indice Herfindahl per ciascuna UA, ma, seguendo Wong (2002), calcolerei l'indice Herfindahl in base al vicinato di ciascuna UA piuttosto che solo alla popolazione all'interno della UA. Avendo abbastanza tempo, sperimenterei sia i quartieri basati sulla contiguità che quelli basati sulla distanza.

Ovviamente, nulla di tutto ciò arriva all'implementazione tecnica, ma se mi dai un feedback su questo, possiamo passare da lì.

PS: I documenti accademici a cui ho collegato sono recintati. Se OP non ha accesso a una biblioteca accademica, non esitate a contattarmi via e-mail e li fornirò per voi.


+1 Forse non tecnicamente dettagliato ma comunque molto utile e informativo!
Giuseppe,
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.