我想读取R中的二进制整数并将其转换为栅格网格。
这些文件具有以下章程:

NCols= 4320
NRows= 2160
pixel-size: 1/12=0.833 degrees
upper-left-lat: 90.0-1/24
upper-left-lon: -180.0+1/24
lower-right-lat: -90.0+1/24
lower-right-lon: 180.0
nodata= -5000
scale-factor= 10000
datatype: 16-bit signed integer
byte-order: big endian


这是我的工作:

file <-"http://nasanex.s3.amazonaws.com/AVHRR/GIMMS/3G/1980s/geo81aug15a.n07-VI3g"
dat <- readBin(file,what="integer", size=4, signed = TRUE, n = NRows * NCols, endian = "big")
r <- raster(nrow=2160, ncol=4320)
r[] <- dat


但这似乎不对,我很感谢任何建议。

最佳答案

您可以使用greenbrown R包读取此类文件。

使用R将其安装在R中

install.packages("greenbrown", repos="http://R-Forge.R-project.org")


如果失败是因为需要由其作者重建软件包,则替代方法是先直接从存储库中下载源,然后手动安装它们,如greenbrown installation instructions中所述。在后一种情况下,您可能还必须手动安装几个greenbrown首先依赖的软件包:install.packagesKendallbfaststrucchange上。

安装后,从URL读取栅格非常简单:

library(greenbrown)
r <- ReadVI3g("http://nasanex.s3.amazonaws.com/AVHRR/GIMMS/3G/1980s/geo81aug15a.n07-VI3g")


greenbrown::ReadVI3g返回的对象是RasterLayer。我们可以用

plot(r)


这使

r - 读取R中的二进制光栅文件-LMLPHP

08-20 00:42