爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20185|回复: 33

[其他] c++ surfer 画等值线。

[复制链接]

新浪微博达人勋

发表于 2013-2-20 19:29:43 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
c++ surfer画等值线。请问一下各位:1、GridData函数怎么用呀?.GridData( DataFile, xCol, yCol, zCol, ExclusionFilter, DupMethod, xDupTol, yDupTol, NumCols, NumRows, 、、、、、、、) 函数有57个参数,每个参数都要设置吗?如果部分参数想使用默认值,应该怎么办?
2、绘制彩色等值线,是用LoadFile函数载入rainbow.clr文件就可以吗?为什么调试时 显示rainbow.clr文件is not a valid .lvl fille? 十分感谢!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-20 20:17:55 | 显示全部楼层
{:eb515:}{:eb515:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-2-21 08:59:50 | 显示全部楼层
GridData 从不规则 XYZ 数据 创建一个网格。返回一个布尔值。

语法
object.GridData( DataFile, xCol, yCol, zCol, ExclusionFilter, DupMethod, xDupTol, yDupTol, NumCols, NumRows, xMin, xMax, yMin, yMax, Algorithm, ShowReport, SearchEnable, SearchNumSectors, SearchRad1, SearchRad2, SearchAngle, SearchMinData, SearchDataPerSect, SearchMaxEmpty, FaultFileName, BreakFileName, AnisotropyRatio, AnisotropyAngle, IDPower, IDSmoothing, KrigType, KrigDriftType, KrigStdDevGrid, KrigVariogram, MCMaxResidual, MCMaxIterations, MCInternalTension, MCBoundaryTension, MCRelaxationFactor, ShepSmoothFactor, ShepQuadraticNeighbors, ShepWeightingNeighbors, ShepRange1, ShepRange2, RegrMaxXOrder, RegrMaxYOrder, RegrMaxTotalOrder, RBBasisType, RBRSquared, OutGrid, OutFmt, SearchMaxData, KrigStdDevFormat, DataMetric, LocalPolyOrder, LocalPolyPower, TriangleFileName )

参数
类型
描述
DataFile
字符串
必须, XYZ 数据文件名
xCol
长整型
可选, X 值所在列, A 列 = 1
yCol
长整型
可选, Y 值所在列, B 列 = 2
zCol
长整型
可选, Z 值所在列, C 列 = 3
ExclusionFilter
变型
可选, 用来排除值的布尔搜索
DupMethod
变型
可选, 消除重复数据的方法, 本参数可使用 SrfDupMethod 枚举
xDupTol
变型
可选, 被认定为 重复数据 的 X 值间隔
yDupTol
变型
可选, 被认定为重复数据的 Y 值间隔
NumCols
变型
可选, 网格规格 中的列数
NumRows
变型
可选, 网格规格中的行数
xMin
变型
可选, 网格规格中的最小 X 值
xMax
变型
可选, 网格规格中的最大 X 值
yMin
变型
可选, 网格规格中的最小 Y 值
yMax
变型
可选, 网格规格中的最大 Y 值
Algorithm
变型
可选, 网格化方法 (克里格等), SrfGridAlgorithm枚举用于本参数
ShowReport
变型
可选, 显示 网格报告, 网格报告只有当 ShowReport 为真且 Surfer 可见时才显示。
SearchEnable
变型
可选, 无 搜索 (使用所有数据)
SearchNumSectors
变型
可选, 搜索扇区数
SearchRad1
变型
可选, 搜索椭圆半径 1
SearchRad2
变型
可选, 搜索椭圆半径 2
SearchAngle
变型
可选, 搜索椭圆角度
SearchMinData
变型
可选, 所有扇区的最小数据个数 (如果节点周围的数据少于此数则该节点被白化)
SearchDataPerSect
变型
可选, 每个扇区使用的最大数据个数
SearchMaxEmpty
变型
可选, 空白扇区超过此数则节点被白化
FaultFileName
变型
可选, 包含 断层 轨迹的文件
BreakFileName
变型
可选, 包含 折断线 的文件
AnisotropyRatio
变型
可选, 用于各种算法的 各向异性 比率
AnisotropyAngle
变型
可选, 用于各种算法的各向异性角度
IDPower
变型
可选, 距离倒数乘方法, 乘方数
IDSmoothing
变型
可选, 距离倒数乘方法的平滑系数
KrigType
变型
可选, 克里格类型 (点或块), SrfKrigType枚举用于本参数
KrigDriftType
变型
可选, 克里格漂移类型 (无, 线性或二次), SrfDriftType枚举用于本参数
KrigStdDevGrid
变型
可选, 克里格标准离差 输出网格
KrigVariogram
变型
可选, 克里格变量图模型, KrigVariogram 可以是一个 VarioComponent 对象数组。如果此参数未指定, 则默认使用 线性 变量图。
MCMaxResidual
变型
可选, 最小曲率法 的最大残差
MCMaxIterations
变型
可选, 最小曲率法的最大迭代次数
MCInternalTension
变型
可选, 最小曲率法的内部张力系数
MCBoundaryTension
变型
可选, 最小曲率法的边界张力系数
MCRelaxationFactor
变型
可选, 最小曲率法的松弛因子
ShepSmoothFactor
变型
可选, 改进谢别德法 的平滑系数
ShepQuadraticNeighbors
变型
可选, 改进谢别德法的二次邻点
ShepWeightingNeighbors
变型
可选, 改进谢别德法的加权邻点
ShepRange1
变型
可选, 改进谢别德法的各向异性范围 1
ShepRange2
变型
可选, 改进谢别德法的各向异性范围 2
RegrMaxXOrder
变型
可选, 多项式回归法 的最大 X 阶
RegrMaxYOrder
变型
可选, 多项式回归法的最大 Y 阶
RegrMaxTotalOrder
变型
可选, 多项式回归法的最大总阶
RBBasisType
变型
可选, 径向基函数法 的类型 (复二次倒数, 复对数, 复二次函数, 自然三次样条, 薄板样条), SrfBasisType 枚举可用于本参数
RBRSquared
变型
可选, 径向基函数相关系数
OutGrid
字符串
可选, 默认="", 输出网格文件名
OutFmt
可选, 默认=srfGridFmtS7, 输出网格文件格式
SearchMaxData
变型
可选, 所有扇区使用的最大数据个数
KrigStdDevFormat
变型
可选, 标准离差网格文件格式, SrfGridFormat枚举可用于此参数
DataMetric
变型
可选, 数据度量 的其中一个选项, SrfDataMetric 枚举可用于此参数
LocalPolyOrder
变型
可选, 局部多项式法 的阶 (1,2, 或 3)
LocalPolyPower
变型
可选, 局部多项式法的幂
TriangleFileName
变型
可选, 保存三角形的文件名 - 格式通过文件扩展名自动检测

附注
关于如何使用网格化选项, 请参阅 Surfer 用户指南和网格化高级选项对话框了解详细信息。上述某些选项需要使用某些特定参数, 而一些参数则不能与其他参数同时使用。例如, 必须启用 SearchEnable 参数才能成功使用随后的七个参数 (Search...)。另一个例子是, 如果 Algorithm 选定了自然邻点网格化方法, 就不能用 KrigVariogram 参数。因为本方法包含了如此多的参数, 请尽量使用命名参数 (参见下面的示例)。

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-2-21 09:01:33 | 显示全部楼层
颜色谱文件格式
颜色谱文件 [.CLR] 用来定义一个谱系,或者说是一个连续梯级变化的颜色。通过一系列的锚点和相应的颜色来指定。锚点之间的颜色通过内插获得。

这个 ASCII 文件的基本格式包括第一行的头信息。后续的行是锚点,每个锚点占一行。

头信息行包括下列由空格分隔的字段:
元素
说明
Id
区分大小写的字符串 "ColorMap",不要引号啊,亲
Version
格式版本号,目前应为 1
InterpMethod
锚点间的内插方法,目前应为 1

后续的各行定义锚点,每个占一行。每行包括下列以空格分隔的字段:
元素
说明
Position
位置是一个浮点百分值 (从 0.0 到 100.0)。位置必须按从 0 到 100% 的升序指定,而且 0 和 100% 位置必须出现在文件中。
Red
红色分量 (0 到 255)
Green
绿色分量 (0 到 255)
Blue
蓝色分量 (0 到 255)

下面的例子中,锚点位置为 0, 50 和 100。0 位置为蓝色, 50% 锚点为绿色,而 100% 位置是黄色。

ColorMap 1 1
0
0
0
255
50
0
255
0
100
255
255
0

在一个颜色文件内可以存在相同的锚点。锚点和颜色按 0% 到 100% 的次序解析。在遇到相同的点时,地图上就表现为明显的边界差异,类似于此处的例子。

ColorMap 1 1
0
255
0
0
50
255
255
0
50
0
0
255
100
255
255
255

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-2-21 09:02:17 | 显示全部楼层
等级文件格式
等级文件 [.LVL] 用于为 Surfer 各种类型的地图指定等级和属性数据。等级文件是每行一个记录的 ASCII 文件。行中各字段用逗号或空格分隔。注视由一个单引号字符来界定,既可以放在行首,也可以放在记录的末尾。

有两种不同形式的等级文件格式。第一种是最简单的,每行由一个单独的高程值构成。例如下面的文件可以为等值线图指定对数间距:

0.1
1
10
100
1000

第二种形式的等级文件格式要求在第一行指定关键字 LVL2。这种形式的等级文件,每个记录都要使用下列语法:

Level Flags LColor LStyle LWidth FFGColor FBGColor FPattern FMode FScale FType

各字段以空格分隔,含义如下:
元素
说明
Level
Level 是等级的高程值。
Flags
Flags 代表标注和影线,其中 0=正常 (无标注、无影线)、 1=有标注、 2=有影线、 3=有标注且有影线。
LColor
LColor 是用来表示等级的线条的颜色。
LStyle
LStyle 是用来代表等级的线条的样式,与线条样式主题中列出的样式名一样。名字必须用双引号括住。
LWidth
LWidth 是线条的宽度,单位密耳 (千分之一英寸)。
FFGColor
FFGColor 是填充的前景色。
FBGColor
FBGColor 是填充的背景色。
FPattern
FPattern 是填充样式名称,与填充图案调色板显示的一样。名字必须用双引号括住。
FMode
FMode 是图案的背景模式,其中 1=透明而 2=不透明。
FScale
FScale 是矢量图案的缩放系数。
FType
FType 是图案的类型,其中 0=未知、 1=系统、 2=位图、 3=矢量。

所有颜色都按颜色主题列出的名称或者以特殊的语法 "Rxxx Gyyy Bzzz" 指定。后一种形式中,红、绿、蓝色分量分别为 xxx、 yyy 和 zzz。每个分量的取值范围是 0 到 255。

下面的例子是定义了 4 个等级及其属性的第 2 版等级文件:

LVL2
20 1 "Black" "Solid" 0 "Black" "Black" "Solid" 2
25 0 "Black" "Solid" 0 "R15 G15 B15" "R15 G15 B15" "Solid" 2
30 0 "Black" "Solid" 0 "R31 G31 B31" "R31 G31 B31" "Solid" 2
35 0 "Black" "Solid" 0 "R47 G47 B47" "R47 G47 B47" "Solid" 2

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-2-21 09:04:50 | 显示全部楼层
以上直接从 Surfer 帮助复制粘贴,所以那些可点击的链接其实是无效的,因为懒得调整,大家将就看吧。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-2-21 10:16:12 | 显示全部楼层
holz 的几个帖子非常好,正如他说的,这是复制粘贴自 Surfer 的帮助文件。很多问题应该都可以从帮助中获得解决。
您的第一个问题,没有用到的参数,就不要写,自然采用默认值了,用到的才列上去。
第二个问题,注意色谱文件和等级文件的区别。它们应用在不同的场合。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-21 10:22:19 | 显示全部楼层

非常谢谢! 请问一下你那里有汉化版surfer帮助文件吗?能麻烦你给我一份吗? 邮箱425131884@qq.com。 谢谢啦。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-2-21 10:35:36 | 显示全部楼层
chengxf 发表于 2013-2-21 10:16
holz 的几个帖子非常好,正如他说的,这是复制粘贴自 Surfer 的帮助文件。很多问题应该都可以从帮助中获得解 ...

vb中不用的参数可以不写,但是c++中好像不行,参数不写全,调试时有错误。现在的问题是,不用的参数怎么设置使用默认值?matlab中是使用 [] 来代替。 谢谢啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-2-21 15:55:35 | 显示全部楼层
炜麦 发表于 2013-2-21 10:35
vb中不用的参数可以不写,但是c++中好像不行,参数不写全,调试时有错误。现在的问题是,不用的参数怎么设 ...

对不起,C++我不懂。帮不到你了,pascal 中不用的参数可以不写,这我知道。C++中如果每一个参数都要写的话,似乎很麻烦。C++不会这么笨吧。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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