Surpac 钻孔数据输入、柱状图与地质建模 Step-by-Step 操作指南

Surpac 钻孔数据输入、柱状图与地质建模 Step-by-Step 操作指南

Surpac 钻孔数据输入、柱状图与地质建模操作指南

基于 GEOVIA Surpac 7.7 帮助文档整理 | 含从零开始地质建模 Step-by-Step

一、钻孔数据输入方式

Surpac 中的所有钻孔数据处理都基于地质数据库 (Geological Database)。输入数据的核心流程是:创建数据库 → 定义表结构 → 导入数据 → 审计验证。

1.1 创建数据库

菜单路径:Database > Database > Open/New

  1. 选择数据库类型:Access(需安装 Access,最简单)或 ODBC(连接 SQL Server / Oracle 等,GEOVIA 推荐用于大型项目)
  2. 输入数据库名称和存储路径
  3. Surpac 自动生成 .ddb 定义文件,并创建 4 个默认表:collar、survey、translation、styles
关键提醒 创建或导入数据后,必须执行 Audit Database(菜单路径:Database > Database > Audit Database),否则后续钻孔显示和建模功能可能出错。

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)

表类型必需字段适用场景
Intervalhole_id, samp_id, depth_from, depth_to, y_from/x_from/z_from, y_to/x_to/z_to化验样品、地质岩性记录
Pointhole_id, depth_to, y_to, x_to, z_to水位、单点采样
Discretesamp_id, y, x, z土壤样品、地球化学采样(不关联钻孔)

1.3 数据导入方式

方式一:从文本文件批量导入(最常用)

