创建一个NetCDF文件,其数据被屏蔽以仅保留地面点

时间:2016-08-20 20:07:21

标签: mask netcdf grads

我在grads中使用basemap.gs脚本屏蔽了一个NetCDF文件。这是我使用面具的原因:

Example

所以,我想获得一个只包含大陆数据的NetCDF文件,有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

一种方法是使用CDO创建陆海掩模,然后将所有海点设置为缺失:

cdo -f nc2 setctomiss,0 -gtc,0 -remapcon,r720x360 -topo seamask.nc

其中resolution是您要屏蔽的数据文件的描述:例如r720x360

当内置地形大于海平面时,gtc生成1。

然后setctomiss设置所有"零"指向失踪。

您现在可以使用它来屏蔽您的数据文件:

cdo mul datafile.nc seamask.nc masked_datafile.nc

你实际上可以将它与管道组合成一条线,但它很长而且有点不透明。

答案 1 :(得分:0)

由于您已经屏蔽了非大陆价值,因此该过程实际上相当简单。有一个名为" sdfwrite"可以在grads中定义写入和变量到文件。代码将是这样的:

define data = <insert expression for masked out data here>
set sdfwrite out.nc
sdfwrite data

*确保取下尖括号;那些只是为了表演

将这些输入到毕业中将1)分配内存以将显示的数据保存在变量&#34; data&#34; 2)将输出文件的名称设置为&#34; out.nc&#34; (你当然可以把它改成你喜欢的任何东西),3)将信息写入变量&#34; data&#34;到out.nc文件。

据我所知,没有办法简单地没有将被屏蔽的值写入文件,但是这样,它们都将被写为零/未定义的值。

sdfwrite documentation

希望这有助于!!