Я работаю с огромным количеством данных в ежедневных файлах tif (тысячах ежедневных файлов). Я анализирую среднее значение растра в области шейп-файла, повторяющееся на потенциально тысячах слоев фигур.
Мои текущие файлы .tif предназначены для всей страны, тогда как на самом деле мне нужна только небольшая область каждого файла tif для каждого слоя шейп-файла. Каждый слой-фигура имеет свой набор дней для извлечения, то есть такой фрейм данных:
df <- data.frame(shplayer=c("shp_layerbuffer1","shp_layerbuffer2", "shp_layerbuffer3"), start=c("2000_02_18", "2004_03_19", "2010_08_20"), end=c("2010_01_09", "2005_03_15", "2012_09_04"))
Есть ли способ в R обрезать .tif (или любой файл растрового типа) ПЕРЕД чтением файла? Таким образом, я мог читать только обрезанную область каждого из файлов tif.
Я вообразил что-то вроде (повторение через весь набор дат):
library(sf)
library(raster)
shp_layerbuffer1 <- st_read("myshpfolder", layer="shp_layerbuffer1", quiet=T)
###EXAMPLE BUT doesn't work to crop the raster as it comes in
tempraster <- raster::raster("mytif_2000_02_18.tif", ext=extent(shp_layerbuffer1))
Затем обычный велокс (или растровый) извлекаем, повторяем.