我正在尝试通过从 CORINE Land Cover 下载的 TIFF 中选择葡萄园类别,使用 R 获取有关葡萄园土地利用的信息。
corine <- rast(paste(dir$land, "U2018_CLC2018_V2020_20u1.tif", sep = "/"))
unique_values <- unique(corine)
print(unique_values) #15 vineyards
vineyard <- corine==15
我不确定这一步。此外,我上传了ESRI shapefile(具有7901个特征和12个字段的简单特征集合,几何类型:MULTIPOLYGON尺寸:XY边界框:xmin:313279.3 ymin:3933683 xmax:1312016 ymax:5220292投影CRS:WGS 84 / UTM区域32N)与管理边界和温度源自 NetCDF 扩展中的哥白尼。因为我需要获得意大利每个城市的温度,并根据葡萄园的存在进行加权,以更好地捕捉气候对葡萄园的影响。
fname <- paste(dir$shape, "mapEU.shp", sep="/")
shp <- st_read(fname)
fname <- paste(dir$tm, "1979", "tm_19790101.nc", sep="/")
mask <- raster(fname)
# harmonize shape map and temperature layer
shp <- shp %>% st_transform(crs = mask@crs)
st_crs(shp)
# Change extent in vineyard
e <- extent(mask)
vineyardArea <- crop(vineyard, e)
但是我得到了错误:
[crop] extents do not overlap
可能是因为葡萄园是 SpatRaster,而 mask 是 RasterLayer。如何解决这个问题?然后我会继续做类似的事情......
# Aggregate vineyard Spatialraster up to 0.1 deg, the resolution of the ERA5 data
vineyardArea <- resample(vineyardArea, mask, method="bilinear")
预先感谢您的帮助!
我假设你明白了
[裁剪]范围不重叠
因为范围不重叠。看看吧
fname <- paste(dir$tm, "1979", "tm_19790101.nc", sep="/")
mask <- rast(fname)
ext(mask)
ext(vinyard)
mask
vinyard
可能其中一个有 lonlat CRS,而另一个没有。 如果没有“最小的、独立的、可重现的例子”(这是提出 R 问题时的期望),就很难为您提供更多帮助;或者至少有一些证据。根据上述内容,您也许可以编辑您的问题。 对于多边形你可以做
fname <- paste(dir$shape, "mapEU.shp", sep="/")
vct <- vect(fname)
vct <- project(vct, vinyards)