61阅读

surfer8.0-surfer8.0绘图教程

发布时间:2018-01-13 所属栏目:绘图板教程

一 : surfer8.0绘图教程

计算机绘制地质图
----常用绘图软件操作

中国石油大学(华东)资源学院油气资源系

一)Surfer 界面环境与菜单简介 二)Surfer 创建基本等值线图 三)Surfer 绘制三维图形 四)Surfer 图形的高级处理

Surfer 窗口界面环境 文件 (F)菜单 编辑 (E)菜单 视图 (V)菜单 窗口(W)菜单 绘制 (D)菜单 帮助(H)菜单 排列 (A)菜单 网格(G) 菜单 地图 (M)菜单

Surfer 窗口界面环境
绘图工具栏 菜单栏

对象 管理器

图形显示区
状态栏

绘图快 捷按钮

文件 菜单 输入 命令
输入图形文件命令:
用该命令导入图形文件:

输入 命令

可输入—26种类 型的文件格式

输出

输 出 ( Export ) 命 令 使 Surfer 文件以其它 程序能够调用的格式 输出。

输出—21种类型的文 件格式
可以输出图形窗口中的全部内 容,也可以仅选择部分图形 或几个对象输出。方法如下: ? 从文件( File )菜单中选择 输出( Export )命令后,弹 出输出对话框。 ? 指定要导出的文件名称 ( File Name )、路径和驱 动器名称。 ? 指 定 导 出 文 件 的 格 式 (Type)。点击 OK 即可按 指定的格式输出 Surfer 文件。

编辑 (E)菜单

可增加等值线

可删除选定的等 值线

平行投影 透视投影 滑块移动 可调节图 形倾斜和 旋转方向

设置绘图的比例

设置线条样式 设置填充图案

设置背景颜色 设置线条颜色 和宽度

视图 (V)菜单

绘制 (D)菜单

与快捷工具栏的功能一样

排列 (A)菜单

网格(G) 菜单

? 数据(Data) 从含有 x 、 y 、 z 的数据文件 [.dat] 中生成一个网格化文件 [.grd] , 它是绘制 Surfer 图形所必须的。 ? 变量图(Variogram) 用户创建变量图(变差图)。 ? 函数(Function) 根据用户指定的公式产生一个网 格文件。 ? 数学(Math) 对已经存在的网格文件的 Z 值进 行数学变换,或者合并两个相同 网格文件的Z值。 ? 微积分(Calculus) 在网格化文件上进行微积分运算 。

? 网格滤波器(Filter) 把数字图像分析的方法应用到网格 中,包括低通滤波器、对比增强滤波 器、边缘增强滤波器、边缘探测滤波 器和一般高通滤波器等。 ? 样条平滑(Spline Smooth) 用样条圆滑算法对网格文件进行圆滑 处理。 ? 白化(Blank) 用已有的网格文件和空白文件 [.BLN] 生成空白网格文件。 ? 转换(Convert) ? 在 ASCII 码与二进制格式之间转换文 件,将网格文件转换成 x、y、z 数据 文件。 ? 提取(Extract) 提取现存网格文件的一个网格子集 。

? 变换(Transform) 该命令通常包括在网格文件中进行平移、 比例、旋转,或对称(X,Y)等项操作。 ? 镶嵌合并网格文件(Mosaic) 将两个或多个相同坐标系的网格文件合 并为

一个网格文件输出。 ? 体积(Volume) 在两个网格文件确定的表面之间进行体 积和面积计算。 ? 切片(Slice) 由网格化文件和边界文件产生剖面 (线)。 ? 残差(Residuals) 计算网格表面值与原始数据值之间的差 值。 ? 网格节点编辑器(Grid Editor) 可以对网格文件中的网格节点进行修改 的编辑器。

地图(M) 菜单

地图( Map )菜单中包括一系列生成 和修改图形的命令,这些图形包括: ? 等值线图(Contour Map) 根据网格化文件生成一个等值线图。 ? 基面图(Base Map) 打开边界文件、图元文件( metafile) 或位图文件并调入绘图窗口,为生 成等值线图或表面图作准备。 ? 张贴图或分类粘贴图形(Post Map) ? 生成一个显示数据点位置或名称 的图形。 ? 影像图(Image Map) ? 渐变地形图(Shaded Relief Map)。 ? 矢量图(Vector Map) 根据一个或两个网格文件生成矢量图。

? 线框图(Wireframe) ? 表面图(Surface)
由网格化数据文件产生一个表面图。

? 比例尺 (Scale Bar) 产生一个长度比例尺。 ? 数字(Digitize) 显示、采集所选图形的坐标点数据。 ? 轨迹球(Trackball) 在屏幕上改变选择图形的三维视图,包括 水平旋转和倾斜变换。 ? 堆叠图形(Stack Maps) 上下叠置两个或多个选择的图形。 ? 覆盖图形(Overlay Maps ) 将选择的两个或多个图形按相同的坐标系 叠覆为复合图形。 ? 拆解覆盖图形(Break Apart Overlay) 从叠覆的复合图形中分离出所选的图形。

窗口(W)菜单

帮助(H)菜单

二)Surfer 创建基本等值线图
1、数据类型与准备 2、网格化数据 3、创建等值线图

1、数据类型与准备
基本数据文件[.dat]

网格文件[grd]
粘贴文件[.dat]

边界文件[.bna]
空白文件[.bln] 分级文件[.lvl]

基本数据文件[.dat]
基本数据文件是至少包括X、Y、Z三列数据 的文件,其后可增加Z1,Z2,….Zn列。 其中,X、Y是确定位置的坐标值,z是对应 于某坐标点的变量值(如油层厚度、有效 厚度、孔隙度、渗透率、百分含量等)。 基本数据文件在工作表中的格式是:

基本数据文件的扩展名为.dat

网格文件[grd]

是绘制等值线图和表面图所必须的文件。 网格文件是由基本数据文件经网格化(Grid) 命令处理后得到的。 网格文件的扩展名为.Grd

粘贴文件[.dat]
在等值线图的数据点位置进行符号和数值标注所 需要的文件,分为Post 和 Class Post两种。 粘贴文件在工作表中的数据格式如下:
基本张贴 Post 分类张贴 ClassedPost

x y labels 1 labels 2 … 2587 3264 Well 25 0.58 x y ? ? ? ? ? μ 2587 3264 100 labels 1 … 0.58

地图边界文件[.bna]
边界文件是用于存储封闭线、曲线、和点的ASCII 格式的文件

。用于生成规则或不规则的边界线, 其扩展名为.bna。其要求的数据格式是:
主名称 1 X1 X2 ? Xn 主名称 2 X1 X2 ? Xn ? 次名称 1 类型/长度值 Y1 Y2 ? Yn 次名称 2 类型/长度值 Y1 Y2 ? Yn ?

主名称:是边界对象的主ID名称,主要用于与外部链接; 次名称:是边界对象的次要ID名称,为可选项; 类型/长度值:是一个整数,用于表明边界对象的 类型(区、线、点)和坐标点对数。 >2:表明边界是一个封闭区,数值为该区上控制 点坐标对的数量; =2:表明边界是一个椭圆,其后的第一对坐标描 述了椭圆的圆心,第二对数据分别描述椭圆的长 半径和短半径。如果短半径为0,则边界对象为 一个圆。 <-1:表明边界是曲线,数值为该曲线上控制点坐 标对的数量; =1 :表明是一个点,其后仅为1对坐标。 注意:在指定区域的控制点坐标时,终点坐标必须与起 点坐标重合。

边界文件的数据形式及边界控制点的表示

封闭曲线 1

( 4.2, 8.1) ( 6.1, 7.9)

( 2.6, 7.2)

( 7.2, 6.6) ( 2.8, 6.3)

(6.2, 5.8) ( 4.8,5.6)

空白文件[.bln]----断层文件格式
空白文件用于在三维图的一定范围内空白等值 线。它描述了一个封闭区域的范围,指明空白 区的性质。 空白文件是用于存储包括区、线和点在内的地 理信息的ASCII文件。尽管GS空白文件主要用 于描述要空白的区域,但是它也被用于简单边 界和图形的修饰。: 空白文件的扩展名为.bln。数据文件格式为:
长度值 X1 X2 ? Xn 标志值 Y1 Y2 ? Yn 主名称 Z1 Z2 … Zn

长度值:为整数,指明空白区坐标点的对数; 标志值:指明空白区的性质: =1,表示空白区内; =0,表示空白区外。 主名称:主名称是空白对象的ID,主要用作 与外部数据链接,它是可选项,在不复杂 的图形中一般省略该项。

注意:在指定空白区域时,终点坐标必须与 起点坐标重合,否则将作为边界文件处理。

空白文件的数据形式及边界控制点的表示

( 4.2, 8.1) ( 6.1, 7.9)

( 2.6, 7.2)

( 7.2, 6.6) ( 2.8, 6.3)

(6.2, 5.8) ( 4.8,5.6)

分级文件[.lvl]
分级文件用于在Surfer中指定各类图形的分级及 其属性数据。它是用每条记录(一行)描述一条 分级线的ASCII码文件。一个分级文件最大可以记 录 200 个等级,即最多可以设定 200 条分级线(等 值线)。 分级文件的格式有两种,可以用Surfer的工作表 生成,也可以用文本编辑器来建立。但是,最常 用的方法是设定好一幅 Surfer 图形的分级参数后, 在等值线属性 ( Contours Properties )对话框 Level选项卡中,使用Save命令保存分级参数。当 要对应另外的图形使用该参数时 ,在该图形的 Level选项卡中使用 加载 命令调入保存的分级文 件即可。

