Dans le package HistData pour R ( https://r-forge.r-project.org/R/?group_id=574 ) j'ai les ensembles de données liés à la carte de John Snow de l'épidémie de choléra à Londres, 1854. Je crois qu'ils font autorité, ayant été soigneusement numérisées sous la supervision de Walter Tobler. Certains détails sur ces ensembles de données sont décrits par John Mackenzie, à http://www1.udel.edu/johnmack/frec480/cholera/cholera2.html .
Malheureusement, les coordonnées des décès, des pompes et des rues utilisent un système de coordonnées arbitraires, et non des coordonnées cartographiques adaptées à d'autres applications SIG ou logiciels de cartographie en R (packages spatiaux, ggmap, etc.)
Dans http://freakonometrics.hypotheses.org/19213, Arthur Charpentier utilise ggmap avec une version des données John Snow de
http://www.rtwilson.com/downloads/SnowGIS_v2.zip . Le Cholera_Deaths.shp
fichier ne répertorie cependant que 489 décès, pas les 578 que j'ai enregistrés HistData::Snow.deaths
.
Une idée est de trouver les relations entre les moyennes et les écarts-types des coordonnées (x, y) et de redimensionner linéairement, mais peut-être y a-t-il une meilleure façon?
Voici ce que j'ai essayé jusqu'à présent
> 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
Lire le fichier 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, alors j'essaie de redimensionner D
pour avoir les mêmes moyennes et écarts-types que XX
, mais quelque chose ne fonctionne pas correctement ici - la moyenne des colonnes de Dscaled
aurait dû être égale à celles 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: Il pourrait être utile dans ce problème de voir la carte de Snow dessinée par la nouvelle fonction, SnowMap(axis.labels=TRUE)
maintenant dans la version de développement de HistData
(rév 102) sur R-Forge. Les étiquettes des axes indiquent l'origine du système de coordonnées dans le coin inférieur gauche, comme dans mes Snow.*
ensembles de données.
la source
Snow.*
fichiers en celles d'une carte SIG avec les emplacements de deux pompes, ou trois pour vérifier la précision. Malheureusement, il n'y a pas d'étiquettes pour les pompes dans lesSnowGIS
fichiers, et je n'ai pas vu d'exemple pour les tracer afin de pouvoir les comparer visuellement.Réponses:
Évaluez peut-être le fichier de formes de http://donboyes.com/2011/10/14/john-snow-and-serendipity, il a 578 points.
Je ne pense pas que d'essayer de relier les HistData Snow Deaths à la version de Robin Wilson (@robintw) fonctionnera car le fichier de formes contient une coordonnée de point unique pour plusieurs décès à une seule adresse, au lieu des points multiples empilés de la rue dans le carte .
La version de Robin manque définitivement beaucoup de points. D'un coup d'œil, il y a pas mal de décès isolés isolés. Un autre problème est plus proche du centre de la carte où il n'était pas correctement apparié lors de la mise en place (cela est également visible sur la carte Wikipedia ) et cela obscurcit un certain nombre de points.
Extrait de la carte fournie dans le téléchargement :
Extrait de la version UCLA :
la source
.shp
fichiers est donboyes.com/download/snow_shp.zipPour compléter la réponse à cette question, le code suivant trouve la transformation linéaire des coordonnées dans les fichiers Tobler originaux (en
HistData
) et ceux fournis par Don Boyes.Ensuite, corréler et régresser D [, 1] sur X [, 1] et D [, 2] sur X [, 2]. La transformation linéaire est donnée par les coefficients de régression.
la source