Dalam paket HistData untuk R ( https://r-forge.r-project.org/R/?group_id=574 ) Saya memiliki kumpulan data yang terkait dengan peta John Snow tentang wabah kolera di London, 1854. Saya percaya mereka bersifat otoritatif, telah didigitalkan dengan cermat di bawah pengawasan Walter Tobler. Beberapa detail pada set data ini dijelaskan oleh John Mackenzie, di http://www1.udel.edu/johnmack/frec480/cholera/cholera2.html .
Sayangnya, koordinat kematian, pompa, dan jalan-jalan menggunakan sistem koordinat sewenang-wenang, bukan koordinat peta yang cocok untuk aplikasi GIS lain atau perangkat lunak pemetaan di R (paket spasial, ggmap, dll.)
Dalam http://freakonometrics.hypotheses.org/19213 Arthur Charpentier menggunakan ggmap dengan versi data John Snow dari
http://www.rtwilson.com/downloads/SnowGIS_v2.zip . Namun Cholera_Deaths.shp
file tersebut hanya mencantumkan 489 kematian, bukan 578 yang telah saya rekam HistData::Snow.deaths
.
Satu ide adalah untuk menemukan hubungan antara sarana dan standar deviasi dari koordinat (x, y) dan skala ulang secara linear, tetapi mungkin ada cara yang lebih baik?
Inilah yang saya coba sejauh ini
> 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
Baca file 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, maka saya mencoba untuk skala ulang D
untuk memiliki cara yang sama dan standar deviasi XX
, tetapi ada sesuatu yang tidak berfungsi dengan benar di sini - sarana kolom Dscaled
seharusnya ternyata sama dengan yang dari 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: Mungkin bermanfaat dalam masalah ini untuk melihat peta Snow yang digambar oleh fungsi baru, SnowMap(axis.labels=TRUE)
sekarang dalam versi pengembangan HistData
(rev 102) pada R-Forge. Label sumbu menunjukkan asal sistem koordinat di sudut kiri bawah seperti pada Snow.*
set data data saya .
Snow.*
file saya ke yang ada di peta berbasis GIS dengan lokasi dua pompa, atau tiga untuk memeriksa akurasi. Sayangnya, tidak ada label untuk pompa di SnowGIS
file, dan saya belum melihat contoh cara plot mereka sehingga saya bisa membandingkannya secara visual.