二)Surfe

r 创建基本等值线图

2 网格化数据

当图形区域内的X、Y数据分布不规则时,Surfer 必须在原始数据中进行内插以产生规则的矩形网 格。网格化过程就是将原始数据用数学方法处理, 经内插形成规则分布的XYZ数据点的过程。要产 生一个等值线图,必须首先从XYZ数据[.DAT]中 产生一个网格化文件。 利用网格(Grid)菜单中的数据(Data)命令生成 网格化文件[.GRD]。 ? 从Grid 菜单中选择 Data 命令,弹出打开数据对 话框。 ? 选择要进行绘图的基本数据,点击OK ? 在弹出的分散数据内插(Scattered Data Interpolation)对话框中进行设置

最小的网格值 最大的网格值

网格化数据对话框

?

数据列
为X、Y和Z指定数据文件中的列。
? ? ?

X下拉列表 指定数据文件中含有X坐标值的数据列。
Y下拉列表 指定数据文件中含有Y坐标值的数据列。 Z下拉列表 指定数据文件中含有Z值的数据列。
? 过滤数据 按钮 用于在网格化之前采用预定义的过滤

器 或基于用户自定义的方程过滤数据。
? 查看数据按钮 用于打开工作表,查看相应的XYZ数据,

从而方便数据列的选择。
? 统计 按钮 显示所选用XYZ数据的统计信息。
? ?

输出网格文件---指定输出网格文件的存放路径和文件名
改变文件名

?

网格化方法( M)组框 指定将要生成的网格文件中网格范围和网 格密度。
X 方向 指定X方向网格起始值及网格密度 ? Y 方向 指定Y方向网格起始值及网格密度 提示:两个方向上的网格线密度可以相同或不同。 ? 最小 最小的网格值 ? 最大 最大的网格值 ? 间距 网格间距 ? 行数 网格线数量 提示:间距 和 行数只指定其中之一,另外一值即可 自动确定。
?

?

网格化方法(M)

指定用于内插网格数值的方法,设置所选择方法的参数。 下拉列表提供了Surfer中可用的 12 种网格化方法。
? ? ? ? ? ? ?

加权反距离方法------距离倒数乘方法 克里格法 最小曲率方法 改进谢别德方法 自然邻近点方法 最近邻近点方法 多项式回归方法 径向基函数方法 带线性插值的三角网法 移动平均方法 数据度量方法 局部多项式方法

?
? ? ? ?

高级设置对话框

?

高级选项

允许为选择的方法指定网格化选项。对话框因 网格化的方法不同而不同。对所有方法都有两 项共同选项,即
? 各向异性

是指数据点之间的优势方向,通过 指定不同方向的不同半径来实现。解释为给于 一个方向轴上的点较大的权重,而减弱另一个 方向轴上的点权重。在许多情况下,不必使用 各向异性。

? 数据处理(Data Treatment)指定如何处

理相同的数据点(2个或多个XY坐标相 同而Z值不同)。
?Averag

e ?Delete ?Sum

使用平均值 删除数据 使用求和值

? 搜索

选项卡

用于控制进行网格化处理内插网格点时所考虑 或使用的数据。设置包括以下三项: 搜寻类型(Search Type)
? 不用搜索

使用所有数据。当数据<250 时适合此

选项
?

将搜寻区分为几个扇区,按各区搜寻

搜寻规则(Search Rules)
? Data

Per Sector 每一部分的搜寻数据点数 ? Minimum Total Data
搜寻的最小数据量,若小于此值,该节点指定 为空白。
? Max

Empty Sector

指定空集的最大值;若大于此值,则在网格 节点指定为空白。

搜寻椭圆(Search Ellipse)
确定在内插网格进行计算时所采用数据的范围 Radius 1 搜寻椭圆半径1 (X方向) Radius 2 搜寻椭圆半径2(Y方向) Angle 椭圆角度
提示:对于线性内插的 Polynomial Regression , Minimum Curvature 或 Triangulation 方法搜寻选项无效; 当计算网格时,网格化方法要求使用数据文件中的所 有数据; 当网格化方法没有被选中时,搜寻按钮是灰色的。

?

输出网格文件(Output Grid File)
指定将要产生的网格文件的路径和文件名称。 点击“打开文件”工具按钮,可以指定将要产生 的网格文件的位置或名称。

交叉确认 按钮: 可以进行网格化方法质量的评价,或进 行几种网格化方法的比较。。 ? 网格报告 复选框: 控制是否显示网格化统计报告。
?

? 重新设置(Reset)

将网格线几何设置和网格化方法重新设
置为默认值。

(二)创建等值线图
1 指定绘图的网格文件
?

?

从绘图(Map)菜单中选择等值线(Contour Map)命令, 在级联菜单中执行New Contour Map命令;或在工具栏中 点击 按钮 在弹出的打开网格文件(Open Grid)对话框中指定或输 入网格文件名称;

?点击“打开”,完

成默认等值线图的 绘制。

2 设置等值线参数 生成等值线图以后,可以3种方式打开等值线属性设 置对话框: ①选中等值线图,在“编辑” 菜单(Edit)中执行“ 属性” 命令(Properties); ②双击等值线图; ③在窗口左侧的对象管理器中双击Contours对应的图 标。 进行上述之一的操作后,可以打开如下所示等值线 图属性对话框。

等值线图设置对话框

显示使用的网格文件(Input Grid File )
? 文本框:列出了当前等值线图所使用的网格文件 的名称及其路径。 ? 按钮:可显示当前网格文件的信息,如网格 大小,最大最小XYZ值等。 ? 按钮:打开显示网格文件对话框,允许用户 打开一个新的网格文件。

充填等值线(Filled Contours)
控制等值线之间颜色的充填。
充填等值线(Fill Contours) 复选框打开,在 等值线之间充填颜色。要使用的充填方式在 Color Levels组框中显示

。 ? 颜色比例尺(Color Scale) 控制图形中是否 显示颜色比例尺。选中复选框时,颜色比例尺 便自动在等值线图之上生成。
?

圆滑(Smoothing)
允许对显示在图上的等值线进行圆滑处理。

提示:圆滑选项有助于使等值线趋于圆滑。圆滑操作也可
以通过Grids菜单中的Spline Smooth命令和Filter命令实现。 已经用这些方法进行圆滑处理的网格不能再进行圆滑处 理。 程度(Amount) 指定进行等值线圆滑的程度。
? ? ?

?

低度(Low) 低度圆滑 中度(Medium) 中度圆滑 高度(High) 高度圆滑

提示:这种圆滑方法可能会导致等值线交叉。当等值线在
空间上接近时,若选择高度圆滑往往容易出现这种问题。

白化区域

允许用户设置空白区域的充填样式 和空白区边界线的属性。 “填充”按钮:打开充填属性设置框,设置空白 区域 的充填样式、前景和背景充填 颜色。 “线条”按钮:打开线属性设置框,设置空白区 域边 界线的线型、颜色和线粗等属性

如果网格文件包含断层线信息,可点击断层线 (Fault line)按钮,设置断层线的线型、颜色 和粗细。

等值线图设置对话框

等值线等级(Contour Levels)
设置等值线的最小值、最大值和等值线的间距。
? ?

Data: 指示用于绘制等值线图数据的最小和最大的值。

Contour 组框:设置起始等值线的值及等间距。
Minimum:输入最小等值线的数值。 Maximum:输入最大等值线的数值。

Interval:指定等间距。。 ? Use Defaults 按钮:用绘图数据的最小和最大值作为等值线的 最小和最大值

“线条” 按钮:设置等值线属性。
? Properties组框:
Uniform单选框:控制等值线使用均一的属性; Gradational单选框:控制等值线使用渐变的属性。渐变属 性仅能用于等值线的颜色和线粗,不能用于线型。

? Style下拉列表:为等值线选择线型。 ? Color下拉列表:为等值线选择颜色。根据上述属性选择
的不同,可为等值线选择均一颜色或渐变颜色。

? Line 编辑框:
指定等值线的线 粗。

Affected Levels 组框:指定等值线属性设置影响 的分级。 ? First 编 辑 框 : 指 定 开 始 使 用 设 定 属 性 的 分 级 (等值线序数); ? Set 编辑框 : 指定连续使用设定线属性的分级数 (等值线条数); ? Skip 编辑框 : 指定不使用设定线属性的分级数 (等值线条数)。 例如, first = 2 , Set = 4 , Skip = 1 ,则第一条等 值线不使用设定的属性,第2到第5条等值线使用 设定的线属性,第 6 条等值线不使用设定的线属 性。如此继续循环,直至按此规律将所有等值线 设置完毕。
?

“填充”按钮:控制等值线之间充填属性的设置。
“填充图案”下

拉列表:打开图案样式板,选择等值线之间的充 填的图案样式,这种充填对所有等值线有效。

“前景色” 按钮:打开调色板,选择等值线之间充填样式的前景 颜色。 “背景色” 按钮:打开调色板,选择充填样式背景颜色。

