在使用ArcMap工具以及arcpy脚本时,我得到了相同的结果。当我尝试将NetCDF(NC)文件转换为TIF时,文件范围会增加很小的数量,这也会稍微增加Y单元格的大小。
我可以使图像匹配的唯一方法是右键单击目录中的文件层时使用“导出数据”菜单项。
这是我的工作流程:
以下是初始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度,但这足以使我的像素全部向下移动一点。
我还尝试将压缩率更改为无,但仍然无济于事。
我在工具中也包含了转换和输出坐标。从源信息看,文件的数据似乎是相同的。否则,请使用默认设置。
这是一个单独的变量文件,并且已经按日期保存了,因此非常简单。任何想法为什么会这样?
答案 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似乎弄错了