En el HistData paquete de R (https://r-forge.r-project.org/R/?group_id=574) tengo los conjuntos de datos relacionados con Juan de la Nieve mapa de la epidemia de cólera en Londres, 1854. Creo que son autorizada, habiendo sido cuidadosamente digitalizado bajo la supervisión de Walter Tobler. Algunos detalles sobre estos conjuntos de datos son descritos por John Mackenzie, en http://www1.udel.edu/johnmack/frec480/cholera/cholera2.html.
Por desgracia, las coordenadas de las muertes, de las bombas, y las calles de utilizar un sistema de coordenadas arbitrario, no de mapa de coordenadas adecuado para otras aplicaciones de GIS o de software de mapeo en R (espacial paquetes, ggmap, etc.)
En http://freakonometrics.hypotheses.org/19213 Arthur Charpentier
utiliza ggmap con una versión de la Nieve de Juan de datos de
http://www.rtwilson.com/downloads/SnowGIS_v2.zip. El Cholera_Deaths.shp
archivo, sin embargo sólo las listas de 489 muertes, no el 578 he registrado en HistData::Snow.deaths
.
Una idea es encontrar las relaciones entre los medios y desviaciones estándar de los (x,y) las coordenadas y cambiar la escala linealmente, pero tal vez hay una mejor manera?
He aquí lo que he probado hasta ahora
> data(Snow.deaths, package="HistData")
> D <- Snow.deaths[,2:3]
> colMeans(D)
x y
13.03312 11.69721
> var(D)
x y
x 3.8150987 0.3802654
y 0.3802654 2.7213828
Leer el archivo Cholera_deaths
> folder <- "C:/Dropbox/R/data/Snow/SnowGIS_v2/SnowGIS"
> library(maptools)
> deaths <- readShapePoints(file.path(folder, "Cholera_Deaths"))
> head(deaths@coords)
coords.x1 coords.x2
0 529308.7 181031.4
1 529312.2 181025.2
2 529314.4 181020.3
3 529317.4 181014.3
4 529320.7 181007.9
5 529336.7 181006.0
> # deaths has only 250 observations; 489 deaths
> sum(deaths@data$Count)
[1] 489
> # try to relate to Snow.deaths
> X <- deaths@coords
> colnames(X) <- c("x", "y")
>
> XX <- data.frame(X, Freq=deaths@data$Count)
> XX <- vcdExtra::expand.dft(XX)
>
> colMeans(XX)
x y
529414.8 181031.9
> var(XX)
x y
x 10813.816 1521.693
y 1521.693 6227.924
>
OK, entonces trato de re-escala D
a tener el mismo medio y estándar
desviaciones como XX
, pero hay algo que no funciona correctamente, la columna de medios de Dscaled
han vuelto a ser iguales a los de XX
:
> # scale D to have the same means and standard deviations as XX
> Dscaled <- scale(D, center=TRUE, scale=TRUE)
> Dscaled <- scale(Dscaled, center=colMeans(XX), scale=sqrt(diag(var(XX))))
> colMeans(Dscaled)
x y
-5091.040 -2293.947
>
EDIT: puede ser de ayuda en este problema para ver la Nieve del mapa como atraídos por la nueva función, SnowMap(axis.labels=TRUE)
ahora en la versión de desarrollo de la HistData
(rev 102) en R-Forge. Las etiquetas de los ejes muestran el origen del sistema de coordenadas en la esquina inferior izquierda como en mis datos Snow.*
conjuntos de datos.