【问题标题】:NetCDF variables contain non-matching latitudesNetCDF 变量包含不匹配的纬度
【发布时间】:2021-03-12 15:14:15
【问题描述】:

我有两个 netcdf 数据(降水量和潜在蒸散量)。我已经根据边界框剪裁了两个数据,所以它们都有相同的维度。我尝试做简单的计算,但收到错误Precipitation and PET variables contain non-matching latitudes

我通过ArcGIS手动检查了数据,发现PET-红色的覆盖范围不如降水-蓝色数据。如何解决这个问题呢?我敢肯定,如果我们处理来自不同提供商的各种数据,这种情况总会发生。

我是否应该重新对两个数据进行网格化,以便很好地调整覆盖范围?如果是,如何使用 CDO 或 NCO,或者使用其他工具来做到这一点?

** 根据 Adrian 和 Charlie 的反馈编辑问题

我的两个数据(沉淀和蒸发)具有相同的分辨率 0.05 度/像素,尺寸也是 2400 x 1470(通过 ndcump -h 检查)。

我尝试使用 CDO 和 NCO 进行推荐,并产生相同的结果。见下图 NCO 为绿色,CDO 为橙色。这两个结果仍然不是我所期望的。

NCO 在此过程中也会产生警告

Grid(src): /var/folders/3r/mp8dt34s0ggc9fqt3_tn_rv40000gn/T/ncremap_tmp_grd_src.nc.pid30743
Grid(dst): /var/folders/3r/mp8dt34s0ggc9fqt3_tn_rv40000gn/T/ncremap_tmp_grd_dst.nc.pid30743
Map/Wgt  : /var/folders/3r/mp8dt34s0ggc9fqt3_tn_rv40000gn/T/ncremap_tmp_map_esmf_bilinear.nc.pid30743
ncks: WARNING NC_DOUBLE version of "_FillValue" attribute for pet_thornthwaite fails isfinite(), value is NaN, which can cause unpredictable results.
HINT: If arithmetic results (e.g., from regridding) fails or values seem weird, retry after first converting _FillValue to normal number with, e.g., "ncatted -a _FillValue,pet_thornthwaite,m,f,1.0e36 in.nc out.nc"

【问题讨论】:

  • 这能回答你的问题吗? Change grid size of a netCDF file
  • 底层数据集对海陆掩码的定义不同(海点设置为缺失),因此缺乏对应关系。但是两个数据集现在都在同一个网格上,并且可以组合,这是最初的问题。如果您想处理丢失的数据以保持一致,则 nco 和 cdo 中的功能可以做到这一点,但最好在单独的问题中提问,而不是更新现有问题来更改问题。

标签: netcdf nco cdo-climate


【解决方案1】:

您可以通过这种方式使用 cdo 重新网格化一个文件以匹配另一个文件的分辨率:

cdo remapbil,precip.nc evapo.nc evapo_regridded.nc 

这将使用双线性插值(“bil”)将 evapo.nc 映射到 precip 文件的分辨率 - 其他选项是保守重映射(二阶的“con”和“con2”),最近邻(“nn”)例如。

Please see this related question for more details.

【讨论】:

  • 我已经尝试使用remapbil,速度非常快。处理文件大小为 5.76GB 的大覆盖仅需 55 秒。不幸的是,结果仍然不是我所期望的。请参阅上面已编辑的问题,我已附上结果。
【解决方案2】:

正如 Adrian 所指出的,对 NCO 命令的解释是 here

ncremap -d precip.nc evapo.nc evapo_regridded.nc             # Conservative
ncremap -a bilinear -d precip.nc evapo.nc evapo_regridded.nc # Bilinear

在回答以下问题时,NCO 调用 ESMF 算法进行双线性重新网格化,这显然比 CDO 慢。保守算法是纯 NCO 并且可能会更快,谁知道呢。试试看。 NCO 打印的警告信息非常丰富。我建议您阅读它和提示,并在要求其他人为您做之前调查任何异常情况。

【讨论】:

  • 我已经尝试使用您提供的 NCO 解决方案,带有bilinear 选项,覆盖范围大,文件大小为 5.76GB,与 CDO 解决方案仅 55s 相比,它需要 7m 8s。通常 NCO 总是以输出的速度和大小取胜。 NCO 还会生成警告(请参阅上面已编辑问题中的附图)。还有什么我应该遵循的建议吗?
  • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
相关资源
最近更新 更多