Я хочу получить оценку площади для каждого полигона, используя метод подсчета пикселей.Первоначальная карта земного покрова представляла собой растровые данные, которые снабжены отличительным классом, назначенным для каждого пикселя ( легенда карты земного покрова ).Однако, чтобы получить оценку площади с помощью подсчета пикселей, мне не интуитивно понятно.Возможно, первое, что я могу сделать, это извлечь все пиксели для каждого многоугольника, которые представляют информацию о распределении классов земного покрова в каждом многоугольнике.После этого мне нужно использовать метод подсчета пикселей, чтобы получить оценку площади и агрегировать весь земельный / почвенный охват города, сельскохозяйственную площадь для каждого полигона.Для меня использование подсчета пикселей для получения оценки площади не является простым и не имеет четкого представления о том, как это сделать в R.
Обратите внимание, что оригинальная карта земельного покрова довольно большая (около 92 mb
)и трудно привести воспроизводимый пример для растрового покрова, так что прости меня за такие неудобства.Вот скрипт R
для получения растра почвенно-растительного покрова:
library(raster)
library(R.utils)
url = "https://cidportal.jrc.ec.europa.eu/ftp/jrc-opendata/LUISA/PrimaryOutput/Europe/REF-2014/JRC_LUISA_Input_Corine_land_cover_2006_r_ref_2014.zip"
download.file(url, basename(url))
gunzip(basename(url))
rname <- list.files(getwd(), "tif$")
land_cover <- raster::raster("~/LUISA_CLC_land_coverage/clc06_r.tif")
Я хочу объединить всю информацию о земельном покрытии / почве для каждого полигона (всего 403 полигона, которые будут агрегировать информацию о земном покрове);Вот полигоны, которые я собираюсь использовать для оценки площади: шейп-файл с полигонами доступен на лету :
Я обрезал оригиналрастр Landcover следующим образом:
deu_shp = maptools::readShapePoly("~/adm2.shp",
proj4string=crswgs84,verbose=TRUE)
deu_proj <- spTransform(deu_shp, CRSobj = land_cover@crs)
land_cover_deu <- crop(land_cover, deu_proj )
Чтобы понять оценку площади с подсчетом пикселей, я погуглил связанную статью и нашел это: Использование дистанционного зондирования для оценки площади посева и идеи, представленной в этой статьеблизко соответствует моим интересам, но реализовать представленный метод является чисто теоретическим, и мне сложно это сделать в R
.Я вполне в порядке, если есть какой-либо быстрый и грязный способ получить оценку площади с подсчетом пикселей, где информация о земельном покрытии / почве (например, город, лес, сельскохозяйственная земля) должна быть агрегирована для каждого многоугольника (доступен шейп-файл с многоугольниками)на лету ).
для выделения пикселей, я мог бы просто использовать raster::extract
следующим образом (приведенный ниже код является пробным):
lapply(deu_proj, function(x) {
pixel_extract = raster::extract(land_cover_deu, deu_proj[x,])
pixel_extract= as.data.frame(pixel_extract)
})
и выше, простое извлечение пикселей не очень эффективно для исходного земного покроварастр.Я не знаю, как сделать подсчет пикселей для извлеченного пикселя в каждом многоугольнике и получить соответствующую оценку площади (например, площадь земли в городе, лес, сельское хозяйство и т. Д.).
Любую идею сделатьэто случилось в R?Как получить оценку площади с использованием метода подсчета пикселей для данного растра земного покрова?Возможно ли объединить информацию о земельном покрытии / почве для каждого полигона?Заранее спасибо