本帖最后由 chengxf 于 2013-4-26 16:24 编辑
Surfer作图如何消除等值线中的负值
我们为了绘制等值线图需要网格化一个XYZ数据文件,虽然数据的Z值中并没有负值,例如某个地区的一次降水雨量值,不可能有负值,没下雨也就是雨量为0。但是当我们做插值算法、生成网格文件后,在某些区域肯定会出现负值,对于一个插值算法而言,这非常正常。但是到我们实际画出来的等值线以表示雨量的分布时,这显得非常不可思议:“雨量怎可出现负值?” 下面的图,显示了江苏省2012年8月份双台风影响的雨量分布等值线,其中就有雨量为负值的区域。如果强行修改最小等值线为0,则在负值区域将不会着色,呈现一片空白。
现在我们就来解决这个问题。 点击“网格|数学”菜单命令,显示网格数学对话框。(下图) 1、首先添加网格,你要选中要处理的网格.grd文件,它里面包含了负值。我们期望消除这些负值。 2、然后修改参数,在变量(Varible)一栏,改变默认的A为C,你也可以起另外一个名称。 3、在数学表达式框中输入:C=max(C,0),它的含义是C值和0相比较,较大者存入C,这样一来,所有的负值将改为0。这就达到了我们的目的。我们要注意的一点是这个变量名称一定要和变量栏里面的变量名称一致。至于数学表达式如何写,请参考我的另一篇译文。 4、选择好输出的文件名,点击“确认”,保存的新的.grd网格文件就是我们所需要的。
好了,在场景窗口中,点击“图形|新建|等值线图”,调入你刚才保存的.grd文件。看看第四张图,由于我们只是将已经生成的.grd网格文件做一些数学处理,所以还是要手工将最小等值线改成0,但是不会再出现空白区域了。鼠标指向“数据范围”,也显示没有负值,最小值为0。
|