裁剪掉 13 U.S 区域以外的所有映射区域。状态

Crop out all mapped area beyond region of 13 U.S. states

我刚开始在 R 中进行映射,我已经设法将经纬度数据帧转换为栅格文件,然后在其上绘制州边界。

现在我需要准备好发布它,我想只包括我的 13 个州区域的形状(没有大湖)。

library(tmap)    

usa <- st_as_sf(maps::map("state", fill=TRUE, plot =FALSE))

map_us<- tm_shape(usa)+
    tm_borders()  

tm_shape(raster_file) + 
  tm_raster(style = "cont", palette = "viridis", midpoint = 0)+
  map_us  

我很难找到可以为多个州提供多边形的东西,而且我已经使用了很多地图包。抱歉,我不能在此处包含我的栅格数据。

要将光栅文件裁剪为 {sf} 矢量形状,原则上有两种选择:

  • 在数据层面裁剪;这涉及 raster::mask() 之后可能 raster::crop() 以减小栅格的范围(蒙版栅格保留原始大小)
  • 保留数据,并在绘图上覆盖一个带孔的白色多边形

数据级别的裁剪更多 "pure",但会留下参差不齐的边缘(栅格单元格 必须 是方形的)。

覆盖一个白色多边形不是那么纯粹,但如果您的主要目标是一个光滑的演示文稿(并且该死的纯洁性......)可能更可取

您会在 this post on the RStudio community site.

中找到对它们的讨论以及示例和示例代码