“背景模式” 下拉列表: 可以把矢量样式充填设置为透明或不透明,位图 样式充填,背景总是设置为不透明 “受影响等级” 组框: 控制按一定的规律充填等值线,其方法同于 “ 线 条”按钮中的“受影响等级”设置。

“标注”:设置等值线标注属性(频率和位置)。
Curve Tolerance编辑框:指定在等值线上标注时所允许的等 值线最大曲率,在超过该曲率容度的位置,将不标注等 值线。 “标注到标注距离” 编辑框:指定沿等值线两个标注之间的 最小距离 “ 标注到边界距离” 编辑框:指定标注到图形边缘的最小 距离,以避免标注到图框上或图形之外

“受影响等级” 组框:控制按一定的规律对等值线进行标注, 其方法同于“线条”按钮中“受影响等级”的设置 。 “标注方向向上” 复选框:控制标注显示的样式。选中该 框,系统总是向等值线的高处正向标注;如果不选该框, 标注总是正向标注 。 “字体”按钮:显示文本属性对话框,可以进行标注的字体、 字号及颜色的选择 “格式”按钮:显示标注格式对话框,对标注的数字格式进 行设置。

“影线”设置 ? “长度”:设置影线长度 ? “ 方向”:设置影线方向,包括: “ 向上”和 “ 向 下”

7.00

6.00

5.00

4.00

3.00

2.00

1.00

0.00 0.00

1.00

2.00

3.00

4.00

5.00

6.00

7.00

8.00

9.00

?

添加( Add ) 在选定的等值线及相邻的低
数值等值线之间插入一条线。

?

删除(Delete )按钮从列表中删除选定的
等值线。

?

“载入”弹出打开文档对话框,指定并调入等值
线间距文件[.lvl]。系统将依据存储在间距文件中 的参数确定等值线和充填背景。

?

保存〔Save〕在分级文件中保存当前等值 线所有的属性参数。这个文件日后可以用 于任何其它等值线图中,或用于表面图中。

“查看” 选项卡
View 选项卡控制图形的任意视图方向。可以使图 形的 Z 轴倾斜,使图形在水平方向旋转,可用改变 图形的投影方法。 Tilt滑滚动条:Tilt 涉及显示图形的Z轴定向。Tilt 为0度表示图形的Z轴在页面或屏幕上平放,对等值 线图而言,此时仅仅显示为一条线。随Tilt角度的 增大,Z轴逐渐朝向读者。

Field of View 滚动条:控制透视投影对视图的影 响程度。随着视域值的减小,透视投影使图形变形 的影响逐渐降低。它对正射投影生成的图形不产生 影响。

查看域:控制 透视投影的

效果

旋转:图形的 水平旋转方 向

投影:视图投影方法 透视:透视投影 正交:正交投影

倾斜: Z轴的倾斜度

“比例” 选项卡:确定图形比例
图形比例是指在图形窗口中如何确定图形实际单 位与页面单位的相对关系。图形窗口中默认的X轴 和Y轴长度都设置为6英寸。如果一幅图沿X轴长 600单位,沿Y轴长300单位,那么在图形窗口中X 轴标定为6英寸,或每英寸为100单位。Y轴也标定 为每英寸100单位,它长3英寸。 当绘制表面图时,同样的规则适用于 XY 轴,但 是对于Z轴而言,不管它的图形单位数是多少,都 将Z轴标定为1.5英寸长。 “比例”选项卡如下:

?
?

X比例

指定沿X轴的比例。
1英寸=图形单位(1.0 in = Map Units)或 ? 1厘米=图形单位(1.0 cm=Map Units) 指定图上每厘米(英寸)相当于实际的长度。 1 cm = 实际长度(图形单位) ?比例 尺 例如,当确定要按1:10000的比例绘图,图形单位是 m ,那么 在编辑框中应键入100。 ? 长度( Length )指定图上某一方向的长度。当改变长度时, 实际长度编辑框的值自动更新。 ? Y比例(Y Scale)、Z比例(Z Scale) 可用图样的方法指定Y轴和Z轴的比例。

? XY相同比例 ? 使XY轴等比例改变。 当复选框选中后,在 X 和 Y 轴上使用相同的比例。 对X或Y所作的任何改变,则Y或X也作相应等量的 改变。 如果要对 X、Y 轴使用不同的比例,必须关闭该复 选框。

三) Surfer 建立三维图形
1.网格化数据(与等值线网格化数据相同) 2.生成三维图形 A.利用“地图”菜单中“线框图”生成三维线框图 或鼠标单击快捷成图工具栏中的 图标 B.利用“地图”菜单中“表面图”生成三维表面图 或鼠标单击快捷成图工具栏中的 图标

1.绘制三维线框图
首先网格 化数据

在打开数据文件对话 框中选择需要作图的 数据文件

进行设置( 与绘制等值 线图网格化 数据相同)

使用“地图”菜单中的“线框图”命令 或或鼠标单击快捷成图工具栏中的 图标

在弹出的“打开网格”对话框中选择需要成图的网格文件后 单击“打开”按钮,即可生成三维线框图

2.绘制三维表面图
首先网格 化数据

在打开数据文件对话 框中选择需要作图的 数据文件

进行设置( 与绘制等值 线图网格化 数据相同)

使用“地图”菜单中的“表面图”命令 或或鼠标单击快捷成图工具栏中的 图标

在弹出的“打开网格”对话框中选择需要成图的网格文件后 单击“打开”按钮,即可生成三维表面图

四) Surfer 图形的高级处理
一、空白图形 二、增加图形边界 三、粘贴标注 四、图形比例尺 五、覆盖 组合图形及其编辑 六、计算残差

一、空白图形
1 生成基

本网格文件 由原始XYZ数据文件[.dat]生成一个网格文件[.grd] 2. 准备空白文件 确定空白区域范围及控制值,按空白文件格式生成空白 文件[.bln] 3 生成空白网格文件 从网格(Grid) 菜单中选择空白(Blank)命令,出现 对话框后,分别指定上述网格文件名称和空白文件名称, 指定要输出的空白网格文件名称。 4 空白等值线图 从绘图(Map)菜单中选择contour 命令,指定空白网格 文件名称。进行等值线图的各种设置后,完成在等值线 图上空白区域。

打 开 空 白 文 件 对 话 框

打 开 基 本 网 格 文 件 对 话 框

二、增加图形边界
可以在等值线图上增加封闭或不封闭的图形边界、 线状图形等。 1 准备边界图形文件[.bna] 2 调入已经做好的等值线图 3 从“地图”菜单中选择“基面图” 命令,在打开文 件对话框中指定边界文件名称, 4 在“编辑”菜单中选择“全选” 命令,或按F2,同时 选中等值线图和边界图形。 5 在“地图”菜单中选择“覆盖地图” 命令,即可将 图形边界精确地绘制到等值线图上。

注意:
1 边界文件的格式一定要正确,包括:
首行格式 边界坐标一定要在图形范围内 坐标点对数一定要与边界控制点数一致

2 选中两个及其以上图形后“覆盖地图” 命 令才能有效; 3 用“覆盖地图” 命令叠覆后的图形,对单 个图形可以编辑,也可以用“拆解覆盖” 命令将其分开。

三、粘贴标注
粘贴图形是指在等值线图或表面图上,在数据 文件指定的XY坐标位置确定一个符号和文本 标注。有两种粘贴的方法:

(一)、简单粘贴(Post) (二)、分类粘贴(Classed Post)

(一)简单粘贴(Post)
用“地图”菜单中的“张贴图”命令将数据点位 置和标注文本表示在图形上。过程如下:
1. 完成等值线图的绘制,准备好粘贴数据文件

提示:用于粘贴的数据文件必须含有与形成等值线图
或表面图的网格文件相同的XY数据点。
2. 将等值线图或表面图调入绘图窗口,即打开一个已经存 在的 Surfer 图形文件。

3. 从“地图”菜单中选择“张贴图”命令 —“ 新建张贴 图”,在“打开数据”对话框中指定粘贴数据文件名。
4. 在左侧对象管理器中双击“Post”进行设置。

粘贴图形对话框及其设置

?

“工作表列”组框 指定要粘贴标注的位置和符号。
?

“X坐标”下拉列表:指定粘贴点的X坐标列

? ?

“Y坐标”下拉列表:指定粘贴点的Y坐标列.。 “符号”:指定符号库中代表符号位置编号的 列。如果该栏为NONE 则为粘贴数据使用默认的 符号。 “角度”:指定含有确定符号角度值的数据列。 角度正值顺时针旋转符号,负值逆时针旋转符号。

?

“缺

省符号”
从默认符号库中选择符号,并设定符号属性和 角度。如果在工作表列组框中没有指定符号和 角度列,可以使用这些参数。 “缺省角度”编辑框:指定符号旋转的角度,其范 围值从-360°到360°,正值将使符号逆时针旋 转,负值使符号逆时针旋转 “ 频率”组框:指定符号的显示频率。当设置为 1 时,所有的数据点都在图形中用设定的符号显 示出来;当设置为 5 时,则从工作表中每 5 行读 取一个位置点数据,并将其显示在图形上。

“符号尺寸”
控制粘贴在图形上符号的大小。可以使所有的粘 贴符号具有相同的大小,或根据工作表数据值 使其具有不同的符号大小。
?

