将 .adf 文件转换为 NetCDF

问题描述

我有一组包含空间分布数据的 .adf 文件。文件如下所示:

dblbnd.adf
hdr.adf
metadata.xml
prj.adf
sta.adf
w001001.adf
w001001x.adf

我可以将大文件 (w001001.adf) 作为光栅读入 R。这是栅格特征:

class      : RasterLayer 
dimensions : 1692,3611,6109812  (nrow,ncol,ncell)
resolution : 6,6  (x,y)
extent     : -10833.68,10832.32,-4713.677,5438.323  (xmin,xmax,ymin,ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs 
source     : C:/Users/ahsa361/Documents/CEDS_Data/gridding-preprocessing/input/Corbett/w001001.adf 
names      : w001001 
values     : 0,5637.337  (min,max)

我想将其转换为纬度为 180 度的 NetCDF。 x 360 度分辨率为 0.5 度。我该怎么做?

解决方法

您的范围与您的坐标参考系不匹配

#extent     : -10833.68,10832.32,-4713.677,5438.323  (xmin,xmax,ymin,ymax)
#crs        : +proj=longlat +datum=WGS84 +no_defs 

如果没有更多信息,就不可能真正帮助到您。 crs 很可能是错误的,您需要用正确的替换它。您是否将其设置为错误的值? (这是此问题的最常见原因)。如果你知道它应该是什么,你可以这样设置

 crs(x) <- "correct crs definition"

也有可能是范围不对,您也可以将其设置为正确的值。但是根据您所说的,您不知道,因此您需要弄清楚这些事情,然后我们才能帮助如何解决您的问题。

要获得全局范围和接近 0.1 度的分辨率,您可以这样做

 extent(x) <- c(-180,180,-90,90)

给定您拥有的行数和列数,这会让您:

library(raster)
raster(nrow=1692,ncol=3611)
#class      : RasterLayer 
#dimensions : 1692,3611,6109812  (nrow,ncol,ncell)
#resolution : 0.09969538,0.106383  (x,y)
#extent     : -180,90  (xmin,ymax)
#crs        : +proj=longlat +datum=WGS84 +no_defs 

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...