【发布时间】:2017-11-04 22:25:33
【问题描述】:
我正在尝试将栅格图层叠加到 ggplot 中的地图上。栅格图层包含来自卫星标签的每个时间点的似然面。我还想在栅格图层上设置累积概率(95%、75%、50%)。
我已经想出了如何在 ggplot 地图上显示栅格图层,但坐标没有相互对齐。我尝试让每个投影都具有相同的投影,但它似乎不起作用......我希望它们都适合我的模型的边界(xmin = 149,xmax = 154,ymin = -14,ymax = -8.75
附上我的r代码和图结果:
#load data
ncname <- "152724-13-GPE3"
ncfname <- paste(ncname, ".nc", sep = "")
ncin <- nc_open(ncfname)
StackedObject<-stack("152724-13-GPE3.nc", varname = "monthly_residency_distributions")
MergedObject<-overlay(StackedObject,fun=mean )
MergedObject[is.na(MergedObject)]<-0
Boundaries<-extent(c(149, 154, -14, -8.75))
ExtendedObject<-extend(MergedObject, Boundaries)
Raster.big<-raster(ncol=1200,nrow=900,ext=Boundaries)
Raster.HR<-resample(x=ExtendedObject, y=Raster.big, method="bilinear")
Raster.HR@data@values<- Raster.HR@data@values/sum(Raster.HR@data@values)
RasterVals<-sort(Raster.HR@data@values)
Raster.breaks <- c(RasterVals[max(which(cumsum(RasterVals)<= 0.05 ))], RasterVals[max(which(cumsum(RasterVals)<= 0.25 ))], RasterVals[max(which(cumsum(RasterVals)<= 0.50 ))], 1)
Raster.cols<-colorRampPalette(c("yellow","orange","red"))
RasterCols<- c(Raster.cols(3))
#Create Map
shape2 <- readOGR(dsn = "/Users/shannonmurphy/Desktop/PNG_adm/PNG_adm1.shp", layer = "PNG_adm1")
map<- crop(shape2, extent(149, 154, -14, -8.75))
projection(map)<- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
p <- ggplot() + geom_polygon(data = map, aes(x = long, y = lat, group = group), color = "black", size = 0.25) + coord_map()
projection(Raster.HR)<- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
#plot raster and ggplot
par(mfrow=c(1,1))
plot(p)
par(mfrow=c(1,1), new = TRUE)
plot(Raster.HR, col=RasterCols, breaks=Raster.breaks, legend = NULL, bbox(map))
如果我应该使用另一个包/代码行来执行此操作,请告诉我!感谢任何帮助
【问题讨论】:
-
嗨,我刚刚注意到你拒绝了我的编辑。唯一的变化是内联该图像。你现在的状态还好吗?
-
嗨@yacc 对不起,我看错了,我以为你说要删除它。请随时再次编辑,对此感到抱歉。
-
没关系。编辑这样的问题很常见,因为 1) 新用户没有嵌入图像的权限(很有趣,但我认为这是一种防止垃圾邮件的方法),以及 2) 改进编辑的帖子会有所回报。例如,我要争取白色奖牌。这意味着要进行 80 次编辑才能获得银牌。 :) 这枚奖牌很有趣,我不知道,但这很有趣。那好吧。
-
可以使用
rasterVis::gplot直接在ggplot中添加栅格。 -
@SébastienRochette 我试过了,但很难添加我想要的其他栅格参数,例如 50、75、95% 的可能性和与之配套的配色方案。我也有点不清楚究竟使用 rasterVis 包中的什么函数来将此栅格图层添加到 ggplot。