?

“固定尺寸”:使所有粘贴的符号具有相同的大小 时。使用该项设置时,可在编辑框中指定大小数值, 数值用英寸作单位。 “按比例”:用于控制相对于工作表数据值变化的 符号的大小。当选择该项时,“比例”按钮激活, 它指定图形中的符号如何改变。

“标注”选项卡:设置标注属性
该选项卡确定粘贴的数据列,确定标注粘贴的位置。

“标注用工作表列”:指定含有标注的 Worksheet 数据列。使用这一列可以在图形中 每个数据点旁边加上标注。 例如,可以粘贴Z值、井号、剩余值等。

提示:标注必须与 XY坐标在同一行。标注
可以是数值,也可以是文本。

“符号相对位置” 组框
指定标注相对于数据点的位置。下拉列表中列出了 标注相对于数据点的显示位置,包括居中, 左齐, 右齐, 上齐, 下齐和用户定义共六种选择。 如果选择“用户定义”选项,激活 X 、 Y 编辑框, 可由用户输入相对于数据点的X和Y值。
? ? ? ?

下拉列表指定标注的位置。所有粘贴标注的相对位置 一致。如果选择用户定义选项,激活X和Y编辑框。 X 编辑框指定标注在X方向的位移。正值使标注向右移 动,负值使标注向左移动。 Y 编辑框指定标注在Y方向的位移。正值使标注向上移 动,负值使标注向下移动。 角度(Angle)编辑对话框指定绘制标注的角度。

?

“3D标注线条”

三维标注线从表面图的数据点垂直向上划相应的 标注线。只有当粘贴图形与表面图合为一起时 才能使用。
? ? ? ?

“长度”:指定在表面图之上所划标注线的长度,即确 定表面图和标注之间的距离。 “属性”:显示线属性对话框,用于指定三维标注线的 属性。 “字体(F)”:显示文本属性(Text Attributes)对话 框,指定粘贴标注的文本属性。 “格式(O)”:显示标注格式对话框,指定粘贴标注 的数字格式。

(二)分类粘贴数据
分类粘贴命令根据粘贴数据文件指定的范围,使用不同的 符号来

显示标注,即在一定的数据范围指定不同的标注 符号。 在分类粘贴中,所有的数据点都根据工作表中的数值进行 了分级,不同的符号被指定为不同的数据范围。分类粘 贴除了X、Y坐标是基本数据外,还需要控制值列。

1 分类粘贴数据文件的准备 2 打开或调入等值线图(表面图) 3 从“地图”菜单中选择“张贴图—新建分类张贴图” 命令,在“打开数据” 对话框中指定分类粘贴文 件 4在“分类张贴图”中进行设置

5. 把等值线图或表面图与粘贴图形都选中。或按 下 SHIFT 键在图形窗口中选择多个对象;或从 “编辑”中执行“全选” 命令 6. 从“地图”菜单中选择“覆盖图形”命令,两 个图形自动叠覆结合。叠覆后的图形使用相同 的X和Y轴,所有的点粘贴在图形相应的位置上。 点击 “确认”后,粘贴图形即在等值线图或表面 图上绘出。

粘贴图形对话框及其设置

?

“分类数” 组框:
设置粘贴中对象的分类数。当分类数值改 变时,分类列表中的内容自动更新。

? “分组方法” 确定应用数据(控制值)进行分类方法。
? “等于个数”:指定每一类的粘贴点数量近

于相等,但其间隔范围一般不同。 ? “等于间距”:根据指定的分类数,等间隔 均分控制值范围,每一控制范围对应的粘贴 点即属同一类。 ? “用户定义”:允许用户为每一类设置最小 值和最大值。用这种方法定义的范围不必连 续。

? “分类”
?
? ? ? ? ?

列表提供用户定义各分类数值和各分类使用符号的设 置。
>= 最小值:指定控制各级分类的最小值。双击对话框中 的数字,可重新输入新的数值。 < 最大值:指定各级分类数据的最大值。双击对话框中的 数字,可重新输入新的数值。 % :显示当前分类中粘贴点所占的比例。此值不能被编 辑,它是由该类别范围内的数据点与总数据点数量确定的。 # :指示各分类中的点数。此值也不能被编辑,它是由 该指定范围内的点数确定的。 Symbol (符号): 指定各分类粘贴中使用的符号。要改 变分类范围的符号或符号属性,双击该符号,并在符号属 性对话框中作相应的修改。 尺寸: 设置符号的大小。要改变分类范围符号的大小,双 击该数值并在符号属性对话框中输入新的数值。

?

四、图形比例尺
在用 “ 比例”确定了图形的比例后,用 “ 比例尺” 命令可在图形上生成一个直观的线段比例尺, 以反映页面中的图形与实际图形的比例标度。 要在图形上绘制比例尺,选定图形并在“地 图”菜单中选择“比例尺”命令,此时会打开 如下图所示的比例尺设置对话框。

?

“循环次数”文本框
指定比例尺

的分段数。线段比例尺上的每 一段称为一个Cycle。

? “循环间距”

文本框

在比例尺上确定每段代表的数据单位长度。 例如,若指定该数值是5,那么比例尺上每 一段就代表5个图形单位(采集数据时X、Y 所使用的单位)。这些单位与比例轴(比 例追踪)组框中指定轴的单位一致。

?

“标注增量” 文本框
指定比例尺每一段标注数字的增量值。尽 管也可以把“标注增量” 与“循环间距” 设 定的不同,但是在一般情况下将二者的值 设置为相等。如果要绘制一个与图形轴使 用不同单位的比例尺时,这种灵活性很有 帮助。例如,图形中的轴使用英里作单位, 而在比例尺中则可以用公里作单位来表示。
0.00 in. 0.50 in. 1.00 in. 1.50 in. 2.00 in.

与轴同单位标注的比例尺
0.00 cm 2.54 cm 5.08 cm 7.62 cm 10.16 cm

与轴不同单位标注的比例尺

? “比例追踪”组框:指定绘制比

例尺所依据的轴
X轴:选项按钮:基于X轴绘制比例尺。 Y轴:选项按钮:基于Y轴绘制比例尺。 Z轴:选项按钮:基于Z轴绘制比例尺。 该选项仅适用于下列图形:线框图,表 面图,使用线框图或表面图的叠覆图形, 以及含有 3D label Lines 的倾斜的粘贴 图形。

? ? ? ?

字体(F):按钮显示文本属性对话框,可以 指定标注的文本属性。 格式(O):按钮显示标注格式对话框,指定 标注的数字格式。 角度(A):编辑框指定绘制标注的角度。正 的角度值顺时针旋转标注。 线条属性:显示线属性对话框,为比例尺的框 线指定属性。

标注格式设置对话框

五、覆盖组合图形及其编辑
用 “覆盖地图” 命令可以完成多个图形的叠覆 。也可以对叠覆后的图形进行编辑。

(一)两个或多个图形的叠覆 (二)叠覆图形的编辑

(一) 两个或多个图形的叠覆
叠覆图形可以使具有相关数据的几个图形按同一 坐标系统合并在一起。可以叠覆任何等值线图、基本 图形、粘贴图、图像、阴影浮雕图、矢量图、线框图 和表面图,但是其中只能包含一个线框图。
叠覆图形时使用统一的图形轴,图形根据坐标来定位。
?

选中要叠覆的所有图形。当要选择多个对象时,可以:
按住 SHIFT 键并点击要叠覆的图形; 如果图形窗口中的所有图形都要叠覆,则按F2键 ; 使用块选择(Block Select)命令选中要叠覆的图形。

?

从“地图”菜单中选择“覆盖地图”命令,所有的图形根据其 坐标和范围被叠合在一起。

值得注意的是: 线框图与表面图,栅格图与线框图,以 及多个线框图不能叠覆。这里的栅格图包 括阴影浮雕图、图像图、表面图和包含位 图的基本图 。

(二) 叠覆图形的编辑
图形叠覆以后可

以对其中单个的图形进行编辑。 ? 编辑叠覆图形: 从“ 视图”菜单中选择 “ 对象管理器”命令,或点 击对象管理器工具。用鼠标双击某个图形对象, 或用鼠标右键单击图形对象名称,在快捷菜单 中选择“属性”命令,两种方法都可以打开所选 择图形对象的属性对话框。 在属性对话框中对所选择的对象进行有关设置或 修改,点击 “确认”按钮后,叠覆图形就会重新 修改图形。 ? 改变叠覆图形中图形对象的关系

可以在对象管理器中,通过拖动图 形对象来改变图形的相对位置, 从而改变前后关系。
?

从复合图形中分离单个图形
选中复合图形,从 “ 地图”菜单 于执行 “ 拆解覆盖”命令,即 可将在对象管理器中选中的对 象从复合对象中分离出来。

六、计算残差
用“网格”菜单中的“残差( R )”命令可 以确定同一坐标点的 Z 值在 XYZ 数据文件中 与在网格化线框的差值 。用于计算残差的公 式如下: Zres = Zdat- Zgrd 这里, Zres 表示残差值 Zdat 数据文件中的Z值 Zgrd 网格文件中的内插值 如果数据文件中的值大于网格中该点的内插 值,则残差值为正值;否则,残差值为负值。

