我想将降水数据与.csv df合并。我想,它应该与光栅包中的命令“extract”一起使用。 那是我的降水数据:
str(precipitation_raster_layer)
Formal class 'RasterLayer' [package "raster"] with 12 slots
..@ file :Formal class '.RasterFile' [package "raster"] with 13 slots
这是我与气候相关的援助数据:
str(AID)
'data.frame': 1050 obs. of 21 variables:
$ project_location_id : Factor w/ 1050 levels "P000501_2427123",..: 189 190 191 192 193 194 188 195 196 187 ...
$ precision_code : int 3 3 3 3 3 3 3 3 3 2 ...
$ latitude : num 6.45 6.74 6.47 5.66 6.6 ...
$ longitude : num -1.583 -3.044 -2.333 -0.39 0.467 ...
使用此命令:
test <- extract(precipitation_raster_layer, AID[,3:4])
UseMethod(“extract_”)中的错误:没有适用的方法 'extract_'应用于类“c('RasterLayer','Raster', 'BasicRaster')“
如果我将.csv转换为SpatialPointsDataFrame并尝试运行“extract”,我会收到此错误:
test <- extract(precipitation_raster_layer, AID_spatial_df)
UseMethod(“extract_”)中的错误: 没有适用于'extract_'的方法应用于类“c('RasterLayer','Raster','BasicRaster')的对象”
我真的不明白为什么它说我的对象不是RasterLayer。
任何帮助表示赞赏。
答案 0 :(得分:1)
我的猜测是,您在加载raster
后加载了另一个包含extract
方法的方法,该方法隐藏了raster
方法。
仅加载您需要的软件包,并尝试从extract
明确调用raster
方法:
raster::extract(precipitation_raster_layer, AID[, 4:3])
请注意,它应该是 AID[, 4:3]
,不是 AID[, 3:4]
,因为正确的顺序是经度,纬度。但这不是导致错误的原因。