【问题标题】:NetCDF to Raster File Extent / Cell Size ChangeNetCDF 到光栅文件范围/像元大小更改
【发布时间】:2018-12-01 09:00:45
【问题描述】:

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

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

这是我的工作流程:

  1. NetCDF 到栅格层
  2. 复制到栅格或投影栅格(这两种工具都会产生相同的问题)

以下是初始 NetCDF 到 Layer 中的原始层属性:

像元大小 (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 文件的原始范围值,但它总是最终会增加范围,从而增加像元大小,但是一点点 -

我也尝试将压缩更改为无,但仍然没有帮助。

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

这是一个单一的变量文件,它已经按日期保存,所以它非常简单。任何想法为什么会发生这种情况?

【问题讨论】:

  • 你怎么知道“真实”范围是什么?
  • 从我下载 RAW .NC 文件并查看 ArcMap 中的属性开始。

标签: raster netcdf


【解决方案1】:

终于搞清楚了图像情况。对于 Arc 和 ENVI,我们只需要指定像元大小,因为图像的原始范围刚好在地图的正常范围之外。 Arc 继续调整单元格大小以保持正常范围 (-180,180,90,-90)。这是因为浮点 lat 和 lon 坐标以及文件边缘的额外单元格。

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

【讨论】:

    【解决方案2】:

    这不是编码问题,但您可以在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 好像搞错了

    【讨论】:

    • 感谢 R 的帮助。我会尝试比较。我也想出了一个解决方法。
    • 罗伯特,谢谢。我越来越不惊讶 Arc 弄错了。我将尝试找出原因并返回。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 2018-05-05
    • 2019-09-08
    • 2012-05-08
    • 2020-03-27
    • 2018-01-20
    • 2022-08-03
    相关资源
    最近更新 更多