如何解决R - 如何在 ggplot2 中绘制 Openstreetmap baselayer 并将其与光栅对象叠加?
我需要你的帮助。除了一些sf objects
(此处未列出)之外,我想在带有openstreetmap
的ggplot2
之上绘制一个栅格图层。这在我使用 sf object
时工作正常,但当我使用如下转换的栅格时则不然。结果显示扭曲的山体阴影栅格,包括奇怪的坐标。我有一种感觉,问题出在光栅文件的 CRS
(如 here),但我现在不知道如何正确处理它。请将山体阴影栅格视为任何栅格的示例。
这是一个可重现的例子:
library(ggplot2)
library(ggspatial)
library(rosm)
library(raster)
library(sf)
# create hillshade
alt = getData('alt',country='CHE',mask = FALSE)
slope = terrain(alt,opt='slope')
aspect = terrain(alt,opt='aspect')
hill = hillShade(slope,aspect,45,315)
plot(hill,col=grey(0:100/100),legend=FALSE,main='Switzerland')
#check CRS
sf::st_crs(hill)
raster::crs(hill)
#convert to ggplot useable format
hill_spdf <- as(hill,"SpatialPixelsDataFrame")
hill_df <- as.data.frame(hill_spdf)
colnames(hill_df) <- c("value","x","y")
#plot works
ggplot() +
ggspatial::annotation_map_tile("stamenwatercolor",zoom = 7,cachedir = system.file("rosm.cache",package = "ggspatial")) +
geom_sf(data = CH1,mapping = aes(fill = NAME_1),fill=NA,colour="black",size = 0.5,show.legend = FALSE,)
#plot doesn't work
ggplot() +
ggspatial::annotation_map_tile("stamenwatercolor",package = "ggspatial")) +
geom_raster(data = CH0_df,aes(x=x,y=y,fill = layer),alpha = 0.5)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。