Я хочу объединить данные об осадках с файлом .csv df. Я понял, что это должно работать с командой "извлечь" из растрового пакета. Это мои данные об осадках:
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])
Error in UseMethod("extract_") : no applicable method for 'extract_' applied to an object of class "c('RasterLayer', 'Raster', 'BasicRaster')"
Если я преобразовываю .csv в SpatialPointsDataFrame и пытаюсь запустить «extract», я получаю эту ошибку:
test <- extract(precipitation_raster_layer, AID_spatial_df)
Error in UseMethod("extract_") : no applicable method for 'extract_' applied to an object of class "c('RasterLayer', 'Raster', 'BasicRaster')"
Я действительно не понимаю, почему написано, что мой объект не является RasterLayer.
Любая помощь приветствуется.
Я предполагаю, что после загрузки raster
вы загрузили другой пакет, в котором также есть метод extract
, который скрывает этот метод от raster
.
Загрузите только те пакеты, которые вам нужны, и попробуйте явно вызвать метод extract
из raster
:
raster::extract(precipitation_raster_layer, AID[, 4:3])
Обратите внимание, что это должно бытьAID[, 4:3]
, нетAID[, 3:4]
, так как правильный порядок - долгота, широта. Но это не причина ошибки, которую вы получаете.
Где говорится, что ваш объект не является растровым слоем?