2024年6月9日发(作者:)

我们为了绘制等值线图需要网格化一个XYZ数据文件,虽然数据的Z值中并

没有负值,例如某个地区的一次降水雨量值,不可能有负值,没下雨也就是雨量

为0。但是当我们做插值算法、生成网格文件后,在某些区域肯定会出现负值,

对于一个插值算法而言,这非常正常。但是到我们实际画出来的等值线以表示雨

量的分布时,这显得非常不可思议:“雨量怎可出现负值?”

下面的图,显示了江苏省2012年8月份双台风影响的雨量分布等值线,其

中就有雨量为负值的区域。如果强行修改最小等值线为0,则在负值区域将不会

着色,呈现一片空白。

现在我们就来解决这个问题。

点击“网格|数学”菜单命令,显示网格数学对话框。

1、首先添加网格,你要选中要处理的网格.grd文件,它里面包含了负值。

我们期望消除这些负值。

2、然后修改参数,由于我们要处理的是Z值,雨量值,它位于C列,因此,

在变量(Varible)一栏,将默认的A改成C。

3、数学表达式C=max(C,0)的含义是C值和0相比较,较大者存入C,这样

一来,所有的负值将改为0。这就达到了我们的目的。

4、选择好输出的文件名,点击“确认”,保存的新的.grd网格文件就是我

们所需要的。

好了,在场景窗口中,点击“图形|新建|等值线图”,调入你刚才保存的.grd

文件。看看第四张图,由于我们只是将已经生成的.grd网格文件做一些数学处

理,所以还是要手工将最小等值线改成0,但是不会再出现空白区域了。鼠标指

向“数据范围”,也显示没有负值,最小值为0。

补充和更正:上面提到的变量C,我认真研究了一下,看来我有错误。那个

C,只是变量名称,和数据的C列,没有关系。就是保留默认的A,表达式里不

要写“C=”,只写“max(A,0)”,也是可以的。但是,上面变量框里的变量名,

和表达式里的变量名,却是要保持一致。