Bản đồ Việt Nam trong R


Lấy dữ liệu

Dữ liệu bản đồ Việt Nam cho R được lấy từ trang http://gadm.org/. (Trên trang này còn có rất nhiều bản đồ khác.)

Hoặc lấy trực tiếp trong R:

con <- url("http://biogeo.ucdavis.edu/data/gadm2/R/VNM_adm2.RData")
print(load(con))
close(con)

Sau khi lấy về (ngày 21/11/2014) thì thấy bản đồ này là bản đồ 64 tỉnh, tức bản đồ trước khi Hà Tây sáp nhập vào Hà Nội năm 2008. Vậy là phải thêm bước 2.

Sáp nhập tỉnh

Tải dữ liệu

load("./vietnam/maps/VNM_adm2.RData")

Gọi thư viện cần thiết

libs <- c("rgeos", "maptools", "sp")
lapply(libs, require, character.only = TRUE)

Nhóm và sáp nhập tỉnh

Sáp nhập SpatialPolygons

gadm63.fac <- as.factor(c(1:18,19,18,21:64))
gadm63.sp <- unionSpatialPolygons(gadm, gadm63.fac)

Sáp nhập DataFrame

# Lấy data frame từ gadm
gadm63.df <- gadm@data

# Xóa tỉnh "Hà Tây"
gadm63.df <- gadm63.df[-20, ]

Trộn SP và DF

gadm63 <- SpatialPolygonsDataFrame(gadm63.sp, gadm63.df)

Kiểm tra

plot(gadm[c(18,20),])
plot(gadm63[10, ], add = TRUE, border = "red", lwd = 2)

Hà Nội

Lưu lại dùng sau:

saveRDS(gadm63, file="./vietnam/geo63.rds")

Bản đồ Việt Nam

geo63 <- readRDS("./vietnam/geo63.rds")
spplot(geo63, "ID_1", main="63 tỉnh")

Việt Nam

Tải tệp geo63.rds.