将遮罩应用于R中的空间栅格吗?

问题描述 投票:1回答:2

我想使用代表区域边界的shapefile遮罩我的背景图。为此,我已经使用read_osm

将空间栅格读入Rstudio。
library(sp)
library(tmaptools)
HB_map <- spData::nz %>% 
  filter(Name=="Hawke's Bay") %>% 
  tmaptools::read_osm(type = "stamen-terrain")

然后我导入了我的shapefile

libary(sf)
Regional_boundary <- sf::st_read("regional_boundary.shp")
sf::st_crs(Regional_boundary)= 2193 
Regional_boundary_sf_poly <- sf::st_transform(Regional_boundary, 27200) %>% 
  sf::st_cast(to="POLYGON")

我有很多GIS数据集,所以我重新投影了栅格,因此它与GIS数据处于同一投影中(我不确定这是否正确)

test_map <- projectRaster(HB_map, crs ="+init=epsg:27200")

然后我检查数据投影是否一致

crs(Regional_boundary_sf_poly)

[1]“ + proj = nzmg + lat_0 = -41 + lon_0 = 173 + x_0 = 2510000 + y_0 = 6023150 + ellps = intl + towgs84 = 59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993 + units = m + no_defs“

crs(test_map)

+ init = epsg:27200 + proj = nzmg + lat_0 = -41 + lon_0 = 173 + x_0 = 2510000 + y_0 = 6023150 + datum = nzgd49+ units = m + no_defs + ellps = intl + towgs84 = 59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993

现在我戴上口罩:

Library(raster)
test_map_mask <- raster::mask(test,Regional_boundary_sf_poly,inverse=FALSE,updatevalue=NA, updadateNA=FALSE)

并检查结果

tmap::qtm(test_map_mask)

除了地图颜色不再看起来像原始的“雄蕊地形”,而是变为不同的橙色阴影之外,这一切似乎都起作用。如何调整设置以使地图看起来像原始的但带有蒙版? >

感谢您的帮助。亲切的问候,西蒙

我想使用代表区域边界的shapefile遮罩我的背景图。为此,我已使用read_osm库(sp)库(tmaptools)HB_map&...

r raster sf sp tmap
2个回答
1
投票

新答案


0
投票

由于dieghrnan的回答,我现在可以获得一些示例数据,下面的内容对我来说很好用

© www.soinside.com 2019 - 2024. All rights reserved.