我想裁剪一些我从mrlc获得的树冠覆盖数据。我下载了美国所有的林冠覆盖数据,但我真的只对威斯康星州和伊利诺伊州感兴趣。我有一个伊利诺伊州和威斯康星州边界的SpatVector,ilwi
这是ilwi
ilwi
#class : SpatVector
#geometry : polygons
#dimensions : 2, 6 (geometries, attributes)
#extent : -92.8854, -86.96771, 36.98682, 46.95248 (xmin, xmax, ymin, ymax)
#coord. ref. : lon/lat WGS 84 (EPSG:4326)
#names : FID Program State_Code State_Name Flowing_St FID_1
#type : <int> <chr> <chr> <chr> <chr> <int>
#values : 14 ACES IL ILLINOIS F 932
# 50 WI-ESR WI WISCONSIN F 968
我将林冠覆盖数据转换为SpatRaster
cancov
#class : SpatRaster
#dimensions : 104424, 161190, 1 (nrow, ncol, nlyr)
#resolution : 30, 30 (x, y)
#extent : -2493045, 2342655, 177285, 3310005 (xmin, xmax, ymin, ymax)
#coord. ref. : NAD83 / Conus Albers (EPSG:5070)
#source : nlcd_tcc_conus_2019_v2021-4.tif
#color table : 1
#name : Layer_1
#min value : 0
#max value : 254
现在,我只想得到威斯康星州和伊利诺伊州的冠层覆盖数据,所以我尝试了作物函数,但得到了一个错误
cropcancov <- crop(cancov, ilwi, mask=TRUE)
#Error: [crop] SpatRaster has no values
此外,我不确定这是否是问题,但坐标参考系统是不同的SpatVector
和SpatRaster
。而且,当我这么做的时候,我得到了一个警告
cancov <- terra::rast("nlcd_tcc_conus_2019_v2021-4.tif")
#Warning message:
#In class(object) <- "environment" :
# Setting class(x) to "environment" sets attribute to NULL;
# result will no longer be an S4 object
按照建议,我运行了以下代码:
pilwi <- project (ilwi, cancov)
pilwi
# class : SpatVector
# geometry : polygons
# dimensions : 2, 6 (geometries, attributes)
extent : 242859.9, 730265.2, 1570763, 2673050 (xmin, xmax, ymin, ymax)
# coord. ref. : NAD83 / Conus Albers (EPSG:5070)
# names : FID Program State_Code State_Name Flowing_St FID_1
# type : <int> <chr> <chr> <chr> <chr> <int>
# values : 14 ACES IL ILLINOIS F 932
# 50 WI-ESR WI WISCONSIN F 968
crop(cancov, pilwi)
#class : SpatRaster
#dimensions : 36743, 16247, 1 (nrow, ncol, nlyr)
#resolution : 30, 30 (x, y)
#extent : 242865, 730275, 1570755, 2673045 (xmin, xmax, ymin, ymax)
#coord. ref. : NAD83 / Conus Albers (EPSG:5070)
#source : spat_HGUbU1BYXynbxDC_12144.tif
#color table : 1
#name : Layer_1
#min value : 0
#max value : 254
1条答案
按热度按时间j5fpnvbx1#
SpatRaster和SpatVector应具有相同的坐标参考系。他们没有。栅格具有“NAD 83/ Conus阿尔伯斯(EPSG:5070)”,而矢量具有“lon/lat WGS 84(EPSG:4326)”。
您可以投影SpatVector以使它们匹配(尽可能避免投影光栅数据)。
In class(object) <- "environment" :
等警告与此无关。这可能是因为您正在将旧会话加载到R中。可以用然后关闭R并且不保存会话。如果您使用R-Studio,则可以执行
Session/Terminate R