物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1256|回复: 1

[Surfer] surfer教程

[复制链接]
发表于 2013-3-6 22:10:29 | 显示全部楼层 |阅读模式
Golden Software Surfer(以下简称Surfer)是一款画三维图(等高线,image map, 3d su

rface)的软件,该软件简单易学,

可以在几分钟内学会主要内容. Surfer软件不难,自带的英文帮助(help菜单)把如何使

用解释的很详细。

Surfer是具有插值功能的绘图软件,因此,即使你的数据是不等间距的,依然可以用它作

图。

但依据本人的经验,最好不使用Surfer自带的插值功能,尤其是要精确确定等高线时(

方法请见下面的介绍)。

Note:surfer8.0不支持中文.

Surfer的最主要的功能是绘制等高线图,简介如下:

假设你由三列数据分别为X,Y,Z,其中Z为点(x,y)处的值。存为文件test.dat(数据

见后)

第一列是X坐标,第二列是Y坐标,第三列是(x,y)上的值Z.则画等高线的步骤如下:

Note:并不是直接打开test.dat数据就可以画等高线,首先要将数据文件转换成Surfer

认识的grd文件格式,才能

画出等高线。

步骤一:把数据文件转换成grd文件

1.打开Surfer软件,打开菜单“Grid | Data..." ,在open对话框中选择文件test.dat

2. 这会打开”Grid Data“对话框。在“Data Columns”中选择要进行GRID的列数据(

这里我们不用选择,因只有3列数据

且它们的排列顺利已经是XYZ了,如果是多列数据,则可以在下拉菜单中选择所需要的列

数据)。

在“Griding Method"中选择一种插值方法(如果你需要比原始数据的网格X和Y更密的Z

数据),则在Grid的过程中,Surfer

会自动进行插值计算,生成更密网格的数据。如果你只是想绘原始数据的图,不想插值

,则最好选择

距离平方反比法(inverse distance to a power)方法(因为此法在插值点与取样点重

合时,插值点值就是取样点值,

而其它方法不能保证如此)。 在"output GridFile“中输入输出文件名test.grd,然后

在“Grid Line Geometry”中设置网格点数。

这里需要注意的是,当X和Y的数值相差很大时,这里显示的最大最小值可能有错误(即

与原始数据不同),这是Surfer

软件本身的问题,遇到这种情况,必须手动改正这种错误,即输入正确的最大最小值(

详细步骤见后)。由于我们的数据

没有此类问题,因此不必手动改正最大最小值。但必须手动改正X和Y的间距“spacing”

或数据个数“#f”,这二者是相关的,改动一个,另一个

自动改正。如果你的原始数据是等间距的,这里的X和Y的间距“spacing"或”#f“ 最

好与原数据一致,这样可以减少插值

带来的误差。我们的数据是不均匀的,所以必须插值,这里可以不进行任何改动。好了

,点“ok”,画图所需要的grd文件

就生成了。

步骤二:画等高线

打开菜单“Map|Countour Map|New Countour Map",在“Open Grid”对话框中选择刚才

输出的grd文件,如test.grd,点“ok”

则一副等高线图就画完了。

步骤三:等高线图的设置

在所画的等高线图中双击鼠标,就会出现设置等高线图的各种属性,以后再详细介绍,

只要你用点时间,完全可以

自己搞懂,不要怕改动,到处点点鼠标,改改属性值,再看原图有什么变化,轻松搞定



在图的边缘双击鼠标则可以改动坐标轴的属性。

(未完待续)

test.dat 数据文件

"x","y","z"

0.1,0,90

3.5,0,45

4.9,0,65

6.2,0,40

7,0,55

9,0,25

9,5,55

9,3,48

9,7,45

6.5,7,75

4.5,7,50

2.9,7,75

1.3,7,52

0,7,70

0,4.1,90

0,2.1,105

1.7,5.6,75

2.2,4.5,66

2.5,3.6,60

2.9,2.4,55

3.2,1.1,50

1.6,6.6,60

4.7,1,66

4.6,1.6,70

4.5,2.5,80

4.6,3.6,95

4.5,4.2,80

4.3,5.1,70

4.4,6,60

5.3,5.3,78

6,5.7,88

6.9,5.6,102

7.1,5,104

7,3.5,90

6.9,2.7,80

6.9,1.9,70

7,0.6,60

6,1,51

6,2,54

5.9,3,60

6,4,64

6.3,4.8,71

3,6,75

4,4.5,75

5,4.5,73

0.6,5,80

1.8,2,70

end of test.dat (此行不在数据文件中)

续一:

等高线图的着色(fill)和设置

双击等高线图,就会出现“map:countour properities”对话框,我来介绍此对话框中

