以下似乎有效
创建“grd”文件模板。只做一次
library(raster)
r <- raster(xmn=0, xmx=360, ymn=-60, ymx=60, nrow=3000, ncol=9000, crs="+proj=longlat +datum=WGS84")
values(r) <- 1
r <- writeRaster(r, "test.grd", datatype="FLT4S")
x <- readLines("test.grd")
x[grep("byteorder", x)] <- "byteorder=big"
x[grep("nodatavalue", x)] <- "nodatavalue=-9999"
writeLines(x, "test.grd")
获取数据。 1个文件示例——你当然可以写一个循环来获取它们
url <- "ftp://persiann.eng.uci.edu/CHRSdata/PERSIANN-CCS/daily/rgccs1d03001.bin.gz"
gzf <- basename(url)
download.file(url, gzf)
R.utils::gunzip(gzf)
将 bin 文件扩展名重命名为 gri 并复制 grd 文件以匹配名称
f <- gsub("\\.gz$", "", gzf)
file.rename(f, extension(f, "gri"))
fg <- extension(f, "grd")
file.copy("test.grd", fg)
创建一个光栅层;乘以得到正确的最小/最大值。和rotate 获取从-180 到180 的坐标。
r <- raster(fg) * 1
r <- rotate(r, filename=paste0("ok_", fg))
# looks ok
plot(r)