菜单路径:Database > Database > Import data | 命令:LOAD DATABASE

  1. 输入或新建格式文件名(.dsc
  2. 对每个要导入的表选择格式:
    • FREE:字段由分隔符(逗号、空格、制表符)分隔,需指定分隔符和文本限定符(如双引号)
    • FIXED:字段在固定列位置,需指定起始列号和长度
  3. 为每个字段指定其在文本文件中的列号(FREE)或起始位置/长度(FIXED)
  4. 为每个表指定对应的文本数据文件
  5. 选择加载类型:
    • Insert:仅插入新记录,已有记录跳过
    • Update:仅更新已有记录
    • Ins/Upd:新记录插入,已有记录更新
  6. 执行导入,错误记录写入 .rej 拒绝文件,导入日志写入 .log 文件
导入前准备 如果文本文件中有非数值数据需要加载到数值字段(如化验值 “NS”、”<0.01"),必须先在 Translation 表中建立映射关系,否则导入会报错。

方式二:从 acQuire 导入

菜单路径:Database > Database > Import drillholes from acQuire

通过 ODBC 连接 acQuire 数据库,拖拽映射表和字段,将 collar、survey、interval 等表导入 Surpac。

方式三:键盘逐条输入

菜单路径:Database > Edit > Insert table row

适合补充或修正少量记录,不适合大批量数据。

方式四:字段数学运算批量修改

菜单路径:Database > Edit > Field maths | 命令:FIELD MATHS

使用类似 SQL 的表达式批量计算和更新字段值。

二、钻孔柱状图使用方法

Surpac 提供两类钻孔柱状图功能:文本格式(快速报告)和 图形格式(详细可视化,最常用)。

2.1 文本格式柱状图(Drill Hole Log)

菜单路径:Database > Report > Drillhole log | 命令:DRILL HOLE LOG

输出 .not 文本文件,包含孔口坐标、测斜信息、样品 FROM/TO 深度及品位/地质代码。适合快速浏览和数据校验。

2.2 图形格式柱状图(Graphical Log)—— 核心功能

菜单路径:Database > Report > Graphical log | 命令:DB DRILLHOLE LOG

输出 .dwf 文件,可在 Plot Editor 中打开和打印。

操作步骤详解

Step 1:打开/指定格式文件 (.lpf)

  1. 运行 Graphical log 功能
  2. 在 “Format File Name” 中输入已有 .lpf 文件名,或输入新文件名创建新格式
  3. 勾选 “Modify Format” 可修改格式,取消勾选则直接按现有格式出图

Step 2:定义柱状图全局参数

  1. Paper Size:选择纸张大小(可在 SSI_PLOTTING:user.chr 中自定义)
  2. Orientation:Portrait(纵向)或 Landscape(横向)
  3. Plot Type
    • Single Hole:每孔一个输出文件
    • Multi Hole:多孔合并在同一文件中,自动分页
  4. Scale:孔深方向比例尺。Scale=250 表示 1 米孔深 = 1 厘米图面
  5. Label Interval:标签间距(米)。如 5 表示每 5 米输出一个深度标签
  6. Left Margin:左边距(厘米)
  7. Depth from / Depth to:柱状图的起始和终止深度
  8. Lookup File:查找文件,将地质代码映射到图案(可选)
  9. 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:定义标题块与孔口信息

  1. Title Block:从 SSI_PLOTTING:user.chr 中选择标题块模板,或输入 NOTB 不使用标题块
  2. Column Headers:勾选则在每页顶部打印列标题
  3. Hole Information:勾选则显示孔口坐标 (X/Y/Z)、倾角 (Dip)、方位角 (Azimuth)
  4. 设置字体、小数位数等外观参数

Step 5:选择钻孔并输出

  1. 在 “Select holes” 表单中输入要出图的钻孔 ID(多个用逗号分隔)
  2. 点击 Apply,系统生成 .dwf 文件
  3. 在 Plot Editor 中打开 .dwf 文件进行查看、编辑和打印

图案与颜色控制

  • Lookup File:通过 LOOKUP FILE EDIT 编辑,将地质代码映射到图案编号和画笔颜色
  • Pattern File:修改 patterns.ssi 文件定义具体花纹
  • Styles 表:如未指定 Lookup File,则使用数据库 Styles 表中定义的图案和颜色
  • 代码未匹配时查找 “default” 图案,如无则使用 45 度实线阴影

典型配置示例

Scale=250,Label Interval=10,共 8 列:

  1. Depth(Depths 列,Minor Ticks=5)
  2. Code(Description 列, geology 表,rock_code 字段)
  3. 岩性柱(Lithology 列,geology 表,rock_code 字段,Pattern=100)
  4. AU/CU Grades(Bar Graph 列,assay 表,cu_grade + ore_class 字段,Min=0, Max=10)
  5. Desc(Description 列,geology 表,description 字段)
  6. Gamma(Line Graph 列,gamma 表,gamma 字段,Min=0, Max=5)
  7. gold copper(Line Graph 列,assay 表,au_grade + cu_grade 字段)
  8. 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

以下是从原始钻孔数据到资源量估算的完整操作步骤,每个阶段包含具体菜单路径和命令。

阶段一:数据准备(约 1-2 天)

Step 1.1 整理原始数据

确保拥有以下数据文件(通常为 Excel 或 CSV 格式):

  • 孔口数据:钻孔编号、X坐标、Y坐标、Z高程、最大孔深
  • 测斜数据:钻孔编号、测斜深度、倾角、方位角
  • 化验数据:钻孔编号、样品编号、FROM深度、TO深度、各元素品位(Au、Cu 等)
  • 地质数据:钻孔编号、FROM/TO深度、岩性代码、地质描述

将数据保存为 逗号分隔的文本文件 (.csv 或 .txt),编码建议 UTF-8。

Step 1.2 创建地质数据库

  1. 菜单路径:Database > Database > Open/New
  2. 选择 Access 类型(小型项目)或 ODBC(大型项目/SQL Server)
  3. 输入数据库名称,如 project_geo
  4. 点击 Create,Surpac 自动生成 collar、survey、translation、styles 四个默认表

Step 1.3 创建可选表

  1. 菜单路径:Database > Database > Create table
  2. 创建 geology 表(Interval 类型):字段包括 hole_id, samp_id, depth_from, depth_to, rock_code, description
  3. 创建 assay 表(Interval 类型):字段包括 hole_id, samp_id, depth_from, depth_to, au_grade, cu_grade 等
  4. 确保每个 Interval 表都有 y_from, x_from, z_from, y_to, x_to, z_to 六个坐标字段(可设为 Calculated)

Step 1.4 导入数据

  1. 菜单路径:Database > Database > Import data | 命令:LOAD DATABASE
  2. 输入格式文件名(如 project_load.dsc),如果是新文件会提示创建
  3. 选择要导入的表,格式选 FREE,分隔符选逗号 ,
  4. 为每个字段指定文本文件中的列号(第一列为 1)
  5. 在 “Load database tables from text files” 表单中:
    • 为 collar 表指定 collar.csv
    • 为 survey 表指定 survey.csv
    • 为 geology 表指定 geology.csv
    • 为 assay 表指定 assay.csv
  6. 加载类型选 Insert,勾选 “Perform overlapping sample check”
  7. 点击 Apply 执行导入
导入前检查 如果化验数据中有 “NS”、”<0.01" 等非数值代码,必须先在 Translation 表中建立映射(如 NS → -1,<0.01 → 0.005),否则导入会失败。

Step 1.5 审计数据库

  1. 菜单路径:Database > Database > Audit database | 命令:AUDIT DATABASE
  2. 查看 Message 窗口中的审计结果
  3. 修复所有错误:
    • 检查是否有 collar 表中的 hole_id 在 survey 表中缺失
    • 检查样品区间是否有重叠
    • 检查深度值是否合理(depth_to > depth_from)

Step 1.6 数据校验

  1. 菜单路径:Database > Display > Drillholes | 命令:DISPLAY DRILLHOLES
  2. 在 Graphics 窗口中查看钻孔空间分布,检查是否有坐标异常
  3. 菜单路径:Database > Display > Identify drillhole
  4. 点击 Graphics 中的钻孔,查看孔口信息和样品数据
  5. 菜单路径:Database > Report > Database summary,检查数据统计
阶段二:样品组合与统计分析(约 0.5-1 天)

Step 2.1 样品组合(Compositing)

  1. 菜单路径:Database > Composite > Composite downhole | 命令:COMPOSITE DOWNHOLE
  2. 选择组合长度(如 1 米或 2 米)
  3. 选择要组合的表(assay)
  4. 选择要保留/计算的字段(au_grade, cu_grade)
  5. 选择组合方法(平均值、加权平均等)
  6. 输出组合后的样品到新表(如 assay_comp
组合目的 将不等长的原始样品统一为等长组合样品,使后续统计分析和品位估计更加稳定可靠。

Step 2.2 基本统计分析

  1. 菜单路径:Database > Analysis > Table statistics
  2. 选择 assay_comp 表,查看各元素的基本统计量(均值、标准差、最大值、最小值、分位数)
  3. 识别高品位异常值( outliers ),决定是否需要封顶处理(capping)
  4. 菜单路径:Database > Analysis > Linear regression(如需分析元素相关性)
阶段三:实体建模 / 矿体圈定(约 2-5 天)

Step 3.1 定义矿化域

  1. 菜单路径:Database > Analysis > Define geology zones | 命令:DEFINE GEOLOGY ZONES
  2. 基于品位阈值(如 Au > 0.3 g/t)或岩性代码定义矿化域
  3. 也可在后续数字化过程中手动圈定矿体边界

Step 3.2 提取地质剖面

  1. 菜单路径:Database > Sections > Vertical sections for plotting | 命令:EXTRACT SECTIONS FOR PLOT
  2. 定义剖面线:输入剖面起点和终点的 X、Y 坐标
  3. 设置剖面宽度和间距(如间距 50 米)
  4. 选择要提取的数据表:assay_comp(品位)、geology(岩性)
  5. 选择提取内容:钻孔轨迹、样品柱状图、岩性图案、品位折线图
  6. 输出为字符串文件(.str),自动保存在工作目录

Step 3.3 地质解译与数字化

  1. 菜单路径:Graphics > Open > String/DTM file,打开提取的剖面 .str 文件
  2. 在 Graphics 窗口中查看钻孔剖面,观察品位和岩性分布
  3. 菜单路径:Strings > Create > New segment | 命令:NEW SEGMENT
  4. 在剖面上数字化矿体边界线串:
    • 根据品位数据(如 Au > 0.3 g/t)和岩性特征圈定矿体
    • 为每个剖面创建独立的矿体边界线串
    • 注意:相邻剖面的线串应具有相似的形态和点位分布
  5. 保存数字化后的线串文件(如 ore_sections.str

Step 3.4 创建实体(三角剖分)

  1. 菜单路径:Solids > Create > Triangulate between segments | 命令:TRIANGULATE BETWEEN SEGMENTS
  2. 选择数字化后的矿体截面线串文件(ore_sections.str)
  3. 设置参数:
    • Object number:输入对象编号(如 1)
    • Trisolation number:输入三隔离体编号(如 1)
    • 确认线串方向一致(可用 Reverse segment 调整)
  4. 点击 Apply,Surpac 自动在相邻截面间缝合三角形
  5. 输出实体文件:orebody.str + orebody.dtm

Step 3.5 验证与修复实体

  1. 菜单路径:Solids > Edit > Validate | 命令:VALIDATE SOLID
  2. 选择刚创建的实体文件,检查是否有错误:
    • 开放边(open edges)
    • 反转法线(flipped normals)
    • 自相交(self-intersections)
    • 零面积三角形
  3. 如有错误,运行 Solids > Edit > Automatic mesh repair | 命令:AUTOMATIC MESH REPAIR
  4. 再次验证,直到无错误
  5. 运行 Solids > Edit > Optimise 减少冗余三角形
实体验证是必须的 未经验证的实体不能用于块体模型的约束。验证不通过的实体可能导致块体模型计算错误。

Step 3.6 实体与钻孔求交(可选验证)

  1. 菜单路径:Solids > Analysis > Intersect solids with drillholes
  2. 选择实体文件和钻孔数据库
  3. 查看实体边界处的品位数据,验证矿体圈定是否合理
阶段四:块体建模与品位估计(约 3-7 天)

Step 4.1 创建块体模型

  1. 菜单路径:Block model > Create > New block model | 命令:CREATE BLOCK MODEL
  2. 输入模型名称(如 project_bm
  3. 定义模型范围:
    • Origin:模型左下角坐标(X, Y, Z)
    • Extent:模型在 X/Y/Z 方向的总长度
    • Block size:块尺寸(如 10m x 10m x 5m)
  4. 建议将原点设为矿区左下角坐标向下取整,范围覆盖整个矿区

Step 4.2 添加属性

  1. 菜单路径:Block model > Edit > Create attribute
  2. 添加以下属性字段:
    • au(实数):金品位估计值
    • cu(实数):铜品位估计值
    • dens(实数):密度
    • zone(字符):矿化域分类
    • class(字符):矿/废石分类

Step 4.3 定义约束

  1. 菜单路径:Block model > Constraints > Add constraint | 命令:ADD CONSTRAINT
  2. 选择约束类型:
    • Solid:选择阶段三创建的实体文件(orebody.str),限定只在矿体内估计
    • DTM:用地形面限定地表以上不估计
    • Plane:用平面限定(如排除氧化带)
  3. 约束条件:块的质心在约束范围内即认为该块满足约束

Step 4.4 地统计学分析(变差函数)

  1. 菜单路径:Geostatistics > Variogram > Experimental variogram
  2. 选择数据源:assay_comp 表,目标字段(如 au_grade)
  3. 设置搜索参数:滞后距(lag distance)、滞后距数(number of lags)、容差角
  4. 分别计算主方向、次方向、垂直方向的实验变差函数
  5. 菜单路径:Geostatistics > Variogram > Model variogram
  6. 用球状(Spherical)、指数(Exponential)或高斯(Gaussian)模型拟合实验变差函数
  7. 记录拟合参数:块金值(Nugget)、基台值(Sill)、变程(Range)、各向异性比
变差函数是克里格估计的核心 变差函数质量直接决定品位估计的可靠性。如果实验变差函数不明确,可考虑使用反距离加权 (ID2) 作为替代方案。

Step 4.5 执行品位估计

以普通克里格 (Ordinary Kriging) 为例:

  1. 菜单路径:Block model > Estimate > Ordinary kriging | 命令:ORDINARY KRIGING
  2. 设置估计参数:
    • Data table:assay_comp
    • Data field:au_grade
    • Model attribute:au(将估计结果存入 au 属性)
    • Search ellipsoid:输入变差函数拟合得到的主轴/次轴/短轴长度和方向
    • Minimum / Maximum samples:最小/最大参与估计的样品数(如 Min=4, Max=12)
    • Discretisation:每个块内的离散化点数(如 4x4x4 = 64 点)
  3. 确认约束条件已激活(使用步骤 4.3 定义的实体约束)
  4. 点击 Apply 执行估计
  5. 对其他元素(如 Cu)重复上述步骤

Step 4.6 模型验证

  1. 菜单路径:Geostatistics > Validation > Swath plot
  2. 比较估计值与原始样品值在不同方向(X/Y/Z)的分布趋势
  3. 菜单路径:Geostatistics > Validation > Lilliefors test
  4. 检验估计值与样品值的分布一致性
  5. 如偏差过大,调整变差函数参数或搜索邻域设置后重新估计
阶段五:资源量报告与可视化(约 0.5-1 天)

Step 5.1 矿/废石分类

  1. 菜单路径:Block model > Edit > Ore/waste discrimination | 命令:ORE/WASTE DISCRIMINATION
  2. 设定边界品位(如 Au cutoff = 0.3 g/t)
  3. 创建 class 属性:高于边界品位为 “ore”,低于为 “waste”

Step 5.2 生成资源量报告

  1. 菜单路径:Block model > Report > Block model report | 命令:MODEL REPORT
  2. 选择报告范围:全部模型或按约束(实体)分类
  3. 选择分组字段(如按 class 分类统计矿/废石)
  4. 设置报告内容:
    • 块数、体积、吨位(需密度属性 dens)
    • 平均品位(加权平均)
    • 金属量(吨位 x 平均品位)
  5. 输出为文本报告文件(.not

Step 5.3 可视化

  1. 菜单路径:Block model > Display > Draw block model
  2. 在 Graphics 中查看块体模型的品位分布
  3. 菜单路径:Block model > Analysis > Isosurface
  4. 生成特定品位的等值面(如 Au = 1.0 g/t 的等值面)
  5. 结合实体模型和钻孔数据,在三维视图中综合展示建模结果
完整流程总结 数据准备 → 样品组合 → 实体建模(矿体圈定) → 块体建模(品位估计) → 资源量报告。其中数据质量和变差函数分析是成败关键,务必在每一步都进行充分验证。