计算残差的意义:
残差可以用于定量的了解实际数据与网格文件内插 值的差别。 残差命令可确定网格文件中特定XY点的Z值。

计算残差的步骤如下:
1. 准备一个包括要计算残差点的XYZ数据文件。

2. 从“网格”菜单中选择“残差(R)”命令,在 弹出的打开网格文件对话框中指定网格文件的路径 和文件名称。 3. 确定后,在弹出的打开数据文件对话框中指定 XYZ数据文件的路径和名称。
4. 确定后,弹出“网格残差”对话框。其中显示了 数据文件中X、Y、Z的位置,同时也要指定接受残 差数据回写到工作表中的列。

5. 点击“确认”,所指定数据文件中的XY点的残差 将被计算出来。此时,含有残差数据的XYZ数据文 件工作表窗口自动打开。 6. 如果要将残差数据保存在文件中,从工作表 “文件”菜单中选择“另存为”命令,指定残差文 件名,然后点击“确认”。

自动回写到数据文件的残差值


二 : surfer8教程

Golden Surfer8.0初学者教程

一、 简介

Golden Software Surfer 8.0 (以下简称Surfer)是一款画三维图(等高线,image map, 3d surface)的软件,该软件简单易学,可以在几分钟内学会主要内容,且其自带的英文帮助(help菜单)对如何使用surfer解释的很详细,其中的tutorial教程更是清晰的介绍了surfer的简单应用,应该说surfer软件自带的帮助文件是相当完美且容易阅读的,只要学过英语的人都可以很快上手。

Surfer是具有插值功能的绘图软件,因此,即使你的数据是不等间距的,依然可以用它作图。但依据作者的经验,最好不使用Surfer自带的插值功能,尤其是要精确确定等高线时。由于surfer是美国的一个软件,它不提供对中文的支持,这可以算的上一个小的遗憾。

Surfer的主要功能是绘制等高线图(contour map),此外它还可以绘制post map, classed post map, vector map, image map, wireframe map, 3d surface map,等形式的图形。其功能是比较强的,但没有各种投影变化是它的一大缺点。尤其是在等高线领域,这不能不说是它的应用受到限制的地方。

由于surfer软件没有中文说明书,对一些初学者来说可能会存在上手较难的问题,鉴于此种需求,编写了这一初学者参考手册,希望对大家有所帮助。

二、等高线的绘制

Surfer的最主要的功能是绘制等高线图,但并不是我们具有了数据文件就可以直接绘制等高线,surfer要求绘制等高线的数据有特殊的格式要求,即首先要将数据文件转换成Surfer认识的grd文件格式,才能绘制等高线(当然,可以直接生成surfer接受的ascii 码的grd文件格式,这样就可以直接作图,此方法将在后面介绍,首先我们介绍常用的作图方法)。假设你有三列数据分别为X,Y,Z,其中Z为点(x,y)处的值,存在文件test.dat中(数据见附件),其中第一列是X坐标,第二列是Y坐标,第三列是(x,y)上的值Z,则绘制等高线的步骤如下:

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

1. 打开菜单Grid | Data... ,在open对话框中选择数据文件test.dat

2. 这会打开“Grid Data”对话框。在“Data Columns”中选择要进行GRID的网格数据(X和Y坐标)以及格点上的值(Z列),这里我们不用选择,因只有3列数据且它们的排列顺利已经是XYZ了,如果是多列数据,则可以在下拉菜单中选择所需要的列数据。选择好坐标XY和Z值后,在“Griding Method"中选择一种插值方法(如果你需要比原始数据的网格X和Y更密的Z数据,或

是你的网格是非均匀的),则在Grid的过程中,Surfer会自动进行插值计算,生成更密网格的数据。如果你只是想绘制原始数据的图,不想插值,则最好选择距离平方反比法(inverse distance to a power)或Kriging方法。因为这两种方法在插值点与取样点重合时,插值点的值就是样本点的值,而其它方法不能保证如此。在"Output GridFile“中输入输出文件名test.grd,然后在“Grid Line Geometry”中设置网格点数。这里需要注意的是,当X和Y的数值相差很大时,这里显示的最大最小值可能有错误(即与原始数据不同),这是Surfer软件本身的问题,遇到这种情况,必须手动改正这种错误,即输入正确的最大最小值。由于我们的数据没有此类问题,因此不必手动改正最大最小值。但必须手动改正X和Y的间距“spacing” 或数据个数“#f”,这二者是相关的,改动一个,另一个自动改正。如果你的原始数据是等间距的,这里的X和Y的间距“spacing"或”#f“ 最好与原数据一致,这样可以减少插值带来的误差。我们的数据是不均匀的,所以必须插值,这里可以不进行任何改动。好了,点“ok”,画图所需要的grd文件test.grd就生成了。

步骤二:画等高线

打开菜单“Map|Countour Map|New Countour Map",在“Open Grid”对话框中选择刚才输出的grd文件,如test.grd,点“ok”,则一副等高线图就画完了。

步骤三:等高线图的设置

在所画的等高线图中双击鼠标,或点击右键,选中“属性”,就会出现设置等高线的各种属性,在图的边缘双击鼠标则可以改动坐标轴的属性。

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

双击等高线图,就会出现“map:countour properities”对话框,现在介绍此对话框中的设置。

“General”选项卡中:

1、“input grid file”

为打开的等高线图的grid文件名,你可以修改此处,打开不同的文件(几乎没人这样做),点一下打开文件图标旁的“i”图标,则可以看到当前grid文件的基本统计信息,如最大最小值等。

2、“filled countours”

选中fill countour(在前面的方框中点一下鼠标),就可以画着色的等高线图了,如果再选中下面的“color scale”的话,则可以在等高线图旁边给出色彩棒。

3、“smothing”

选中的话可以对等高线进行平滑,在amount中有“低、中、高”三种选择。这一项一般可以不选,除非你画出的等高线图中的等高线非常的不平滑,这项只起到美化图形的结果,没有更大的意义。

4、“blanked regions”

这项可以对空白区域进行着色,只有在你的等高线中有空白区域时才有意义,一般不用。

5、“fault line”

可以设置等高线的粗细颜色等。

“Levels” 选项卡中:

1、“level”

点击“level”可以设置等高线的最大最小值和等高线间的等高距,这可以对所有的等高线发生作用,通过调节此项可以使等高线分布均匀,易于看清楚,作图更美观。如不想人为改动,可用缺省值。双击level下面的数字,可以单独更改等高线的值,但要注意等高线从小到大的规律,不能瞎改。

2、“line”

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

3、“properities”

选中“uniform”,则线型是统一的,选中“gradation”,则线的颜色是渐变的。选择好“properities”后,就可以更改下面的线型(style)和颜色(color)已经线的粗细(line)。当选“gradation”时,线的颜色是渐变的,点一下color旁边的颜色区,就会出现“color spectrum”选项,点一下“盾形”图标(在颜色条的左右两端上方),就可以分别点选下面的颜色了,当然,也可以自己加入“盾形”图标,加自己的颜色。或是用“load”调用调色板文件(*.clr),在surfer8目录下就有。“affected levels”可以有选择的对等高线的线型颜色进行设置,这里不再详细介绍,只要自己动手改改那里边的三个数字,你很快就会弄明白。此外,还可以通过双击line下面的线来改变某一根等高线的具体属性。

4、“fill”

此选项只有在着色等高线图中才有效,对单独的等高线图无作用。点击“fill”设置着色。着色与“line”选项中的内容类似,不再详细介绍。同样,可以通过双击“fill”下面的具体颜色条来对特定的等高线区域进行着色。

5、“labels”

设置等高线标注数字,比较简单。双击下面的“yes”或“no”可以改变是否显示标注。

6、“hach”

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

7、“add”和“delete”

在右边的按钮。当选中某一level后,点“add”按钮可以在两个level之间插入一新的level。Delete按钮则删除选中的level

“view”选项卡中

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

“scale”选项卡中

用来设置xyz轴的比例,可以调整其长度选项。一般情况不需调整,除非X和Y相差很大,为了方便看图可以调整其到合适的长度。

“limits”选项卡中:

可以用来裁剪等高线图(通过设置xy的最小最大值),从而得到感兴趣地方大小的图形。

“background”选项卡中:

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

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

双击横轴和纵轴所在的位置,就可以打开坐标轴属性对话框 “map bottom(or left or top or right)axis properties”下面以bottom轴为例,其它类似:

“gernal” 选项卡:

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

from”可以设置说明文字的位置,“font”可以选择字体,“angle”可以选择文字

的旋转角度。

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

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

“axis”设置轴线属性。

“ticks”选项卡:

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

“scaling”选项卡:

设置刻度值(label)的起始值(first major),间隔(major)和最后值(last major)。其它值一般不修改。

“grid lines”选项卡:

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

此外,以上等高线的所有属性都可以通过双击左边的“object manager”(或在“view”菜单中)属性窗口来设置,与直接在图中设置无异。

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

我们经常需要把世界地图放在等高线图下面作为参考,世界地图在surfer中的格式是*.bln, *.gsb,*.jpg,*.gif等多种形式,比较常用的是*.bln文件,这些地图在surfer的官方网站http://www.61k.com都有,可以自由下载。在附件中提供给大家一个世界地图的bln文件,文件名world0360.bln。

