【发布时间】:2021-11-30 15:40:54
【问题描述】:
我正在尝试更新以前使用 raster to terra 的旧代码。我遇到了从 LANDFIRE 栅格图层中提取主要植被类型的问题。在 ArcGIS 中,我为我的浓缩植被类型(即 1="Aspen"、2="Other" 等)创建了一个名为“CONDENSED”的新列,这是我想从中提取的活动类别。我有8个类别。由于某种原因,提取的值比应有的“高”一个类别。例如,对于 aspen,一个点的值应该是 1,但提取的值是 2/Other。这在所有蔬菜类型中都是一致的,无论我的观点是 sf 还是 SpatVector。我使用的是 terra 版本 1.4.11。
我尝试从头开始创建一个可重现的示例,与 raster::extract() 中的值相比,它工作得非常好,所以我不确定问题是否与我指定活动层的方式有关?一世
上传了我正在使用的栅格和点的小样本:https://github.com/Cara-Thompson/Elk-resource-selection
有人知道会发生什么吗?下面是我的 SpatRaster 和我的步骤的描述。
奖励:我注意到terra::extract() 在使用 Raster* 对象时可以处理完整形式的 sf 对象。所以我可以在不使用 SpatVect/SpatRast 格式的情况下正确提取它,但这是否比使用 raster::extract() 更快?
# Read in raster and define crs
Veg <- terra::rast("./Vegetation/veg_cond.tif")
crs(Veg) <- "EPSG:4326"
#> Veg
# class : SpatRaster
# dimensions : 9401, 21368, 1 (nrow, ncol, nlyr)
# resolution : 0.0003398576, 0.0003398576 (x, y)
# extent : -113.7326, -106.4705, 32.44176, 35.63676 (xmin, xmax, ymin, ymax)
# coord. ref. : lon/lat WGS 84 (EPSG:4326)
# source : veg_cond.tif
# categories : COUNT, CONDENSED
# name : COUNT
# min value : 135890
# max value : 77959803
# Make the condensed category the active category so count isn't extracted
activeCat(Veg) <- is.factor("CONDENSED")
# Extract
Values <- terra::extract(Veg, st_coordinates(EP.sf))
# Verify using raster::extract()
Veg2 <- raster(Veg)
Values$raster <- raster::extract(Veg2, EP.sf)
【问题讨论】:
标签: r geospatial terra