裁剪出美国13个州以外的所有地图绘制区域

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

我刚开始使用R中的映射,并且设法将lat lon数据帧转换为栅格文件,然后在其上绘制状态边框。

enter image description here

现在,我需要准备好发布它,并且只想包含我的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  

我很难找到一些可以为多个州提供多边形的东西,并且我经历了很多映射包。抱歉,我不能在这里包括我的栅格数据。

r crop mask tmap
1个回答
0
投票

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

  • 在数据级别裁剪;这涉及到raster::mask()以及稍后可能出现的raster::crop()以减小栅格的范围(被遮罩的栅格保留原始大小)
  • 保留数据,并在绘图上覆盖带有孔的白色多边形

在数据级别上裁剪更“纯”,但会使边缘参差不齐(栅格像元为正方形)。 [覆盖白色多边形不是那么纯净,但是如果您的主要目标是光滑的表现(并且本质的纯真可恶...),则可能更可取]

您将在this post on the RStudio community site中找到讨论的所有内容以及示例和示例代码。

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