微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不拆分的情况下在 R 中制作俄罗斯地图?由于本初子午线,分裂正在发生

如何解决如何在不拆分的情况下在 R 中制作俄罗斯地图?由于本初子午线,分裂正在发生

我正在尝试制作俄罗斯地图。我已经尝试了几个技巧,但对我没有任何作用。

最初,我只是想使用 spplot:

library(rgdal)
gadm= getData('GADM',country = 'RUS',level = 1)
gadm$regions = as.factor(1:83)
spplot(gadm,"regions")

然后我意识到是本初子午线的问题,所以我试过这个:

gadm_new <- spTransform(gadm,CRS("+proj=longlat +lon_wrap=105"))
spplot(gadm_new,"regions")

Result was the same

我上次尝试也失败了

proj4.str <- CRS("+init=epsg:3413 +lon_0=105")
gadm.prj <- spTransform(gadm,proj4.str)
spplot(gadm.prj,"regions")

I've turned it upside down somehow

我迫切需要帮助!

解决方法

我已经想通了:

library(rgdal)
library(RColorBrewer)
library(raster)

gadm=getData('GADM',country = 'RUS',level = 1)
chukotka=gadm@polygons[[12]]
for (i in 1:length(chukotka@Polygons)) {
  polygon_long <- chukotka@Polygons[[i]]@coords[,1]
  if (mean(polygon_long) < 0) {
    polygon_long <- 360 + polygon_long
  }
  chukotka@Polygons[[i]]@coords[,1] <- polygon_long
}

gadm@polygons[[12]]=chukotka
gadm$regions = as.factor(1:83)
my.palette=brewer.pal(n = 9,name = "OrRd")
spplot(gadm,"regions",xlim=c(15,190),ylim=c(40,83),col.regions = my.palette,cuts = 4,col = "transparent")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。