在surfer中打开 map|base map... 然后打开world0360.bln文件,就可以画出世界地图了。用view|fit to window可以很好的显示. 然后我们可以把相应的等高线图用第二部分的方法画出(注意base map的网格坐标必须与等高线图的网格坐标一致,至少base map的网格坐标要包含等高线图的网格坐标)。再按F2键(选中所有对象,或ctrl+A),点击map|overlap maps就可以将两幅图合成一副图。打开view|object manager,选中"base",点右键,选order overlay|move to front就可以将背景图移到前面一层。这样一份好的等高线图就画好了。(见右图)

四、bln文件及blank作图

大家看了第三部分的图有可能会奇怪,为什么你的等高线只在海洋上有,陆地上怎么没有呢?这就是此节要讲的内容。首先讲一下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再做等高线图,即可出现我所给第三部分中图的效果.

五、应用surfer给出数据文件的统计性质

在应用数据作图前,有时候需要知道每列数据的统计性质,如最大值,最小值,标准差等。应用surfer的worksheet可以很方便的解决此问题。打开file|new 选中worksheet,则出现一个类似excel的表格,在此环境下,可以用file|open来打开需要查看的数据文件,譬如test.dat。如果我们想知道B列的统计性质,则点击B,再打开菜单data|statics...,选"ok",就会出现统计结果。同时,我们还可以对各列进行数学运算,譬如我想生成新的一列D,它是B列的平方加上C列的和,则先点击D列(空白列),再打开菜单data|transform...在transform equation下输入“ D=B*B+C”点击"ok",则会生成D列数据,只要将文件另存为新文档就可以了。当然,你还可以用surfer的worksheet做很多类似的计算。应该说,surfer的这一功能是很实用的,当然,还可以用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 向量图(或风向图)

很多人是学习大气和海洋的,因此经常要画风向量图或海流的向量图,surfer可以轻松的完成,且图形可以调整,因此可以生成很漂亮的图形。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"选项卡中可以修改箭头的形状,线的属性,其中frequency是设置x和y方向需要箭头的频率,此处我们改为3,3,即在x和y方向都是每3点画一个箭头,也即省略了两点。其中的color scaling可以会色彩箭头,大家可以看一下效果(此处我没有改动)。 在"scaling"选项卡中,可以设置箭头起始点的位置(symbol项),以及箭头长度的比例形式(线性,log,平方根等,在scaling项中改)。在右边还有两个选项,一个是反转箭头方向,一个是给出箭头的图标(legend),选中后者。在下面可以设置箭头的各个属性(mangitude,shaft length,head length和symbol width,分别表示风的振幅大小(可改,这里选用缺省值),箭头杆的长度,箭头头的长度和箭头的宽度,这里其最小最大值分别为(后三项) 0.04in,0.2in,0.04in,0.04in,0.01in,0.01in)。 在"scale"选项卡中,选择x scale下的length为6in,y scale下的length为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))

注意,此处x1<xn, y1<yn。

下面是一个具体的例子:

DSAA

10 10

0.0 9.0

11.0 20.0

25.00 97.19

91.03 77.21 60.55 46.67 52.73 64.05 41.19 54.99 44.30 25.00

96.04 81.10 62.38 48.74 57.50 63.27 48.67 60.81 51.78 33.63

92.10 85.05 65.09 53.01 64.44 65.64 52.53 66.54 59.29 41.33

94.04 85.63 65.56 55.32 73.18 70.88 55.35 76.27 67.20 45.78

97.19 82.00 64.21 61.97 82.99 80.34 58.55 86.28 75.02 48.75

91.36 78.73 64.05 65.60 82.58 81.37 61.16 89.09 81.36 54.87

86.31 77.58 67.71 68.50 73.37 74.84 65.35 95.55 85.92 55.76

80.88 75.56 74.35 72.47 66.93 75.49 86.39 92.10 84.41 55.00

74.77 66.02 70.29 75.16 60.56 65.56 85.07 89.81 74.53 51.69

70.00 54.19 62.27 74.51 55.95 55.42 71.21 74.63 63.14 44.99

在这个例子中,共有100个z的值,其中x为10个,y为10个,x的最小最大值是0.0和9.0, y的最小最大值是11.0和20.0,z的最小最大值是25.00和97.19,最后是100个z的值,每行10个值,共10行。当然,我们也没有必要这样排列,只有顺序不变,照样可以每行只有一个值,即类似下面的排法:

.... (省略了文件头信息)

91.03

77.21

60.55

...

74.63

63.14

44.99! write golden software surfer 8.0 grid format data by ascii (3d)

! num_x,num_y=number in x and y direction respectively

! x_begin,x_end,y_begin,y_end=the begin and end value in x and y direction respectively

! z(num_x,num_y)=z value at grid x and y point

! iunit,filename=open file unit and name to write the 3d data

subroutine

wr_surfer_grid(num_x,num_y,x_begin,x_end,y_begin,y_end,z,iunit,filename)

implicit none

integer,intent(in):: num_x,num_y,iunit

real,intent(in)::x_begin,x_end,y_begin,y_end,z(num_x,num_y)

character(len=*),intent(in)::filename

integer i,j

close(iunit)

open(iunit,file=filename//'.dat.grd')

write(iunit,'(4a)') 'dsaa'

write(iunit,*) num_x,num_y

write(iunit,*) x_begin,x_end

write(iunit,*) y_begin,y_end

surfer是什么?我一开始还以为马老师打错了字,把buffer打成了surfer。后来到网上一搜才发现是一个绘图软件。软件很小,只有12M,我费了九牛二虎之力下到一个汉化版的,又费了一牛之力找到一个注册机,再投入一虎之力搞到一本中文的入门书。倒腾了一晚上后,终于在MapInfo里看到了等值线与原图叠加的动人一幕。

参考了几篇论文,最好的是《MapInfo及WinSurfer在城镇土地定级估价中的综合应用》(不过,这也是硕士讲师的论文?也太浅了吧——但总比另几篇含含糊糊、飘飘浮浮的文字要好得多)。

摸索中的操作过程如下:

一、输入数据

1.新建Excel表,在A1,B1,C1中分别输入X,Y,Weight,作为字段X坐标,Y坐标和权值

2.输入数据,保存表。数据如下

X Y Weight

1 2 60

3 4 70

5 5 100

6 7 80

5 6 90

6 5 90

8 8 70

9 8 60

4 5 80

4 4 80

二、生成MapInfo图

1.运行MapInfo,打开刚才的xls表

2.在“Excel信息”对话框中,将命名范围选为“其他”

3.在“其他范围”对话框中,将A1改为A2,因为第一行是字段名,不是数据

4.回到“Excel信息”对话框,勾上选择框,这样就将第一行作为字段了

5.确定后会打开表浏览器,表->创建点

6.在“创建点”对话框中,设置好点的符号,然后点击投影

7.因为X和Y是随便输入的,不是经纬度,所以这里将投影设为“Non-Earth(meters)”

8.在“非地球坐标边界”对话框中,根据表的X和Y值,输入合适的范围后确定

9.窗口->新建地图窗口,可以看见图形已经生成了。

三、用surfer绘制等高线

1.启动surfer,网格->数据,打开刚才的xls表

2.在“网格化数据”对话框中,修改数据列、网格化方法、输出文件和网格线素几何学。这里全默认。

3.地图->等值线->新建等值线图,打开刚刚生成的grd网格数据文件,可以看见等值线图已经生成了。

4.双击该图,可以修改属性,如填充颜色等。

四、等值线图与点数据图的叠加

1.在surfer中,文件->参数选择->绘制,把“页面单位”改为厘米,因为MapInfo中点数据的坐标单位是米。

2.把“标尺和网格”标签中的“显示网格”打上勾。确定。

3.移动生成的等值线图,使其左下角坐标为1,2,因为MapInfo中点数据的左下角坐标是1,2。

4.文件->输出->*.mif,打开“MapInfo交换格式输出”对话框

5.选择保存的。确定。

6.在MapInfo中,表->转入,将生成的mif文件转入。

7.打开点数据的表,便可以看见叠加的图了。

!第四步有问题!如果点数据的坐标很大(如左下角为1000000,1000000),那么第3步就没法实现,导致最终MapInfo点和surfer等值线图无法重合,这个问题冲亚百试不得其解,恳请高人点拨!感激不尽!

以上是昨天做的,今天在VB下引用surfer,实现了在picturebox上显示三维图,明天写好发上来write(iunit,*) minval(z),maxval(z)

do j=1,num_y;do i=1,num_x

write(iunit,*) z(i,j)

enddo;enddo

close(iunit)

print *, ''

print *, 'output data to file : ', filename//'.dat.grd'

print *, ''

end subroutine wr_surfer_grid

三 : surfer8教程

Golden Surfer8.0初学者教程

一、 简介

Golden Software Surfer 8.0 (以下简称Surfer)是一款画三维图(等高线,image map, 3d surface)的软件,该软件简单易学,可以在几分钟内学会主要内容,且其自带的英文帮助(help菜单)对如何使用surfer解释的很详细,其中的tutorial教程更是清晰的介绍了surfer的简单应用,应该说surfer软件自带的帮助文件是相当完美且容易阅读的,只要学过英语的人都可以很快上手。[www.61k.com]

Surfer是具有插值功能的绘图软件,因此,即使你的数据是不等间距的,依然可以用它作图。但依据作者的经验,最好不使用Surfer自带的插值功能,尤其是要精确确定等高线时。由于surfer是美国的一个软件,它不提供对中文的支持,这可以算的上一个小的遗憾。

Surfer的主要功能是绘制等高线图(contour map),此外它还可以绘制post map, classed post map, vector map, image map, wireframe map, 3d surface map,等形式的图形。其功能是比较强的,但没有各种投影变化是它的一大缺点。尤其是在等高线领域,这不能不说是它的应用受到限制的地方。

由于surfer软件没有中文说明书,对一些初学者来说可能会存在上手较难的问题,鉴于此种需求,编写了这一初学者参考手册,希望对大家有所帮助。

二、等高线的绘制

Surfer的最主要的功能是绘制等高线图,但并不是我们具有了数据文件就可以直接绘制等高线,surfer要求绘制等高线的数据有特殊的格式要求,即首先要将数据文件转换成Surfer认识的grd文件格式,才能绘制等高线(当然,可以直接生成surfer接受的ascii 码的grd文件格式,这样就可以直接作图,此方法将在后面介绍,首先我们介绍常用的作图方法)。假设你有三列数据分别为X,Y,Z,其中Z为点(x,y)处的值,存在文件test.dat中(数据见附件),其中第一列是X坐标,第二列是Y坐标,第三列是(x,y)上的值Z,则绘制等高线的步骤如下:

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

1. 打开菜单Grid | Data... ,在open对话框中选择数据文件test.dat

2. 这会打开“Grid Data”对话框。在“Data Columns”中选择要进行GRID的网格数据(X和Y坐标)以及格点上的值(Z列),这里我们不用选择,因只有3列数据且它们的排列顺利已经是XYZ了,如果是多列数据,则可以在下拉菜单中选择所需要的列数据。选择好坐标XY和Z值后,在“Griding Method"中选择一种插值方法(如果你需要比原始数据的网格X和Y更密的Z数据,或

surfer教程 surfer8教程

是你的网格是非均匀的),则在Grid的过程中,Surfer会自动进行插值计算,生成更密网格的数据。(www.61k.com)如果你只是想绘制原始数据的图,不想插值,则最好选择距离平方反比法(inverse distance to a power)或Kriging方法。因为这两种方法在插值点与取样点重合时,插值点的值就是样本点的值,而其它方法不能保证如此。在"Output GridFile“中输入输出文件名test.grd,然后在“Grid Line Geometry”中设置网格点数。这里需要注意的是,当X和Y的数值相差很大时,这里显示的最大最小值可能有错误(即与原始数据不同),这是Surfer软件本身的问题,遇到这种情况,必须手动改正这种错误,即输入正确的最大最小值。由于我们的数据没有此类问题,因此不必手动改正最大最小值。但必须手动改正X和Y的间距“spacing” 或数据个数“#f”,这二者是相关的,改动一个,另一个自动改正。如果你的原始数据是等间距的,这里的X和Y的间距“spacing"或”#f“ 最好与原数据一致,这样可以减少插值带来的误差。我们的数据是不均匀的,所以必须插值,这里可以不进行任何改动。好了,点“ok”,画图所需要的grd文件test.grd就生成了。

