使用RasterPackage for RasterLayer的“extract”在R中给出Error

时间:2018-04-11 09:57:04

标签: r csv extract raster

我想将降水数据与.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。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

我的猜测是,您在加载raster后加载了另一个包含extract方法的方法,该方法隐藏了raster方法。

仅加载您需要的软件包,并尝试从extract明确调用raster方法:

raster::extract(precipitation_raster_layer, AID[, 4:3])

请注意,它应该是 AID[, 4:3]不是 AID[, 3:4],因为正确的顺序是经度,纬度。但这不是导致错误的原因。