绘图软件Golden Surfer采用的网格文件(grd)主要有Surfer 6 Text、Surfer 6 Binary以及Surfer 7三种存储格式,目前常用前两种数据格式。Surfer 6 Text格式以Ascii码存储,可直接用文本编辑器查看,提取及修改数据均较为方便;另外两种格式均以二进制形式存储,不能直接查看和修改,只能使用专门的程序进行操作。为便于读取grd数据,现给出三种存储格式的说明。Fortran读写代码详见Surfer grd文件读写Fortran代码(面向对象编程示例)。
1、Surfer 6 Text文件格式
文件样式:
数据说明:
行号 | 变量 | 数据类型 | 说明 |
1 | id | character(4) | 格式标识符,’DSAA’,顶格 |
2 | nx | integer | x方向(列)点数 |
ny | integer | y方向(行)点数 | |
3 | xlo | real | x坐标最小值 |
xhi | real | x坐标最大值 | |
4 | ylo | real | y坐标最小值 |
yhi | real | y坐标最大值 | |
5 | zlo | real | z坐标最小值,不含白化点(NoData) |
zhi | real | z坐标最大值,不含白化点(NoData) | |
6 | real | 第1行数据,值为1.71041e38表示该点无效 | |
第2行数据 |
2、Surfer 6 Binary 文件格式
文件存储样式(顺序)与Surfer 6 Text 一致,但为二进制文件。数据说明:
字节序 | 变量 | 数据类型 | 说明 |
1-4 | id | character(4) | 格式标识符,’DSBB’ |
5-6 | nx | integer(2) | x方向(列)点数 |
7-8 | ny | Integer(2) | y方向(行)点数 |
9-16 | xlo | real(8) | x坐标最小值 |
17-24 | xhi | real(8) | x坐标最大值 |
25-32 | ylo | real(8) | y坐标最小值 |
33-40 | yhi | real(8) | y坐标最大值 |
41-48 | zlo | real(8) | z坐标最小值,不含白化点(NoData=1.71041e38) |
49-56 | zhi | real(8) | z坐标最大值,不含白化点(NoData) |
57- | real(4) | 第1行数据,值为NoData表示该点无效 | |
第2行数据 |
3、Surfer 7 文件格式
二进制文件,仅适用于surfer 7以上版本的软件。该文件格式可包含多个数据段,每个数据段之前有一个8字节标签,表明该数据段的类型(id, 4字节字符串)及长度(size, 4字节整型)。id含义如下:
‘DSRB’ | Header section,文件开始的第一个段 |
‘GRID’ | Grid section, 2D网格数据 |
‘DATA’ | Data section, 包含一系列数据的段,大小由标签中的size给定 |
‘FLTI’ | Fault Info section, 断层信息 |
Header section:该数据段仅包含1个4字节整型元素Version,其值为1或2:
Version | 1 | 大于等于BlankValue的数值将被设为NoData (1.71041e38) |
2 | 等于BlankValue的数值将被设为NoData |
Grid Section:网格属性
变量 | 数据类型 | 说明 |
ny | integer(4) | y方向(行)点数 |
nx | Integer(4) | x方向(列)点数 |
xlo | real(8) | x坐标最小值 |
ylo | real(8) | y坐标最小值 |
xSize | real(8) | x方向网格大小 |
ySize | real(8) | y方向网格大小 |
zlo | real(8) | z坐标最小值,不含白化点(NoData=1.71041e38) |
zhi | real(8) | z坐标最大值,不含白化点(NoData) |
rotation | real(8) | 旋转角度 |
BlankValue | real(8) | 大于或等于该值的节点将被赋值为NoData |
Data Section:网格点上的值
紧跟Grid Section之后,存储2D网格数据(双精度实数),存储顺序与前述格式一致(行优先)。
Fault Info Section:描述区域内断层分布形态(断层处等值线不连续)
变量 | 数据类型 | 说明 |
nTraces | integer(4) | 断层数量 |
nVertices | Integer(4) | 所有断层中离散点总数 |
data section | 断层数据信息,包括: 第1条断层的起始点号iFirst及点数nPts (4字节整型) 第2条断层的起始点号iFirst及点数nPts ... 第1个点的x、y坐标(双精度实数) 第2个点的x、y坐标 ... 注:iFirst从0开始 |