步骤二:画等高线

打开菜单“Map|Countour Map|New Countour Map",在“Open Grid”对话框中选择刚才输出的grd文件,如test.grd,点“ok”,则一副等高线图就画完了。

步骤三:等高线图的设置

在所画的等高线图中双击鼠标,或点击右键,选中“属性”,就会出现设置等高线的各种属性,在图的边缘双击鼠标则可以改动坐标轴的属性。

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

双击等高线图,就会出现“map:countour properities”对话框,现在介绍此对话框中的设置。

“General”选项卡中:

1、“input grid file”

为打开的等高线图的grid文件名,你可以修改此处,打开不同的文件(几乎没人这样做),点一下打开文件图标旁的“i”图标,则可以看到当前grid文件的基本统计信息,如最大最小值等。

2、“filled countours”

选中fill countour(在前面的方框中点一下鼠标),就可以画着色的等高线图了,如果再选中下面的“color scale”的话,则可以在等高线图旁边给出色彩棒。

3、“smothing”

surfer教程 surfer8教程

选中的话可以对等高线进行平滑,在amount中有“低、中、高”三种选择。[www.61k.com)这一项一般可以不选,除非你画出的等高线图中的等高线非常的不平滑,这项只起到美化图形的结果,没有更大的意义。

4、“blanked regions”

这项可以对空白区域进行着色,只有在你的等高线中有空白区域时才有意义,一般不用。

5、“fault line”

可以设置等高线的粗细颜色等。

“Levels” 选项卡中:

1、“level”

点击“level”可以设置等高线的最大最小值和等高线间的等高距,这可以对所有的等高线发生作用,通过调节此项可以使等高线分布均匀,易于看清楚,作图更美观。如不想人为改动,可用缺省值。双击level下面的数字,可以单独更改等高线的值,但要注意等高线从小到大的规律,不能瞎改。

2、“line”

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

3、“properities”

选中“uniform”,则线型是统一的,选中“gradation”,则线的颜色是渐变的。选择好“properities”后,就可以更改下面的线型(style)和颜色(color)已经线的粗细(line)。当选“gradation”时,线的颜色是渐变的,点一下color旁边的颜色区,就会出现“color spectrum”选项,点一下“盾形”图标(在颜色条的左右两端上方),就可以分别点选下面的颜色了,当然,也可以自己加入“盾形”图标,加自己的颜色。或是用“load”调用调色板文件(*.clr),在surfer8目录下就有。“affected levels”可以有选择的对等高线的线型颜色进行设置,这里不再详细介绍,只要自己动手改改那里边的三个数字,你很快就会弄明白。此外,还可以通过双击line下面的线来改变某一根等高线的具体属性。

4、“fill”

此选项只有在着色等高线图中才有效,对单独的等高线图无作用。点击“fill”设置着色。着色与“line”选项中的内容类似,不再详细介绍。同样,可以通过双击“fill”下面的具体颜色条来对特定的等高线区域进行着色。

surfer教程 surfer8教程

5、“labels”

设置等高线标注数字,比较简单。[www.61k.com]双击下面的“yes”或“no”可以改变是否显示标注。

6、“hach”

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

7、“add”和“delete”

在右边的按钮。当选中某一level后,点“add”按钮可以在两个level之间插入一新的level。Delete按钮则删除选中的level

“view”选项卡中

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

“scale”选项卡中

用来设置xyz轴的比例,可以调整其长度选项。一般情况不需调整,除非X和Y相差很大,为了方便看图可以调整其到合适的长度。

“limits”选项卡中:

可以用来裁剪等高线图(通过设置xy的最小最大值),从而得到感兴趣地方大小的图形。

“background”选项卡中:

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

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

双击横轴和纵轴所在的位置,就可以打开坐标轴属性对话框 “map bottom(or left or top or right)axis properties”下面以bottom轴为例,其它类似:

“gernal” 选项卡:

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

from”可以设置说明文字的位置,“font”可以选择字体,“angle”可以选择文字

surfer教程 surfer8教程

的旋转角度。(www.61k.com]

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

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

“axis”设置轴线属性。

“ticks”选项卡:

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

“scaling”选项卡:

设置刻度值(label)的起始值(first major),间隔(major)和最后值(last major)。其它值一般不修改。

“grid lines”选项卡:

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

此外,以上等高线的所有属性都可以通过双击左边的“object manager”(或在“view”菜单中)属性窗口来设置,与直接在图中设置无异。

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

我们经常需要把世界地图放在等高线图下面作为参考,世界地图在surfer中的格式是*.bln, *.gsb,*.jpg,*.gif等多种形式,比较常用的是*.bln文件,这些地图在surfer的官方网站http://www.goldensoftware.com/都有,可以自由下载。在附件中提供给大家一个世界地图的bln文件,文件名world0360.bln。

在surfer中打开 map|base map... 然后打开world0360.bln文件,就可以画出世界地图了。用view|fit to window可以很好的显示. 然后我们可以把相应的等高线图用第二部分的方法画出(注意base map的网格坐标必须与等高线图的网格坐标一致,至少base map的网格坐标要包含等高线图的网格坐标)。再按F2键(选中所有对象,或ctrl+A),点击map|overlap maps就可以将两幅图合成一副图。打开view|object manager,选中"base",点右键,选order overlay|move to front就可以将背景图移到前面一层。这样一份好的等高线图就画好了。(见右图)

四、bln文件及blank作图

大家看了第三部分的图有可能会奇怪,为什么你的等高线只在海洋上有,陆地上怎么没有呢?这就是此节要讲的内容。首先讲一下bln文件的格式,bln文件具有以下格式:

surfer教程 surfer8教程

length,flag

x1,y1

x2,y2

...

xn,yn

length,flag

x1,y1

x2,y2

...

xn,yn

其中,length是背景地图曲线中点坐标的个数,如果xn=x1,yn=y1,那么所有的点将围成一个圈。[www.61k.com]如果不是这样,则是一条不闭合的曲线。 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再做等高线图,即可出现我所给第三部分中图的效果.

五、应用surfer给出数据文件的统计性质

