【发布时间】:2021-05-19 16:46:05
【问题描述】:
我有一个 35 年的时间序列栅格。每年有两个光栅。它们是从 Google Earth Engine 下载的,这迫使我将栅格分成 30 多个图块以供下载。我正在使用以下代码将它们重新镶嵌在 R 中。
library(readxl)
library(tidyverse)
library(raster)
library(rgdal)
max13files <- list.files('./max13', pattern="*.tif$", full.names = T)
a <- lapply(max13files, stack)
max13<-do.call(mosaic, c(a, fun=max))
namesa<-c("NDVI_13max"," NBR_13max", "Bright_13max", "Green_13max", "Wet_13max")
s13max<- unstack(max13)
for(i in seq_along(s13max)){writeRaster(s13max[[i]], file=namesa[i], format="GTiff")}
这在 90% 的时间里都很好用,除了有一些栅格始终遇到以下错误。
> max13<-do.call(mosaic, c(a, fun=max))
Error in rgdal::getRasterData(con, offset = offs, region.dim = reg, band = object@data@band) :
Failure during raster IO
In addition: There were 50 or more warnings (use warnings() to see the first 50)
In addition: There were 50 or more warnings (use warnings() to see the first 50)
Warning messages:
1: In writeBin(as.vector(v[start:end, ]), x@file@con, size = x@file@dsize) :
problem writing to connection
相同的警告信息重复 50 次。
在时间序列中的 70 个栅格中,有 3 个始终存在此错误。其余的工作正常。范围、投影和波段与正常工作的栅格相同。我已经尝试删除并重新下载错误年份之一。它没有解决问题。从 GEE 下载每个栅格也需要大约一天的时间,因为它们在空间上很大,所以我想尽可能减少我需要这样做的次数。
可能是什么问题?
【问题讨论】:
-
带有错误警告的问题应该包括一个允许重新创建的小代码示例。使用 R 将包括足够的
library调用以加载所需的非核心包以及所需的任何外部数据的具体规范..