的设置。

“General”选项卡中:

“input grid file” 为打开的等高线图的grid文件,你可以修改此处,打开不同的文

件(几乎没人这样做),

点一下打开文件图标旁的“i”图标,则可以看到当前grid文件的基本统计信息,如最大

最小值等。

“filled countours” 选中fill countour(在前面的方框中点一下鼠标),就可以画

着色的等高线图了,如果再选中

下面的“color scale”的话,则可以在等高线图旁边给出色彩棒。

“smothing” 选中的话可以对等高线进行平滑,在amount中有低中高三种选择。这一项

一般可以不选,除非你

画出的等高线图中的等高线非常的不平滑,这项只起到美化图形的结果,没有更大的意

义。

“blanked regions” 这项可以对空白区域进行着色,只有在你的等高线中有空白区域

时才有意义,一般不用。

“fault line” 项,可以设置等高线的粗细颜色等。

“Levels” 选项卡中:

“level”,点击“level”可以设置等高线的最大最小值和等高线间的等高距,这可以

对所有的等高线发生作用,

通过调节此项可以使等高线分布均匀,易于看清楚,作图更美观。如不想人为改动,可

用缺省值。双击level

下面的数字,可以单独更改等高线的值,但要注意等高线从小到大的规律,不能瞎改。

“line”, 点击“line”可以设置等高线的线型。

“properities”中选中“uniform”,则线型是统一的,选中“gradation”,则线的颜

色是渐变的。

选择好“properities”后,就可以更改下面的线型(style)和颜色(color)已经线的

粗细(line)。

当选“gradation”时,线的颜色是渐变的,点一下color旁边的颜色区,就会出现“co

lor spectrum”

选项,点一下“盾形”图标(在颜色条的左右两端上方),就可以分别点选下面的颜色

了,当然,

也可以自己加入“盾形”图标,加自己的颜色。或是用“load”调用调色板文件(*.cl

r),在surfer8

目录下就有。

“affected levels”可以有选择的对等高线的线型颜色进行设置,这里不再详细介绍,

只要自己动手改

改那里边的三个数字,你很快就会弄明白。

此外,还可以通过双击line下面的线来改变某一根等高线的具体属性。

“fill”,此选项只有在着色等高线图中才有效,对单独的等高线图无作用。点击“fi

ll”设置着色。

          着色与“line”选项中的内容类似,不再详细介绍。同样,可以通过双击“

fill”下面的具体颜色条来

          对特定的等高线区域进行着色。

“labels”选项用来设置等高线标注数字,比较简单。双击下面的“yes”或“no”可以

改变是否显示标注。

“hach” 选项用来画等高线的上下方向(即上山或下山方向),一般不用。

“add” 是在右边的按钮。当选中某一level后,点“add”按钮可以在两个level之间插

入一新的level。

“view”选项卡用来调整等高线图的整体方向,除了在3d surface情况下,一般不用。

“scale”选项卡用来设置xyz轴的比例,可以调整其长度选项。一般情况不需调整,除

非xy相差很大,为了方便看图

可以调整其到合适的长度。

“limits”选项可以用来裁剪等高线图(通过设置xy的最小最大值),从而得到感兴趣

地方大小的图形。

“background”可用来设置背景填色,一般不用。

横纵(xy)坐标轴的设置:

双击横轴和纵轴所在的位置,就可以打开坐标轴属性对话框 “map bottom(or left o

r top or right) axis properties”

下面以bottom轴为例,其它类似:

“gernal” 选项卡:

“Title”, 在空白处可以输入轴的说明或图的说明文字,用“offset along” 和“o

ffset from”可以设置

说明文字的位置,“font”可以选择字体,“angle”可以选择文字的旋转角度。

“labels”,设置轴的刻度值。

“axis plane”设置轴平面,一般不改动。

“axis”设置轴线属性。

“ticks” 设置轴线上刻度的长度,方向,主刻度和辅助刻度。

“scaling” 设置刻度值(label)的起始值(first major),间隔(major)和最后值(

last major)。其它值一般不修改。

“grid lines”用来设置等高线图的坐标网格,用鼠标点击“show”即可。

此外,以上等高线的所有属性都可以通过双击左边的“object manager”(或在“view

”菜单中)属性窗口来设置,

与直接在图中设置无异。

(未完待续)

续二:

在等高线图上加上背景地图(base map)(世界地图或局部地图)

我们经常需要把世界地图放在等高线图下面作为参考,世界地图在surfer8中的格式是*.

bln, *.gsb,*.jpg,*.gif等多种形式,

比较常用的是*.bln文件,这些地图在surfer8的官方网站http://www.goldensoftware.c

om/都有,可以自由下载.我给大家

