Domanda

Nel caso in cui qualcuno non lo sa: Un cartogram è un tipo di mappa in cui alcuni paese / bilance proprietà numerica region-dipendente delle rispettive regioni, in modo che la densità di tale proprietà è (vicino a) costante. Un esempio è

Esempio cartogram

worldmapper.org . In questo esempio, i paesi vengono scalati in base alla loro popolazione, con conseguente quasi costante densità di popolazione.

Inutile dire che questo è davvero cool. Qualcuno sa di una biblioteca Matplotlib a base per la redazione di tali mappe? Il metodo utilizzato a worldmapper.org è descritto in (1), in modo che mi sorprenderebbe se nessuno ha implementato questa ancora ...

Sono anche interessato a sentir parlare di altre biblioteche cartogram, anche se non sono fatti per Matplotlib.

(1) Michael T. Gastner e M. E. J. Newman, Metodo Diffusione-based per la produzione di mappe di densità-equalizzazione, Proc. Nat. Acad. Sci. Stati Uniti d'America, 101, 7499-7504 (2004). Disponibile all'indirizzo arXiv .

È stato utile?

Soluzione

Non c'è questo , anche se si basa e un algoritmo diverso (e anche se è sul sito di ESRI, non richiede ArcGIS). Naturalmente, una volta che hai la cartogram è possibile tracciare in matplotlib.

Altri suggerimenti

Qui è un Javascript plugin per rendere cartogrammi utilizzando D3. E 'una buona soluzione semplice e se non si è troppo preoccupato per le regioni di essere dimensionati in modo accurato. Se la precisione è importante, ci sono altre opzioni disponibili che si danno più libertà di giocare con i parametri dell'algoritmo per arrivare a un risultato più preciso.

Qui ci sono due grandi programmi autonomi che conosco di:

Scapetoad è molto facile da usare. Basta dare uno shapefile, dirgli che l'attributo da utilizzare per la scala, e impostare alcuni parametri di precisione. Se non v'è alcun dubbio, questo post descrive il processo.

Carto3F è più complesso e consente una precisione superiore, anche se è un po 'più complicato da capire -. Un sacco di impostazioni dei parametri senza molta documentazione che illustra loro

C'è anche un QGIS cartogram plug , scritto in Python. Anche se non sono stato in grado di farlo funzionare, quindi non posso commentare su quello.

In breve, no. Ma Newman ha un'implementazione eccellente piccolo del metodo sua e Gastner di sul suo sito web . L'installazione è facile e funziona da linea di comando. Ecco un esempio di un flusso di lavoro usando questo software che ha lavorato per me.

  1. Calcola una griglia di densità stima su alcune regioni, ad esempio in Python. Conservarlo come una matrice di numeri.
  2. Eseguire il programma cart con la matrice densità come input dalla riga di comando o da come sottoprocesso in Python.
  3. Il programma restituisce un elenco di nuove coordinate per ogni punto della griglia.
  4. Tubazioni tuoi punti shapefile attraverso il programma interp e in un nuovo shapefile per ottenere la mappa trasformato.

Ci sono belle istruzioni riportate nella pagina principale.

La funzione geoplot.cartogram Geoplot: visualizzazione dei dati geospaziali - geoplot 0.2.0

dice che è una libreria di Python geospaziale tracciato di alto livello, e una proroga per cartopy e matplotlib.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top