Surpac 钻孔数据输入、柱状图与地质建模操作指南
基于 GEOVIA Surpac 7.7 帮助文档整理 | 含从零开始地质建模 Step-by-Step
一、钻孔数据输入方式
Surpac 中的所有钻孔数据处理都基于地质数据库 (Geological Database)。输入数据的核心流程是:创建数据库 → 定义表结构 → 导入数据 → 审计验证。
1.1 创建数据库
菜单路径:
- 选择数据库类型:Access(需安装 Access,最简单)或 ODBC(连接 SQL Server / Oracle 等,GEOVIA 推荐用于大型项目)
- 输入数据库名称和存储路径
- Surpac 自动生成 .ddb 定义文件,并创建 4 个默认表:collar、survey、translation、styles
1.2 数据库表结构
必需表(Default Tables)
| 表名 | 必需字段 | 说明 |
|---|---|---|
| collar | hole_id, y, x, z, max_depth, hole_path | 孔口坐标、最大孔深、轨迹算法(vertical / linear / curved) |
| survey | hole_id, depth, y, x, z, dip, azimuth | 测斜数据。y/x/z 可设为 Stored(存储)或 Calculated(自动计算) |
| translation | table_name, field_name, code, num_equiv, description | 字符代码与数值映射。如将化验值 “<0.01" 映射为 0.005 存入数值字段 |
| styles | table_name, field_name, code, from_value, to_value, graphics_colour, plotting_pattern 等 | 定义钻孔和样品在 Graphics / Plotting 中的显示颜色和图案 |
可选表(Optional Tables)
| 表类型 | 必需字段 | 适用场景 |
|---|---|---|
| Interval | hole_id, samp_id, depth_from, depth_to, y_from/x_from/z_from, y_to/x_to/z_to | 化验样品、地质岩性记录 |
| Point | hole_id, depth_to, y_to, x_to, z_to | 水位、单点采样 |
| Discrete | samp_id, y, x, z | 土壤样品、地球化学采样(不关联钻孔) |
1.3 数据导入方式
方式一:从文本文件批量导入(最常用)
菜单路径: | 命令:LOAD DATABASE
- 输入或新建格式文件名(.dsc)
- 对每个要导入的表选择格式:
- FREE:字段由分隔符(逗号、空格、制表符)分隔,需指定分隔符和文本限定符(如双引号)
- FIXED:字段在固定列位置,需指定起始列号和长度
- 为每个字段指定其在文本文件中的列号(FREE)或起始位置/长度(FIXED)
- 为每个表指定对应的文本数据文件
- 选择加载类型:
- Insert:仅插入新记录,已有记录跳过
- Update:仅更新已有记录
- Ins/Upd:新记录插入,已有记录更新
- 执行导入,错误记录写入 .rej 拒绝文件,导入日志写入 .log 文件
方式二:从 acQuire 导入
菜单路径:
通过 ODBC 连接 acQuire 数据库,拖拽映射表和字段,将 collar、survey、interval 等表导入 Surpac。
方式三:键盘逐条输入
菜单路径:
适合补充或修正少量记录,不适合大批量数据。
方式四:字段数学运算批量修改
菜单路径: | 命令:FIELD MATHS
使用类似 SQL 的表达式批量计算和更新字段值。
二、钻孔柱状图使用方法
Surpac 提供两类钻孔柱状图功能:文本格式(快速报告)和 图形格式(详细可视化,最常用)。
2.1 文本格式柱状图(Drill Hole Log)
菜单路径: | 命令:DRILL HOLE LOG
输出 .not 文本文件,包含孔口坐标、测斜信息、样品 FROM/TO 深度及品位/地质代码。适合快速浏览和数据校验。
2.2 图形格式柱状图(Graphical Log)—— 核心功能
菜单路径: | 命令:DB DRILLHOLE LOG
输出 .dwf 文件,可在 Plot Editor 中打开和打印。
操作步骤详解
Step 1:打开/指定格式文件 (.lpf)
- 运行 Graphical log 功能
- 在 “Format File Name” 中输入已有 .lpf 文件名,或输入新文件名创建新格式
- 勾选 “Modify Format” 可修改格式,取消勾选则直接按现有格式出图
Step 2:定义柱状图全局参数
- Paper Size:选择纸张大小(可在 SSI_PLOTTING:user.chr 中自定义)
- Orientation:Portrait(纵向)或 Landscape(横向)
- Plot Type:
- Single Hole:每孔一个输出文件
- Multi Hole:多孔合并在同一文件中,自动分页
- Scale:孔深方向比例尺。Scale=250 表示 1 米孔深 = 1 厘米图面
- Label Interval:标签间距(米)。如 5 表示每 5 米输出一个深度标签
- Left Margin:左边距(厘米)
- Depth from / Depth to:柱状图的起始和终止深度
- Lookup File:查找文件,将地质代码映射到图案(可选)
- Pattern File:图案文件,定义岩性花纹样式
Step 3:添加和配置列 (Columns)
点击 Add 按钮添加新列,每列独立配置。六种列类型:
| 列类型 | 支持表 | 数据类型 | 最大字段数 | 用途 |
|---|---|---|---|---|
| Lithology 岩性 | Interval | 字符 | 1 | 以地质代码对应的图案填充区间 |
| Line Graph 折线图 | Point / Interval | 数值 | 20 | 绘制品位等数值折线,可设 Min/Max |
| Bar Graph 柱状图 | Interval | 字段1:数值 / 字段2:字符 | 2 | 以柱状高度表示品位,可用字符字段着色 |
| Depths 深度 | — | — | 0 | 显示孔深标尺,可设 Minor Ticks(小刻度) |
| Description 描述 | Point / Interval | 字符/数值 | 5 | 输出文字描述,可设对齐方式和字体 |
| Bar/Line 组合 | Interval / Both | 数值或字符 | 20 | 第一字段为柱状图,其余为折线图叠加 |
每列的通用参数:Heading(列标题)、Col. Width(列宽 cm)、Interval(与右侧列间距)、Grid(是否显示水平虚线)、Table(数据来源表)、Fields(数据字段)。
Step 4:定义标题块与孔口信息
- Title Block:从 SSI_PLOTTING:user.chr 中选择标题块模板,或输入 NOTB 不使用标题块
- Column Headers:勾选则在每页顶部打印列标题
- Hole Information:勾选则显示孔口坐标 (X/Y/Z)、倾角 (Dip)、方位角 (Azimuth)
- 设置字体、小数位数等外观参数
Step 5:选择钻孔并输出
- 在 “Select holes” 表单中输入要出图的钻孔 ID(多个用逗号分隔)
- 点击 Apply,系统生成 .dwf 文件
- 在 Plot Editor 中打开 .dwf 文件进行查看、编辑和打印
图案与颜色控制
- Lookup File:通过 编辑,将地质代码映射到图案编号和画笔颜色
- Pattern File:修改 patterns.ssi 文件定义具体花纹
- Styles 表:如未指定 Lookup File,则使用数据库 Styles 表中定义的图案和颜色
- 代码未匹配时查找 “default” 图案,如无则使用 45 度实线阴影
典型配置示例
Scale=250,Label Interval=10,共 8 列:
- Depth(Depths 列,Minor Ticks=5)
- Code(Description 列, geology 表,rock_code 字段)
- 岩性柱(Lithology 列,geology 表,rock_code 字段,Pattern=100)
- AU/CU Grades(Bar Graph 列,assay 表,cu_grade + ore_class 字段,Min=0, Max=10)
- Desc(Description 列,geology 表,description 字段)
- Gamma(Line Graph 列,gamma 表,gamma 字段,Min=0, Max=5)
- gold copper(Line Graph 列,assay 表,au_grade + cu_grade 字段)
- resist(Line Graph 列,resistivity 表,resistivity + resist2 字段)
三、地质建模方法概述
3.1 实体建模(Solids / Wireframe)
Surpac 中的 Solids 即为三维实体(Wireframe)模型。通过三角剖分将截面线串缝合为闭合三维体。
核心概念
- Object:对象编号 1-32000,代表一个离散地质特征(如某矿体)
- Trisolation:对象的离散部分(如被断层分割的同一矿体)
- 存储格式:.str(线串文件)+ .dtm(三角面文件)
常用三角剖分方法
| 方法 | 命令 | 适用场景 |
|---|---|---|
| 线段间三角剖分 | TRIANGULATE BETWEEN SEGMENTS | 标准矿体建模,连接相邻截面 |
| 自动三角剖分 | AUTO TRIANGULATE | 快速生成实体 |
| 控制线三角剖分 | CONTROL STRING TRIANGULATE | 需控制三角剖分方向时使用 |
| 中心线三角剖分 | CENTRE LINE TRIANGULATE | 脉状矿体,沿中心线扩展 |
| 分叉三角剖分 | TRIANGULATE USING BIFURCATION | 矿体分叉/合并 |
| 拉伸三角剖分 | EXTRUDE AND TRIANGULATE | 将截面沿路径拉伸为实体 |
实体编辑与验证
- Validate:验证实体闭合性和拓扑正确性(建模后必须执行)
- Automatic Mesh Repair:自动修复反转法线、缝隙等问题
- Optimise:优化三角形数量
- Split / Union / Intersect:分割、合并、求交运算
- Clip with DTM:用地形面裁剪实体
3.2 块体建模(Block Modelling)
将三维空间离散为规则小块,每个块存储通过插值估算的品位值,用于资源量计算。
核心概念
- 模型空间:由 Origin X/Y/Z 和 Extent X/Y/Z 定义
- 块 (Block):包含质心坐标和多个属性字段
- 约束 (Constraint):用平面、DTM、实体 (Solids)、闭合线串等限定建模范围
常用估计方法
| 方法 | 命令 | 特点 |
|---|---|---|
| 最近邻法 (NN) | NEAREST NEIGHBOUR | 最简单,适合验证 |
| 反距离加权 (ID2) | INVERSE DISTANCE | 计算快,适合初步估计 |
| 普通克里格 (OK) | ORDINARY KRIGING | 最优线性无偏估计,最常用 |
| 指示克里格 (IK) | INDICATOR KRIGING | 适合非正态分布数据 |
| 序贯高斯模拟 | SGSIM | 评估不确定性 |
| 协克里格 | COKB3D | 利用次变量改善估计 |
3.3 地统计学工具
- 实验变差函数计算:量化样品空间相关性
- 变差函数图 (Variogram Maps):可视化各向异性方向
- 模型拟合:用球状、指数、高斯模型拟合实验变差函数
- 搜索椭球体可视化:Ellipsoid Visualizer 工具
- 模型验证:Swath Plot(条带图)、Lilliefors 检验、Grade-Tonnage 图
四、从零开始地质建模 Step-by-Step
以下是从原始钻孔数据到资源量估算的完整操作步骤,每个阶段包含具体菜单路径和命令。
Step 1.1 整理原始数据
确保拥有以下数据文件(通常为 Excel 或 CSV 格式):
- 孔口数据:钻孔编号、X坐标、Y坐标、Z高程、最大孔深
- 测斜数据:钻孔编号、测斜深度、倾角、方位角
- 化验数据:钻孔编号、样品编号、FROM深度、TO深度、各元素品位(Au、Cu 等)
- 地质数据:钻孔编号、FROM/TO深度、岩性代码、地质描述
将数据保存为 逗号分隔的文本文件 (.csv 或 .txt),编码建议 UTF-8。
Step 1.2 创建地质数据库
- 菜单路径:
- 选择 Access 类型(小型项目)或 ODBC(大型项目/SQL Server)
- 输入数据库名称,如 project_geo
- 点击 Create,Surpac 自动生成 collar、survey、translation、styles 四个默认表
Step 1.3 创建可选表
- 菜单路径:
- 创建 geology 表(Interval 类型):字段包括 hole_id, samp_id, depth_from, depth_to, rock_code, description
- 创建 assay 表(Interval 类型):字段包括 hole_id, samp_id, depth_from, depth_to, au_grade, cu_grade 等
- 确保每个 Interval 表都有 y_from, x_from, z_from, y_to, x_to, z_to 六个坐标字段(可设为 Calculated)
Step 1.4 导入数据
- 菜单路径: | 命令:LOAD DATABASE
- 输入格式文件名(如 project_load.dsc),如果是新文件会提示创建
- 选择要导入的表,格式选 FREE,分隔符选逗号 ,
- 为每个字段指定文本文件中的列号(第一列为 1)
- 在 “Load database tables from text files” 表单中:
- 为 collar 表指定 collar.csv
- 为 survey 表指定 survey.csv
- 为 geology 表指定 geology.csv
- 为 assay 表指定 assay.csv
- 加载类型选 Insert,勾选 “Perform overlapping sample check”
- 点击 Apply 执行导入
Step 1.5 审计数据库
- 菜单路径: | 命令:AUDIT DATABASE
- 查看 Message 窗口中的审计结果
- 修复所有错误:
- 检查是否有 collar 表中的 hole_id 在 survey 表中缺失
- 检查样品区间是否有重叠
- 检查深度值是否合理(depth_to > depth_from)
Step 1.6 数据校验
- 菜单路径: | 命令:DISPLAY DRILLHOLES
- 在 Graphics 窗口中查看钻孔空间分布,检查是否有坐标异常
- 菜单路径:
- 点击 Graphics 中的钻孔,查看孔口信息和样品数据
- 菜单路径:,检查数据统计
Step 2.1 样品组合(Compositing)
- 菜单路径: | 命令:COMPOSITE DOWNHOLE
- 选择组合长度(如 1 米或 2 米)
- 选择要组合的表(assay)
- 选择要保留/计算的字段(au_grade, cu_grade)
- 选择组合方法(平均值、加权平均等)
- 输出组合后的样品到新表(如 assay_comp)
Step 2.2 基本统计分析
- 菜单路径:
- 选择 assay_comp 表,查看各元素的基本统计量(均值、标准差、最大值、最小值、分位数)
- 识别高品位异常值( outliers ),决定是否需要封顶处理(capping)
- 菜单路径:(如需分析元素相关性)
Step 3.1 定义矿化域
- 菜单路径: | 命令:DEFINE GEOLOGY ZONES
- 基于品位阈值(如 Au > 0.3 g/t)或岩性代码定义矿化域
- 也可在后续数字化过程中手动圈定矿体边界
Step 3.2 提取地质剖面
- 菜单路径: | 命令:EXTRACT SECTIONS FOR PLOT
- 定义剖面线:输入剖面起点和终点的 X、Y 坐标
- 设置剖面宽度和间距(如间距 50 米)
- 选择要提取的数据表:assay_comp(品位)、geology(岩性)
- 选择提取内容:钻孔轨迹、样品柱状图、岩性图案、品位折线图
- 输出为字符串文件(.str),自动保存在工作目录
Step 3.3 地质解译与数字化
- 菜单路径:,打开提取的剖面 .str 文件
- 在 Graphics 窗口中查看钻孔剖面,观察品位和岩性分布
- 菜单路径: | 命令:NEW SEGMENT
- 在剖面上数字化矿体边界线串:
- 根据品位数据(如 Au > 0.3 g/t)和岩性特征圈定矿体
- 为每个剖面创建独立的矿体边界线串
- 注意:相邻剖面的线串应具有相似的形态和点位分布
- 保存数字化后的线串文件(如 ore_sections.str)
Step 3.4 创建实体(三角剖分)
- 菜单路径: | 命令:TRIANGULATE BETWEEN SEGMENTS
- 选择数字化后的矿体截面线串文件(ore_sections.str)
- 设置参数:
- Object number:输入对象编号(如 1)
- Trisolation number:输入三隔离体编号(如 1)
- 确认线串方向一致(可用 Reverse segment 调整)
- 点击 Apply,Surpac 自动在相邻截面间缝合三角形
- 输出实体文件:orebody.str + orebody.dtm
Step 3.5 验证与修复实体
- 菜单路径: | 命令:VALIDATE SOLID
- 选择刚创建的实体文件,检查是否有错误:
- 开放边(open edges)
- 反转法线(flipped normals)
- 自相交(self-intersections)
- 零面积三角形
- 如有错误,运行 | 命令:AUTOMATIC MESH REPAIR
- 再次验证,直到无错误
- 运行 减少冗余三角形
Step 3.6 实体与钻孔求交(可选验证)
- 菜单路径:
- 选择实体文件和钻孔数据库
- 查看实体边界处的品位数据,验证矿体圈定是否合理
Step 4.1 创建块体模型
- 菜单路径: | 命令:CREATE BLOCK MODEL
- 输入模型名称(如 project_bm)
- 定义模型范围:
- Origin:模型左下角坐标(X, Y, Z)
- Extent:模型在 X/Y/Z 方向的总长度
- Block size:块尺寸(如 10m x 10m x 5m)
- 建议将原点设为矿区左下角坐标向下取整,范围覆盖整个矿区
Step 4.2 添加属性
- 菜单路径:
- 添加以下属性字段:
- au(实数):金品位估计值
- cu(实数):铜品位估计值
- dens(实数):密度
- zone(字符):矿化域分类
- class(字符):矿/废石分类
Step 4.3 定义约束
- 菜单路径: | 命令:ADD CONSTRAINT
- 选择约束类型:
- Solid:选择阶段三创建的实体文件(orebody.str),限定只在矿体内估计
- DTM:用地形面限定地表以上不估计
- Plane:用平面限定(如排除氧化带)
- 约束条件:块的质心在约束范围内即认为该块满足约束
Step 4.4 地统计学分析(变差函数)
- 菜单路径:
- 选择数据源:assay_comp 表,目标字段(如 au_grade)
- 设置搜索参数:滞后距(lag distance)、滞后距数(number of lags)、容差角
- 分别计算主方向、次方向、垂直方向的实验变差函数
- 菜单路径:
- 用球状(Spherical)、指数(Exponential)或高斯(Gaussian)模型拟合实验变差函数
- 记录拟合参数:块金值(Nugget)、基台值(Sill)、变程(Range)、各向异性比
Step 4.5 执行品位估计
以普通克里格 (Ordinary Kriging) 为例:
- 菜单路径: | 命令:ORDINARY KRIGING
- 设置估计参数:
- Data table:assay_comp
- Data field:au_grade
- Model attribute:au(将估计结果存入 au 属性)
- Search ellipsoid:输入变差函数拟合得到的主轴/次轴/短轴长度和方向
- Minimum / Maximum samples:最小/最大参与估计的样品数(如 Min=4, Max=12)
- Discretisation:每个块内的离散化点数(如 4x4x4 = 64 点)
- 确认约束条件已激活(使用步骤 4.3 定义的实体约束)
- 点击 Apply 执行估计
- 对其他元素(如 Cu)重复上述步骤
Step 4.6 模型验证
- 菜单路径:
- 比较估计值与原始样品值在不同方向(X/Y/Z)的分布趋势
- 菜单路径:
- 检验估计值与样品值的分布一致性
- 如偏差过大,调整变差函数参数或搜索邻域设置后重新估计
Step 5.1 矿/废石分类
- 菜单路径: | 命令:ORE/WASTE DISCRIMINATION
- 设定边界品位(如 Au cutoff = 0.3 g/t)
- 创建 class 属性:高于边界品位为 “ore”,低于为 “waste”
Step 5.2 生成资源量报告
- 菜单路径: | 命令:MODEL REPORT
- 选择报告范围:全部模型或按约束(实体)分类
- 选择分组字段(如按 class 分类统计矿/废石)
- 设置报告内容:
- 块数、体积、吨位(需密度属性 dens)
- 平均品位(加权平均)
- 金属量(吨位 x 平均品位)
- 输出为文本报告文件(.not)
Step 5.3 可视化
- 菜单路径:
- 在 Graphics 中查看块体模型的品位分布
- 菜单路径:
- 生成特定品位的等值面(如 Au = 1.0 g/t 的等值面)
- 结合实体模型和钻孔数据,在三维视图中综合展示建模结果