提供一个世界地图的bln文件,见附件world0360.bln.

在surfer8中打开 map|base map... 然后打开world0360.bln文件,就可以画出世界地图

了.用view|fit to window可以很好

的显示. 然后我们可以把相应的等高线图用以前讲的方法画出(注意base map的网格坐标

必须与等高线图的网格坐标

一致,至少base map的网格坐标要包含等高线图的网格坐标). 再按F2键(选中所有对象,

或ctrl+A), 点击map|overlap maps

就可以将两幅图合成一副图. 打开 view|object manager, 选中"base",点右键, 选ord

er overlay|move to front就可以将

背景图移到前面一层.这样一份好的等高线图就画好了.(见图)

续三:

大家看了我给的续二中的图有可能会奇怪,为什么你的等高线只在海洋上有,陆地上怎么

没有呢?

这就是此节要讲的内容.

首先讲一下bln文件的格式,bln文件具有以下格式:

length,flag

x1,y1

x2,y2

...

xn,yn

length,flag

x1,y1

x2,y2

...

xn,yn

其中,length是背景地图曲线中点坐标的个数,如果xn=x1,yn=y1,那么所有的点将围成一

个圈.如果不是这样,

则是一条不闭合的曲线. flag的值为1或0,当flag=1时,闭合曲线里面的等高线可以用此

bln文件blank掉(即

将闭合曲线中的等高线消除),如果flag=0,则是曲线外面的等高线被blank. 我所提供的

bln文件为flag=1

的格式,当然可以将其改成0.简单介绍了bln文件的格式,再来介绍怎样blank等高线.

假设我们已经有了一个全球的等高线图,其原始数据文件为1.grd. 打开grid|blank...

选择文件1.grd,"ok",然后

在新的对话框中选择world0360.bln, "ok",再在新的对话框中输入要输出的grd文件的名

字,点ok就可以得到

一个blank过的grd文件(假设为out.grd),则用out.grd再做等高线图,即可出现我所给续

二中的效果.

(未完待续)

续四:

应用surfer8给出数据文件的统计性质.

在应用数据作图前,有时候需要知道每列数据的统计性质,如最大值,最小值,标准差等.应

用surfer8的

worksheet可以很方便的解决此问题.

打开file|new 选中worksheet,则出现一个类似excel的表格,在此环境下,可以用file|o

pen来

打开需要查看的数据文件,譬如test.dat. 如果我们想知道B列的统计性质,则点击B,再打



菜单data|statics...,选"ok",就会出现统计结果. 同时,我们还可以对各列进行数学运

算,譬如

我想生成新的一列D,它是B列的平方加上C列的和,则先点击D列(空白列),再打开data|tr

ansform...

在transform equation下输入" D=B*B+C" 点击"ok",则会生成D列数据,只要将文件

另存为新文档就可以了.当然,你还可以用surfer8的worksheet做很多类似的计算.

应该说,surfer8的这一功能是很实用的,当然,还可以用data|sort...对数据进行排序.

续五:

post map和classed post map

有时候,我们需要在base map中添加台站的坐标,并用三角,五星等符合将其标出,且在旁



写上台站的名字,这可以用post map和classed post map完成.

首先介绍post map,它的数据文件一般格式是:

x1, y1, label1

x2, y2, label2

...

xn, yn, labeln

其中,xn,yn为坐标值,label为数字或文字.我们还是以test.dat为例子

打开map|post map|new post map..., 选择文件test.dat, 选"ok"

则会出现一副post map的图,双击图的中央,就会打开其属性.

在gernal选项中可以设置坐标列,以及symbol(可更改为其它的形状,缺省

为十字).

在labels选项中,可以通过"worksheet column for label"设置label,此处我们

选择c列,则c列的值会出现在每个坐标点的上方.(如图所示) 至于其它的设置

跟等高线类似,不再详述.

至于classed post map与post map类似,只是对不同的点,根据某些规则分类

而已. 譬如还是test.dat文件,我们把c列看成是每个点的高程,则可以根据高程

对各点分类.如高程在25-54的用十字表示,88-105的用三角表示等.

打开map|post map|new classed post map..., 选择文件test.dat, 选"ok"

则出现一副classed post map,双击图可以编辑属性,这里会多一个"classes"

选项卡,这里的选项最大最小值,symbol等都可以改,不再详述.需要注意的是

classed post map至少要有三列数据,其中第三列就是分类的标准.

(未完待续)

续六:

vector map 向量图(或风向图)

在此论坛很多人是搞大气和海洋的,因此,经常要画风向量图或海流的向量图,

surfer8可以轻松的完成,且图形可以调整,因此可以生成很漂亮的图形.

vector map分1-grid vector map 和 2-grid vector map两种.

