Sto provando a fare la stessa cosa posta in questa domanda, Cartogram + choropleth map in R, ma partendo da SpatialPolygonsDataFrame e sperando di finire con lo stesso tipo di oggetto.Usa Rcartogram su un oggetto SpatialPolygonsDataFrame
È possibile salvare l'oggetto come file di forma, utilizzare scapetoad, riaprirlo e riconvertire, ma preferirei avere tutto in R in modo che la procedura sia completamente riproducibile e in modo da poter codificare dozzine di variazioni automaticamente .
Ho biforcato il codice Rcartogram su github e ho aggiunto i miei sforzi fino ad ora here.
In sostanza ciò che questa demo fa è creare uno SpatialGrid sulla mappa, cercare la densità di popolazione in ogni punto della griglia e convertirla in una matrice di densità nel formato richiesto per il cartogram()
su cui lavorare. Fin qui tutto bene.
Ma, come interpolare i punti della mappa originale in base all'uscita di cartogram()
?
Ci sono due problemi qui. Il primo è quello di ottenere la mappa e la griglia nelle stesse unità per consentire l'interpolazione. Il secondo è accedere a ogni punto di ogni poligono, interpolarlo e tenerli tutti nel giusto ordine.
La griglia è in unità di griglia e la mappa è in unità proiettate (nel caso dell'esempio longlat). O la griglia deve essere proiettata in longlat o la mappa in unità di griglia. Il mio pensiero è di creare un CRS falso e usarlo insieme alla funzione spTransform()
in package(rgdal)
, poiché questo gestisce ogni punto dell'oggetto con il minimo sforzo.
L'accesso a ogni punto è difficile perché sono diversi livelli nell'oggetto SpPDF: oggetto> poligoni> poligoni> linee> coords, penso. Qualche idea su come accedervi mantenendo intatta la struttura della mappa generale?
Mi sono appena imbattuto in questa domanda dopo aver postato [il mio] (http://stackoverflow.com/questions/32406216/population-weighted-polygon-distortion/) e ho avuto problemi con l'uso di 'Rcartogram'. Finora la mia raccomandazione è usare ScapeToad; Sto cercando di decidere se è possibile per me portare la sua semplicità in R me stesso – MichaelChirico