在应用数据作图前,有时候需要知道每列数据的统计性质,如最大值,最小值,标准差等。应用surfer的worksheet可以很方便的解决此问题。打开file|new 选中worksheet,则出现一个类似excel的表格,在此环境下,可以用file|open来打开需要查看的数据文件,譬如test.dat。如果我们想知道B列的统计性质,则点击B,再打开菜单data|statics...,选"ok",就会出现统计结果。同时,我们还可以对各列进行数学运算,譬如我想生成新的一列D,它是B列的平方加上C列的和,则先点击D列(空白列),再打开菜单data|transform...在transform equation下输入“ D=B*B+C”点击"ok",则会生成D列数据,只要将文件另存为新文档就可以了。当然,你还可以用surfer的worksheet做很多类似的计算。应该说,surfer的这一功能是很实用的,当然,还可以用data|sort...对数据进行排序。

surfer教程 surfer8教程

六、post map和classed post map

有时候,我们需要在base map中添加台站的坐标,并用三角,五星等符合将其标出,且在旁边写上台站的名字,这可以用post map和classed post map完成。(www.61k.com]首先介绍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 向量图(或风向图)

很多人是学习大气和海洋的,因此经常要画风向量图或海流的向量图,surfer可以轻松的完成,且图形可以调整,因此可以生成很漂亮的图形。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文件,

surfer教程 surfer8教程

一般讲这两个文件应该有相同的坐标网格。[www.61k.com] 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"选项卡中可以修改箭头的形状,线的属性,其中frequency是设置x和y方向需要箭头的频率,此处我们改为3,3,即在x和y方向都是每3点画一个箭头,也即省略了两点。其中的color scaling可以会色彩箭头,大家可以看一下效果(此处我没有改动)。 在"scaling"选项卡中,可以设置箭头起始点的位置(symbol项),以及箭头长度的比例形式(线性,log,平方根等,在scaling项中改)。在右边还有两个选项,一个是反转箭头方向,一个是给出箭头的图标(legend),选中后者。在下面可以设置箭头的各个属性(mangitude,shaft length,head length和symbol width,分别表示风的振幅大小(可改,这里选用缺省值),箭头杆的长度,箭头头的长度和箭头的宽度,这里其最小最大值分别为(后三项) 0.04in,0.2in,0.04in,0.04in,0.01in,0.01in)。 在"scale"选项卡中,选择x scale下的length为6in,y scale下的length为3in。其它属性不做改动,即可生成我所给的图形。当然,你也可以给出风uv项的角度和振幅,用极坐标来画图,这其中要注意极坐标的参考点可以是东(角度逆时针)或北(角度顺时针),请注意选择(在属性的"data"选项卡中修改,且其角度可以用度或弧度作单位,请小心区分)。

八、ascii 码的grd文件及插值问题

在第七部分给出的grd文件是ascii码的直接grd文件格式,无需进行grid过程,这样做简单,准确,可以在工作和学习过程中提供很多方便。下面做一详细介绍:

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

surfer教程 surfer8教程

z的值,值得注意的是,这种文件格式必须用空格来区分两个数据。(www.61k.com]其一般格式为:

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))

注意,此处x1<xn, y1<yn。

下面是一个具体的例子:

DSAA

10 10

0.0 9.0

11.0 20.0

25.00 97.19

91.03 77.21 60.55 46.67 52.73 64.05 41.19 54.99 44.30 25.00

96.04 81.10 62.38 48.74 57.50 63.27 48.67 60.81 51.78 33.63

92.10 85.05 65.09 53.01 64.44 65.64 52.53 66.54 59.29 41.33

94.04 85.63 65.56 55.32 73.18 70.88 55.35 76.27 67.20 45.78

97.19 82.00 64.21 61.97 82.99 80.34 58.55 86.28 75.02 48.75

surfer教程 surfer8教程

91.36 78.73 64.05 65.60 82.58 81.37 61.16 89.09 81.36 54.87

86.31 77.58 67.71 68.50 73.37 74.84 65.35 95.55 85.92 55.76

80.88 75.56 74.35 72.47 66.93 75.49 86.39 92.10 84.41 55.00

74.77 66.02 70.29 75.16 60.56 65.56 85.07 89.81 74.53 51.69

70.00 54.19 62.27 74.51 55.95 55.42 71.21 74.63 63.14 44.99

在这个例子中,共有100个z的值,其中x为10个,y为10个,x的最小最大值是0.0和9.0, y的最小最大值是11.0和20.0,z的最小最大值是25.00和97.19,最后是100个z的值,每行10个值,共10行。(www.61k.com]当然,我们也没有必要这样排列,只有顺序不变,照样可以每行只有一个值,即类似下面的排法:

.... (省略了文件头信息)

91.03

77.21

60.55

...

74.63

63.14

44.99! write golden software surfer 8.0 grid format data by ascii (3d)

! num_x,num_y=number in x and y direction respectively

! x_begin,x_end,y_begin,y_end=the begin and end value in x and y direction respectively

! z(num_x,num_y)=z value at grid x and y point

! iunit,filename=open file unit and name to write the 3d data

subroutine

wr_surfer_grid(num_x,num_y,x_begin,x_end,y_begin,y_end,z,iunit,filename)

surfer教程 surfer8教程

implicit none

integer,intent(in):: num_x,num_y,iunit

real,intent(in)::x_begin,x_end,y_begin,y_end,z(num_x,num_y)

character(len=*),intent(in)::filename

integer i,j

close(iunit)

open(iunit,file=filename//'.dat.grd')

write(iunit,'(4a)') 'dsaa'

write(iunit,*) num_x,num_y

write(iunit,*) x_begin,x_end

write(iunit,*) y_begin,y_end

surfer是什么?我一开始还以为马老师打错了字,把buffer打成了surfer。(www.61k.com)后来到网上一搜才发现是一个绘图软件。软件很小,只有12M,我费了九牛二虎之力下到一个汉化版的,又费了一牛之力找到一个注册机,再投入一虎之力搞到一本中文的入门书。倒腾了一晚上后,终于在MapInfo里看到了等值线与原图叠加的动人一幕。

参考了几篇论文,最好的是《MapInfo及WinSurfer在城镇土地定级估价中的综合应用》(不过,这也是硕士讲师的论文?也太浅了吧——但总比另几篇含含糊糊、飘飘浮浮的文字要好得多)。

摸索中的操作过程如下:

一、输入数据

1.新建Excel表,在A1,B1,C1中分别输入X,Y,Weight,作为字段X坐标,Y坐标和权值

surfer教程 surfer8教程

2.输入数据,保存表。[www.61k.com)数据如下

X Y Weight

1 2 60

3 4 70

5 5 100

6 7 80

5 6 90

6 5 90

8 8 70

9 8 60

4 5 80

4 4 80

二、生成MapInfo图

1.运行MapInfo,打开刚才的xls表

2.在“Excel信息”对话框中,将命名范围选为“其他”

3.在“其他范围”对话框中,将A1改为A2,因为第一行是字段名,不是数据

4.回到“Excel信息”对话框,勾上选择框,这样就将第一行作为字段了

5.确定后会打开表浏览器,表->创建点

6.在“创建点”对话框中,设置好点的符号,然后点击投影

7.因为X和Y是随便输入的,不是经纬度,所以这里将投影设为“Non-Earth(meters)”

8.在“非地球坐标边界”对话框中,根据表的X和Y值,输入合适的范围后确定

surfer教程 surfer8教程

9.窗口->新建地图窗口,可以看见图形已经生成了。[www.61k.com]

三、用surfer绘制等高线

1.启动surfer,网格->数据,打开刚才的xls表

2.在“网格化数据”对话框中,修改数据列、网格化方法、输出文件和网格线素几何学。这里全默认。

3.地图->等值线->新建等值线图,打开刚刚生成的grd网格数据文件,可以看见等值线图已经生成了。

4.双击该图,可以修改属性,如填充颜色等。

四、等值线图与点数据图的叠加

1.在surfer中,文件->参数选择->绘制,把“页面单位”改为厘米,因为MapInfo中点数据的坐标单位是米。

2.把“标尺和网格”标签中的“显示网格”打上勾。确定。

3.移动生成的等值线图,使其左下角坐标为1,2,因为MapInfo中点数据的左下角坐标是1,2。

4.文件->输出->*.mif,打开“MapInfo交换格式输出”对话框

5.选择保存的。确定。

6.在MapInfo中,表->转入,将生成的mif文件转入。

7.打开点数据的表,便可以看见叠加的图了。

!第四步有问题!如果点数据的坐标很大(如左下角为1000000,1000000),那么第3步就没法实现,导致最终MapInfo点和surfer等值线图无法重合,这个问题冲亚百试不得其解,恳请高人点拨!感激不尽!

以上是昨天做的,今天在VB下引用surfer,实现了在picturebox上显示三维图,明天写好发上来write(iunit,*) minval(z),maxval(z)

do j=1,num_y;do i=1,num_x

write(iunit,*) z(i,j)

surfer教程 surfer8教程

enddo;enddo

close(iunit)

print *, ''

print *, 'output data to file : ', filename//'.dat.grd'

print *, ''

end subroutine wr_surfer_grid

四 : surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

surfer8.0 surfer8.0绘图教程

本文标题:surfer8.0-surfer8.0绘图教程
本文地址: http://www.61k.com/1116156.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1