我想读取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.packages
在Kendall
,bfast
,strucchange
上。安装后,从URL读取栅格非常简单:
library(greenbrown)
r <- ReadVI3g("http://nasanex.s3.amazonaws.com/AVHRR/GIMMS/3G/1980s/geo81aug15a.n07-VI3g")
greenbrown::ReadVI3g
返回的对象是RasterLayer。我们可以用plot(r)
这使