NetCDF到栅格文件范围/像元大小更改

时间:2018-06-21 22:59:21

标签: raster netcdf

在使用ArcMap工具以及arcpy脚本时,我得到了相同的结果。当我尝试将NetCDF(NC)文件转换为TIF时,文件范围会增加很小的数量,这也会稍微增加Y单元格的大小。

我可以使图像匹配的唯一方法是右键单击目录中的文件层时使用“导出数据”菜单项。

这是我的工作流程:

  1. 从NetCDF到栅格层
  2. 复制到Raster或Project Raster(这两个工具都会产生相同的问题)

以下是初始NetCDF中“图层”的原始图层属性:

像元大小(X,Y):0.099990845,0.099998474

以下是范围值:

顶部:89.9972572327

左:-179.999992371

右:-179.967048645

底部:-89.9999961853

这是我复制到Raster或Project Raster后的值:

像元大小(X,Y):0.099990845,0.1000464

顶级-90.0973036279

左-179.999992371

右-180.167030334

底部-90.0862541199

我试图在栅格工具中包括NoData值,背景值,捕捉到图像,甚至包括NC文件的原始范围值,但是它总是最终增加了范围,这反过来又增加了像元大小,但只有-小于0.01度,但这足以使我的像素全部向下移动一点。

我还尝试将压缩率更改为无,但仍然无济于事。

我在工具中也包含了转换和输出坐标。从源信息看,文件的数据似乎是相同的。否则,请使用默认设置。

这是一个单独的变量文件,并且已经按日期保存了,因此非常简单。任何想法为什么会这样?

2 个答案:

答案 0 :(得分:0)

最后弄清楚了图像情况。对于Arc和ENVI,我们只需要指定像元大小,因为图像的原始范围刚好在地图的正常范围之外。弧前进,并调整单元格大小以维持正常范围(-180,180,90,-90)。这是因为浮点lat和lon坐标以及文件边缘上的多余单元格。

就像在R中一样,一旦指定了所有内容,则浮点值将被四舍五入,并且图像加载就很好了。

答案 1 :(得分:-1)

这不是一个编码问题,但是您可以在https://gis.stackexchange.com/上尝试这样的问题。

这是一种使用R将netcdf文件转换为geotiff的方法,您可以将其用作比较:

library(raster)
library(ncdf4)
r <- raster("3B-MO.MS.MRG.3IMERG.20140401-S000000-E235959.04.V05B.HDF5.nc")
x <- writeRaster(r, "file.tif")

现在让我们看一下数据集:

r
#class       : RasterLayer 
#dimensions  : 3600, 1800, 6480000  (nrow, ncol, ncell)
#resolution  : 0.1, 0.1  (x, y)
#extent      : -90, 90, -180, 180  (xmin, xmax, ymin, ymax)
#coord. ref. : NA 
#data source : 3B-MO.MS.MRG.3IMERG.20140401-S000000-E235959.04.V05B.HDF5.nc 
#names       : precipitation 
#zvar        : precipitation 

范围是全局且干净的:-180至180的经度和-90至90的经度。双向分辨率均为0.1度。

这也是ncdf元数据所说的:

print(r)

# ... 
#  Grid.GridHeader: BinMethod=ARITHMETIC_MEAN;
#Registration=CENTER;
#LatitudeResolution=0.1;
#LongitudeResolution=0.1;
#NorthBoundingCoordinate=90;
#SouthBoundingCoordinate=-90;
#EastBoundingCoordinate=180;
#WestBoundingCoordinate=-180;
#Origin=SOUTHWEST;

不知何故,Arc似乎弄错了