1

我想从 MERRA2 netcdf 文件中提取网格单元,这些文件仅使用 R 标记为海:

在此处输入图像描述

然而,由于土地区域下边界的弯曲性质,部分土地区域在我的选择范围内。我想选择最接近陆地的海域区域,但我的选择中有一些陆地区域我想过滤掉。

我有另一个 nc 文件,其中包含我理解的陆地和海域的一部分,可以从中提取我需要的网格单元:

在此处输入图像描述

所以我必须定义一个掩码,我只能使用它从我的第一个文件中选择具有一定阈值的海洋点,因为陆地和海洋的覆盖范围很小。请问有没有办法用 R 或者在 ArcGIS 中做到这一点

4

1 回答 1

2

您也许可以使用 CDO 做一些事情。如果您决定从您的landsea遮罩文件landsea.nc中决定要用于遮罩的陆地分数阈值“c”(从您的描述中听起来c需要是一个非常小的正实数),那么您可以定义一个掩码,海洋为零,陆地为一

cdo lec,c landsea.nc mask.nc 

这会将所有值 < c 的点设置为 1,否则为 0(对于土地)

或者,如果您想将所有着陆点设置为“缺失”,那么您可以

cdo setrtomiss,0.5,2 mask.nc mask_miss.nc

现在陆地点设置为“缺失”

然后,您可以使用掩码缩放数据文件以将土地点设置为零

cdo mul merra2.nc mask.nc out1.nc 

或者您可以将它们设置为缺少:

cdo mul merra2.nc mask_miss.nc out2.nc 

然后你可以处理。

当然,这里我假设landsea.nc 掩码文件与您的merra 文件在同一个网格上。如果不是,您将需要首先重新网格化掩码文件,您也可以使用 CDO 执行此操作。

于 2017-07-04T13:32:25.653 回答