使用 R 中的 shapefile 裁剪光栅文件

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

我有一个具有以下属性的光栅文件:

rstack_ET[[1]] # first layer from a stacked raster
class      : RasterLayer 
dimensions : 334, 733, 244822  (nrow, ncol, ncell)
resolution : 409, 498  (x, y)
extent     : 386067.5, 685864.5, 3805999, 3972331  (xmin, xmax, ymin, ymax)
crs        : +proj=utm +zone=36 +datum=WGS84 +units=m +no_defs 
source     : memory
names      : ET.1.1.1.1.1 
values     : 70, 674.7922  (min, max)

我正在使用从 shapefile 获得的多边形,具有以下属性:

> dom_shp_sr
Simple feature collection with 1 feature and 11 fields
Geometry type: POLYGON
Dimension:     XYZ
Bounding box:  xmin: 490187.9 ymin: 3837447 xmax: 499269.9 ymax: 3852987
z_range:       zmin: 0 zmax: 0
Projected CRS: WGS 84 / UTM zone 36N
                          Name descriptio timestamp begin  end altitudeMo tessellate extrude visibility drawOrder icon
1 recharge limestones-akrotiri       <NA>      <NA>  <NA> <NA>       <NA>          1       0         -1        NA <NA>
                        geometry
1 POLYGON Z ((490233.2 383762...

polgon 看起来像这样:

当我尝试使用多边形裁剪光栅文件时:

test = crop(rstack_ET[[1]], dom_shp_sr)

我得到以下图像:

因此,它使用多边形的范围来裁剪光栅文件,而不是多边形的实际形状。 如有任何帮助,我们将不胜感激。

r polygon raster crop
1个回答
0
投票

使用

terra

# ensure your raster is a terra raster if not already
ET_sr_r <- terra::rast(ET_sr_r)

# I think crop expects a SpatVector so cast sf object as vect
masked_ET <- terra::crop(ET_sr_r, vect(dom_shp_sr), mask=TRUE)

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