Estoy utilizando el cshapes
en R como fuente de fronteras de países históricamente precisas. Aunque los mapas WGS 84 por defecto se trazan bien, me gustaría reproyectar los mapas. Esto introduce algunas distorsiones que supongo que están relacionadas con problemas subyacentes en los datos del mapa:
- ¿Cómo puedo reproyectar y trazar correctamente un
cshapes
¿mapa en R? - Si el problema de la distorsión está realmente relacionado con un problema de datos cartográficos subyacentes, ¿cómo puedo solucionarlo?
Aquí hay un mapa WGS 84 por defecto, que se ve bien:
Pero al intentar trazar un mapa proyectado por Robinson, la distorsión se produce cerca de la longitud 180:
Los asociados El archivo shapefile está aquí .
He creado estos mapas en R utilizando el siguiente código:
library("cshapes")
library("ggplot2")
library("rgdal")
# Get map data and plot with default CRS (WGS 84)
wmap <- cshp(date=as.Date("2012-06-30"))
wmap_df <- fortify(wmap)
ggplot(wmap_df, aes(long,lat, group=group)) +
geom_polygon() +
labs(title="World map (longlat)") +
coord_equal()
ggsave("~/Desktop/map1.png", height=4, width=7)
# Reproject to Robinson
wmap_robin <- spTransform(wmap, CRS("+proj=robin"))
wmap_df_robin <- fortify(wmap_robin)
ggplot(wmap_df_robin, aes(long,lat, group=group)) +
geom_polygon() +
labs(title="World map (robinson)") +
coord_equal()
ggsave("~/Desktop/map2.png", height=4, width=7)
# Export original map data
writeOGR(wmap, ".", "wmap_wgs84", driver="ESRI Shapefile")
Información adicional:
- Duplicado de pregunta original sobre el SO alguien de allí me sugirió que intentara conseguir ayuda aquí.
- Sé que hay muchas otras fuentes para las fronteras de los países, pero estoy atado a
cshapes
para obtener mapas históricamente precisos. - Estoy usando GDAL 1.11.3, instalado vía homebrew, y Proj4 4.9.2. He construido
rgdal
de la fuente contra estos. - Parte de mi problema es que no sé qué términos buscar siquiera para este tema, cualquier ayuda sería genial.
Hay un pregunta similar aquí , lo que indica que el problema es que Rusia y una isla del Pacífico superan los 180°E. Sin embargo, las respuestas proporcionadas están implementadas en QGIS, no en R, o se basan en la eliminación de vértices, lo cual es problemático para mí porque quiero utilizar eventualmente los mapas para hacer mapas temáticos (es decir, países con relleno de color).