Я пытаюсь извлечь значения пастбищ из исторической базы данных землепользования и растительного покрова, созданной Геологической службой США. У меня есть некоторые проблемы с пакетом Raster
и параметром getValues
. Файл tiff слишком велик, чтобы добавить его к этому сообщению, но он доступен в Интернете.
Данные доступны в разделе История землепользования и растительного покрова.
Это мой код:
install.packages("raster")
install.packages("rastervis")
install.packages("RCurl")
install.packages("R.utils")
install.packages("rgdal")
install.packages("sp")
install.packages("maptools")
install.packages("tibble")
install.packages("ggplot2")
install.packages("gridExtra")
library(R.utils)
library(rgdal)
library(sp)
library(maptools)
library(raster)
library(rasterVis)
library(RCurl)
library(R.utils)
library(rgdal)
library('rgdal')
library('raster')
library("tibble")
library('ggplot2')
Файл ландшафта в формате tiff:
Landcover1 <- raster ("CONUS_Backcasting_y1938.tif")
Файл округов США:
USA_county <- readOGR("UScounties",layer="UScounties")
Эти два файла находятся в разных проекциях, поэтому проекция:
newprojection <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84
+towgs84=0,0,0"
projected_raster_landcover1 <- projectRaster(Landcover1, crs =
newprojection)
Теперь я хочу извлечь данные о растительном покрове только для пастбищ (всего существует 17 классов земель, а пастбища кодируются как «11»)
Landcover1_values <- extract(x = projected_raster_landcover1,
y = USA_county)
Но когда я использую getValues для извлечения пастбища,
Landcover1_values_count<- lapply(Landcover1_values, FUN = function(x) {
length(which(getValues(x) == 11)) })
показывает ошибку:
**Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘getValues’ for signature ‘"numeric", "missing", "missing"’**
Я думал, что это для NA
, но я не мог понять, как решить проблему.
Привет! Большое спасибо за помощь. Это идеально подходит для варианта с маской, и я могу неправильно понять «сумму». Landcover1_values_count дает только одно число, как я могу сделать это по округам? Мне нужны данные о пастбищах округа. Большое спасибо еще раз!
Я сделал правку. Я предполагаю, что USA_county — это шейп-файл с многоугольником для каждого интересующего округа.