首先介绍1-grid vector map

1-grid vector map可以给出坐标点的方向和振幅大小,但它一般表示的是等高线的

下山方向和大小,是等高线图的一种特殊表现方式,如应用test.dat就可以做出.

打开 map|vector map|new 1-grid vector map,选中test.dat,则会出现一副箭头图.

通过双击图的中央可以编辑它的属性,此图一般很少应用,因此其属性设置不再

详述,感兴趣的朋友可以自己试一下.

下面主要讲2-grid vector map

2-grid vector map用到两个不同的grd文件,一般讲,这两个文件应该有相同的坐标

网格. 2-grid vector map的grd文件可以有两种表示方法,一种是直角坐标形式,一种

是极坐标形式. 对直角坐标形式,其中一个grd文件里是x方向的值,另一个方向是

y方向的值. 对极坐标形式,一个grd文件是vector的方向,另一个grd文件是vector

的振幅值. 下面举个具体的例子来说明如何作图.

假设我们已经有了风分量u和v的两个直角坐标的grd文件(包括x y windu三个分量),

名字分别为amipii.u.Jan.sp.dat和amipii.v.Jan.sp.dat两个grd文件

(需要注意的是,这两个文件已经是ascii 码的grd文件,看不到相应的三个分量,但

不需要再进行grid过程,可以直接应用,至于如何生成这种形式的grd文件

,我将在以后具体解释). 打开map|vector map|new 2-grid vector map,将打开"open

x component (angle) grid"对话框, 此时选中amipii.u.Jan.sp.dat(注意,需要在文件

类型中选择all files(*.*)才可以选择*.dat文件), 随后会打开

"open y component (length) grid"对话框, 此时选中amipii.v.Jan.sp.dat,选择"ok"

,就会

出现一副风的箭头图,再加上base map就成了一副很漂亮的图(如图所示). 通过双击

就可以打开此图的属性(map vectors properties).

注意:在"data"选项卡中,coordinate system要选cartesian(x,y)(如果你用极坐标,就选

polar (angle, length)). 在"symbol"选项卡中可以修改箭头的形状,线的属性,其中fr

equency

是设置x和y方向需要箭头的频率,此处我们改为3,3,即在x和y方向都是没3点画一个箭头

,

也即省略了两点.其中的color scaling可以会色彩箭头,大家可以看一下效果(此处我没



改动). 在"scaling"选项卡中,可以设置箭头起始点的位置(symbol项),以及箭头长度的

比例形式

(线性,log,平方根等,在scaling项中改).在右边还有两个选项,一个是反转箭头方向,一

个是给出

箭头的图标(legend),选中后者. 在下面可以设置箭头的各个属性(mangitude,shaft le

ngth,

head length和symbol width,分别表示风的振幅大小(可改,这里选用缺省值),箭头杆的

长度,

箭头头的长度和箭头的宽度,这里其最小最大值分别为(后三项)0.04in,0.2in,0.04in,0

.04in

,0.01in,0.01in). 在"scale"选项卡中,选择x scale下的length为6in,y scale下的len

gth为3in.

其它属性不做改动,即可生成我所给的图形. 当然,你也可以给出风uv项的角度和振幅,用

极坐标来画图,这其中要注意极坐标的参考点可以是东(角度逆时针)或北(角度顺时针),



注意选择(在属性的"data"选项卡中修改,且其角度可以用度或弧度作单位,请小心区分)

.

(未完待续)

续七:

ascii 码的grd文件及插值问题.

在续六中,我给的grd文件是ascii码的直接grd文件格式,无需进行grid过程,这样做简单

,准确,

可以在工作和学习过程中提供很多方便.下面做一详细介绍.

ascii码的直接grd文件格式包括5个文件头信息(关于网格的限制),然后是z的值,值得注



的是,这种文件格式必须用空格来区分两个数据. 其一般格式为:

DSAA             (注意,必须大写且从第一行第一列开始,即DSAA前面不能有空格)

nx ny             (x 方向网格点的个数nx,  y方向网格点的个数ny)

xlo  xhi           (x 方向网格点的最小值和最大值)

ylo  yhi          (y 方向网格点的最小值和最大值)

zlo  zhi           (z  方向网格点的最小值和最大值)

grid row 1      (z 的值在点(x1,y1), (x2,y1),....(xn,y1))

grid row 2      (z 的值在点(x1,y2), (x2,y2),....(xn,y2))

grid row ........

grid row n      (z 的值在点(x1,yn), (x2,yn),....(xn,yn))
回复

使用道具 举报

发表于 2013-3-29 23:51:03 | 显示全部楼层
很给力!赞一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-4-28 03:11 , Processed in 0.070948 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表