3.
\ begingroup美元

我有两个数据集,每个数据集都有两个不同的分辨率。第一个数据集是一个较粗分辨率的数据集,具有0.5 x 0.625度分辨率,包含MERRA-2边界层厚度值。第二,更精细的分辨率数据集具有0.1 x 0.1度的分辨率,并包含IMERG降雨率的值。我想求出降雨速率超过10毫米/小时的每一点的边界层厚度。由于MERRA-2边界层厚度数据集比较粗糙,我认为我可以从MERRA-2数据集中的纬度和经度值创建一个网格,并检查IMERG数据点是否位于任何MERRA-2网格框中。我不知道从哪里开始,任何帮助都非常感激。

以下是每个数据集的纬度和经度的格式:

MERRA-2纬度:[[1.3500000e+01 1.3500000e+01 1.3500000e+01 1.3500000e+01] MERRA-2经度:[[-51.875 -51.25 -50.625 -50.]-49.375 -48.75 -48.125 -47.5 -46.875] IMERG纬度:[-0.05 0.05 0.15 0.25 0.25 0.35 0.55 0.65 0.75 0.85 0.95 1.05]IMERG经度:[-49.95 -49.85 -49.75 -49.65 -49.55 -49.45 -49.35 -49.25 -49.15 -49.05]

编辑:我已经从Nemesi的第一种方法(cdo remapcon)创建了一个受尊重的数据集,它们可以在下面找到。上面的图片是经过处理的数据,下面是原始数据。虽然新数据集中的点数量从59040增加到5475,600,但图像的分辨率似乎比原始图像低。IMERG数据似乎也具有更高的分辨率,即使两个数据集具有相同数量的点。这是因为数据格式错误吗?

原始数据集新的数据集

\ endgroup美元
4
  • 2
    \ begingroup美元 您应该使用GIS方法。你甚至可以非常快速地使用python(例如geopandas)。根据我的经验,加载地理空间数据要快得多(例如本机NetCDF?),因为从latat /long文本输出中重新创建网格非常耗时。 \ endgroup美元
    - - - - - -f.thorpe
    2021年7月26日19:50
  • \ begingroup美元 你所说的GIS方法是指最近邻插值还是最近邻插值? \ endgroup美元
    - - - - - -mpletch1
    2021年7月26日20:35
  • \ begingroup美元 如果它只是一个单一数据集,您可以执行通常称为“相交”的操作,这是一种空间连接。这将需要从栅格到多边形的转换,但如果您处理的是时间序列数据,那么这可能太耗时了。如果你使用的是时间序列数据,我建议你使用合适的栅格工具从一个网格转换到另一个网格,让它们直接比较。 \ endgroup美元
    - - - - - -f.thorpe
    2021年7月26日20:47
  • \ begingroup美元 不幸的是,我现在没有访问ArcMap软件,我在将geopandas Python库安装到我的Python环境上遇到了麻烦。 \ endgroup美元
    - - - - - -mpletch1
    2021年7月29日14:26

1回答1

5
\ begingroup美元

注:我假设原始数据以NetCDF格式提供。

有两种(好吧,还有更多,但我只关注这两种)相对快速的方法来处理这个问题。选择哪一个在很大程度上取决于您的偏好和使用不同工具的能力。

我想到的最快的方法是使用气候数据操作符(CDO):你可以找到详细的文档在这里一个概述在这里

方法应该是从最高分辨率的文件中获取网格描述:

Cdo -griddes imerge .nc

然后,获取网格的描述并将其放入. txt文件并重新映射较粗的分辨率文件以匹配此网格。在这种情况下,您可能希望使用保守的重新映射方法来保持原始值不变。

Cdo remapcon,imerggrid.txt merra_coarse。数控merra_imerggrid.nc

通过这种方式,您将获得与IMERG网格匹配的分辨率的MERRA-2数据。

第二种方法使用R.步骤(很快地):

  1. 加载两个NetCDF文件作为栅格;
  2. 对imerg栅格进行栅格到点的转换(或者只是提取坐标并将它们转换到点空间对象中)(通过这种方式,您将获得imerg单元的质心);
  3. 从覆盖imerg点的merra对象中提取数据。所有这些段落都在stackoverflowgis.stackexchange

然而,在大数据集的情况下,最后一种方法可能会导致非常缓慢的过程。

\ endgroup美元
8
  • \ begingroup美元 执行上述方法后,新处理的图像的分辨率比以前降低了。这是有意的还是我在某个地方犯了错误? \ endgroup美元
    - - - - - -mpletch1
    2021年7月27日19:13
  • \ begingroup美元 所考虑的图像现在应该具有与imerg数据相同的分辨率 \ endgroup美元
    - - - - - -Nemesi
    2021年7月28日7点15分
  • \ begingroup美元 这很奇怪,因为图像中的点数量从59,040增加到5,475,600,图像似乎不那么详细。我会把一些图片和我最初的问题联系起来。 \ endgroup美元
    - - - - - -mpletch1
    2021年7月28日18:36
  • 1
    \ begingroup美元 图像之所以看起来分散,是由于保守的重映射。如果你想要一个更平滑的图像,你应该使用双线性插值重映射命令(remapbil)。我最初建议使用remapcon的原因是因为你要求“我想找到降雨速率超过10毫米/小时的每个点的边界层厚度”,我以为你想要原始数据。用双线性插值重新映射将改变数据以使平滑。 \ endgroup美元
    - - - - - -Nemesi
    2021年7月29日8:08
  • \ begingroup美元 @mpletch1在我看来,你也在绘制等高线/插值图,这就是为什么在下面的图中有粗糙的IMERG数据出现平滑,更细致。如果你是,那么我建议关掉它,因为它会让你更难评估。 \ endgroup美元
    - - - - - -Deditos
    2021年7月29日10:35

你的答案

点击“张贴您的答案”,即表示您同意我们的服务条款隐私政策而且饼干的政策

这不是你想要的答案?浏览带标签的其他问题问自己的问题