GOCAD地质建模全流程:从数据加载到属性模拟的关键操作与避坑指南

GOCAD地质建模全流程:从数据加载到属性模拟的关键操作与避坑指南 简介GOCAD综合地质与储层建模软件操作手册是一份面向油藏工程师、地质建模人员和石油院校学生的系统学习资料。整个资源仅一个PDF文件压缩包大小约4.93MB下载方便、即下即用。手册以工作流程驱动为核心系统介绍了GOCAD的安装启动方法以及井数据、层数据、断层数据、地震数据的加载处理在此基础上详细演示了构造建模、三维地质模型网格建立、储层属性建模、网格粗化和油藏不确定性分析等关键流程。每一个模块均按照‘准备工作—操作流程—结果总结’的结构展开既有参数设置说明也有模型调整与结果分析指引特别适合初次接触GOCAD的用户跟着步骤逐步上手也能作为日常建模工作的案头速查工具。目前已有七百七十四人学习下载内容覆盖地质建模全流程可帮助读者快速掌握这套主流建模软件的核心操作提高实际项目中的建模效率。1. 打开GOCAD的第一步不是建模而是先让数据在流程里站对位置地质工程师第一次用 GOCAD手里通常有井位表、测井曲线、分层数据、断层解释点和地震数据这些数据格式各异坐标基准不同深度域还可能存在测量井深和垂直深度的混用。多数项目卡住的地方不是后面的构造建模或者属性插值而是在装载环节列映射错一位、深度域选错、斜井轨迹没做校正都会导致后期成果无法复用。GOCAD 与同类软件最大的差别在于它把构造建模和储层属性建模都做成了引导式工作流操作者只需要回答流程提问并填好参数但前提是能答对每一道题。这里把流程里的关键参数和踩坑位置按实际作业顺序梳理一遍适合刚接手建模项目、要在短时间内把 GOCAD 跑通的油藏工程师。2. GOCAD安装与License Server配置认证不过后面的流程全部空转GOCAD 的安装包由两部分组成主程序和 License 服务分开安装这一点和很多地质软件不太一样。gocad 怎么安装的问题里报错集中在 License 认证上典型的症状是主程序能装完但启动时提示无法连接许可服务或者控制台显示 checkout 失败。所以安装阶段的核心不是主程序而是 License Server 的配置。2.1 双安装包与License目录约定安装时先运行 EarthDecision-suite 的 Windows 安装程序再运行 Gocadlmd 的 License 服务端安装程序两个都装完再处理授权文件。实际操作中我一般按下面几步做先装 EarthDecision 套件装到默认路径 C:\Program Files\EarthDecision。再装 Gocadlmd同样使用默认路径。把 Gocad.lic 复制到 C:\Program Files\EarthDecision\Licenses 目录下。从开始菜单打开 License Server Configuration Utility进入 config services 页面。点击第二个 Browse 按钮选中刚才复制过去的 Gocad.lic。勾选 Start Server at Power Up 和 Use Service然后 Save Service重启计算机。第 5 步里“第二个 Browse”对应的是 License File 路径选择第一个 Browse 是 lmgrd 程序路径常规安装不需要动。lic 文件必须放在 EarthDecision 的 Licenses 目录下因为服务只扫描这个固定目录。把这两项勾选后License 会注册成 Windows 服务开机自动启动免去每次手动拉起服务的操作。装完后如果双击桌面图标长时间无响应先在服务管理器里确认 EarthDecision License Server 处于运行状态常见的失败原因就是服务没起来或 lic 文件路径仍指向安装包解压目录。提示License 服务启动后不要马上打开 GOCAD等几秒让守护进程完成端口监听否则第一次启动会报连接失败且有时需要重启一次系统才生效。2.2 新建工程时的单位与深度域选项启动 GOCAD 后选择 New project起名保存接着进入模块选择窗口直接 Select All 即可这一阶段不会影响模型数据本身。随后弹出的工程单位窗口才是关键它决定整个项目对坐标和深度的解释方式。平面上要选米还是英尺深度上同样要选单位地震数据如果涉及时间还要定时间单位是毫秒还是秒。深度方向有向下增大和向上增大两种约定国内探区几乎都用向下增大只有少数特殊工区会用向上。Z 值本身还区分是时间域还是深度域时间域的 Z 来自地震双程旅行时深度域的 Z 来自井和时深转换结果。单位选错一个视图里的模型会在垂直方向被放大 3.28 倍或者缩成 0.3048 倍而井分层和地震层位的深度对比会直接失配。这个窗口在流程里只出现一次建完工程后想改必须重开工程开工前想清楚比事后补救成本低得多。2.3 井数据加载直井与斜井的差异不只是菜单不同井数据加载是数据准备阶段工作量最大的一块直井和斜井的井位格式本身一样但 GOCAD 对两者的处理逻辑不同。直井只需要井口坐标和补心海拔就能确定空间位置斜井则必须先有轨迹再用井位去校正轨迹的空间基准。# 井位文本示例井名 补心海拔(KB) X Y 总井深 WELL-01 25.00 4385210.50 486321.80 3125.60 WELL-02 25.00 4385340.20 486152.40 2980.30 WELL-03 25.00 4385120.10 486410.70 3054.20文本里井深是沿井筒的测量井深而不是垂深加载时 KB 列对应补心海拔总井深用于限定井轨迹的终止位置。直井加载走 File Import objects Well data Locations from column-based File在列映射窗口里把井名、X、Y、KB、Total Depth 一一对应好选择创建新井即可。斜井加载顺序是先轨迹后井位。轨迹加载走 Well data (Path) Column-based File向导里提供三种轨迹格式X-Y-TVD-MD、X-Y-TVD、Inclination-Azimuth-MD。第三种最常见数据列依次是井斜角、方位角和测量井深前两种需要提前在外部算好垂深。加载轨迹时 X、Y、Z 三个列先赋 0 值这一步只是把轨迹形状读进来空间锚点随后由井位确定。井位加载时与直井的差异在于选择移动已有井Move existing ones关键列是 MDGOCAD 会依据井位坐标和补心海拔把整条轨迹移动到正确位置。如果单口井手动输入坐标可以省略后面的井位校正多口井批量加载时必须走两段式。2.4 分层、断层、地震数据的加载路径井相关的数据里测井曲线和分层是后续分层对比和属性建模的基础。测井曲线以 LAS 格式最常见加载路径是 Well data (Logs) LAS直接选文件确认即可GOCAD 会自动解析曲线名和深度单位。井分层数据用 Well data (Markers) Column-based File文本格式为井名、分层名、深度如果解释成果里带倾角和方位角向导里对应选 yes没有就选 NO配好列映射后加载。分层名的地质含义会在构造建模阶段同层序定义挂钩所以加载前最好确认分层名与层位名称一致否则后面分配时很难对应。层数据和断层数据的纯 XYZ 文本加载路径不同层位解释走 Horizon Interpretations PointsSets XYZ断层解释走 Fault Interpretations PointsSets XYZ。这两种数据往往来自地震解释数据量大加载时注意坐标单位要和工程设定一致。如果数据文件带表头或额外列改用 Column-based File 方式可以在 start at line 指定数据开始行跳过说明文字。层面和断层面文件若是从 RMS、Petrel 等第三方软件导出的在 Horizon Surfaces 和 Fault Surfaces 菜单下有对应格式入口同一套数据源经常要在这几个入口间试错哪个能读进去且坐标不变形就用哪个。地震数据加载时三维 SEG-Y 走 Seismic Data SEG-Y 3D as VoxetGOCAD 会读取卷的道头信息和振幅体加载进 Voxet 里进行三维显示与切片解释。二维测线走 SEG-Y 2D as Surface 或 SEG-Y 2D as SGrid区别在于 Surface 仅保留反射界面SGrid 保留整个二维网格体后者适合沿测线做属性切片。数据类型菜单路径关键选项井位Well data Locations from column-based File直井 Create new ones斜井 Move existing ones井轨迹Well data (Path) Column-based FileX-Y-TVD-MD / X-Y-TVD / Inclination-Azimuth-MD测井曲线Well data (Logs) LAS自动解析井分层Well data (Markers) Column-based File可选倾角、方位角层数据Horizon Interpretations PointsSets XYZ可用 Column-based File断层数据Fault Interpretations PointsSets XYZ注意坐标单位三维地震Seismic Data SEG-Y 3D as Voxet自动读道头二维地震Seismic Data SEG-Y 2D as Surface / SGrid区分界面与网格3. 构造建模工作流断层绑定、层序定义与层面构建构造建模在 GOCAD 里不是一个自由建模过程而是被封装成带向导的 Structural Modeling 流程。用户在主窗口左侧右键新建一个流程并命名后之后所有操作都在流程的引导下完成。这个设计的好处是把专家经验固化成了固定提问顺序但坏处也很明显每道题都答 yes 并不等于结果正确比如断层和井分层的对应关系就完全靠人为指定。3.1 建模前的数据整理井群组与地质特征拖放正式进入构造流程之前有两件事建议先做。第一件是把井数据建群组右键 Objects 里的图标选择 New Group起名后把井逐口 Add to Group。群组的意义在于流程里选择井集合时能一次选中不用每次重新勾选几十口井。第二件是给点、线、面等对象赋予地质特征把 Objects 下的构造建模数据拖到 Features Boundary 下的对应分类里如 Horizon、Fault、Well 等。这一步在数据量少时看不出价值数据多了以后流程向导读取的是特征分类而不是对象名分类不建立向导里看不到可用数据。3.2 地质层序定义地质层序是构造模型和属性模型的公共骨架。在 Resources 里的 Stratigraphic column 上右键新建点击 Populate Column with Horizon Features 图标运行GOCAD 会根据已有 Horizon 特征的上下位置自动排序生成一个叫 global 的层序。层序定义的本质是把目标区从顶到底的层位相对顺序锁死后面的井分层校核、层面框架搭建和网格分层都依赖这个顺序。定义错误时可以直接增删条目调整位置调整后流程里已分配的地层关系会同步刷新。3.3 构造建模主流程断层优先新建构造建模工作流后第一步选择深度域然后回答是否添加断层数据。这里选 yes 后进入断层数据管理界面左侧栏是所有断层对象右侧栏是需要参与建模的断层集合。把所有断层对象添加到右侧后最关键的一步是把井分层分配到对应断层上左侧选中某个井分层在右侧框选对应断层名点击分配图标。这个动作的含义是告诉 GOCAD该断点来自哪条断层的哪一盘后续断层面构建时这个井分层会作为硬约束控制断层面的通过位置。分配错误有两种常见情况一是断点不归属该断层但被分配进去断层面会在井点附近被拉扯出不自然的弯曲二是漏分配断层面在该井位置没有约束只能靠地震解释点控制可能出现解释性跳变。分配完成后点击下一步系统提示是否添加层数据同样方式把层位解释点和对应井分层分配好。随后是定义工区范围和是否应用地质层序两个提问选是并选择已建好的 global 层序。# 断层解释点数据示例X Y Z断层编号在文件名或另一列 4385100.20 486350.00 2860.50 4385240.10 486210.80 2700.30 4385390.50 486080.40 2555.60这类纯 XYZ 断点数据加载后需要手动指定属于哪条断层GOCAD 不会自动按空间邻近分组。断点数据导入后在三维视窗里旋转检查看同一条断层的点是否沿走向连续分布如果出现跨断层串点要回到 Fault Interpretations 里拆分对象。3.4 Apply Stratigraphic Column与层面构建井分层和断点都配置好后流程里运行 Apply Stratigraphic Column to wells选择井群组并勾选 show markers 和 show units逐井检查分层深度是否与层序位置一致。这一步在屏幕上显示每口井的层段颜色条能直接看出哪个层位被井分层切穿或缺失。构造面的构建依赖 DSIDiscrete Smooth Interpolation插值控制点来自地震解释点、井分层和断层约束。DSI 的参数里控制点的权重决定了离散点对最终面的影响强度权重越高面越贴近原始解释点光滑度参数控制面在控制点之间的过渡形态。实际操作中地震解释点密集的构造部位可以适当提高光滑度井点附近则需要保证过点所以井分层权重一般给高。断层面和层面的接触关系是构造建模里返工率最高的环节。层面遇到断层面时既要保证两侧的层位被错断又要保证断层面穿过后层面不出现自相交。GOCAD 流程里的处理方式是先建立断层面框架再让层面沿断层边界截断。构建完成后旋转检查每个断层两侧的层位错动方向是否一致如果同一断层两盘错动方向不同通常是断点分配阶段就有对象归属错误此时回头修改断层分配比在面上做局部修补更有效率。4. 三维网格与属性建模SGrid尺寸选择、插值算法与网格粗化构造模型完成并满足精度后下一步是建立覆于构造骨架之上的三维网格即 SGrid。GOCAD 的三维地质模型网格流程把构造面转换为网格的层面约束然后在层面之间划分网格单元。属性建模再以这些网格单元为实体逐层、逐相地填充孔隙度、渗透率、含油饱和度等连续变量。4.1 SGrid的尺寸选择逻辑新建三维地质模型网格流程后GOCAD 会要求选择构造模型作为骨架来源然后定义 I、J、K 三个方向的网格数。I、J 是平面方向K 是垂向分层方向。平面网格尺寸通常按工区面积与目标砂体尺度权衡井距大的区域网格太细没有意义反而徒增计算量河道砂体这类窄条带目标则要求平面网格不能粗于砂体宽度的一半。垂向网格划分有两种思路。一种是在层序的每个小层内等分 K 值简单直接但容易产生长宽比过大的扁平网格影响数值稳定另一种是按沉积单元厚度做不等距划分薄层处加密厚层处放宽。SGrid 生成后要检查单元正交性变形严重的位置通常出现在断层附近和尖灭带这两处网格会在后续属性模拟时拉长变异性函数的方向。4.2 属性建模流程与常用算法属性建模在独立的新建流程里完成第一步选择参与计算的 SGrid第二步把测井曲线分配到网格节点第三步定义相模型或直接做属性模拟。实际项目中极少直接对属性做全局插值而是先建相模型再在相带内分别模拟属性即相控建模。因为不同相的物性分布差异极大砂岩和泥岩的孔隙度均值可以差一个量级混在一起模拟会把直方图尾部拉长。算法选择上孔隙度和渗透率这类连续变量常用序贯高斯模拟它假定变量服从高斯分布通过变差函数控制空间相关性输出多个等概率实现。离散变量如岩相则用序贯指示模拟每个相类别单独训练指示变差函数。地震属性参与约束时在模拟前做协克里金分析把地震波阻抗或振幅作为外部漂移变量纳入估计这样模拟结果在井间区域会跟随地震趋势变化。算法适用变量输出关键参数序贯高斯模拟孔隙度、渗透率、饱和度连续值变差函数、直方图、标准差序贯指示模拟岩相、流体相离散类别各相比例、指示变差函数协克里金有地震趋势的连续属性连续值协变量、交叉变差函数截断高斯模拟有序列关系的相离散类别截断阈值参数设置时最常见的错误是直接用默认变差函数。变差函数的变程决定属性在空间上相关的距离变程太小模拟结果表现为胡椒盐状的随机噪声变程太大井间会出现过度平滑的透镜体。合理的做法是分相位分组计算实验变差函数沿主方向、次方向和垂向分别拟合再用 3D 视图对比模拟实现与已知井点取值是否一致。4.3 网格粗化从地质网格到数模网格属性模型输出后通常需要粗化因为油藏数值模拟的网格量级远小于地质建模。粗化不是简单抽稀而是把细网格单元上的属性聚合成粗网格上的等价属性同时尽量保留流动特征。渗透率的粗化算法选择比孔隙度敏感得多。孔隙度做算术平均基本够用渗透率的算术平均会高估高渗端的连通能力几何平均适用于随机分布且无方向性的介质调和平均对低渗端敏感适合薄互层中沿垂向流动的场景。实际项目里常做上标平均指数取 0.5 到 1 之间对非均质性中等的地层折中效果好。粗化后要对比粗化前后的渗透率累计分布曲线如果 P50 或均值偏移超过 10%说明粗化网格在垂向或平面上丢失了关键隔层信息需要加厚薄层处的 K 向剖分或者调整粗化窗口。5. 断层-井分层绑定检查一个被跳过但值得养成的习惯构造建模流程里把井分层分配到对应断层那一步看起来只是点几下鼠标却是整个构造模型误差传播的源头。井分层数据来自地质师的断点识别GOCAD 并不会自动判断该断点属于哪条断层只要用户选择的对象名对不上断层面就会被拉偏。这个错误在流程早期几乎不可见直到层面构建完才发现某个断层面在井点处产生局部隆起或凹陷。检查这个绑定的直接方法是逐个核对井分层与断层面的空间关系。在三维视窗里显示断层面对象再叠加井轨迹和 Well Markers放大到每口井的断点深度位置观察断层面是否在该深度穿过井轨迹并且两侧层面的错断方向是否与断点解释一致。如果断层面在平面上位于井点水平距离 50 米以上而断点又标定在该井上基本可以肯定是断层分配或断层面插值控制出了问题。第二个验证手段是沿断层面做剖面显示。把显示模式切到边线模式旋转到断层走向方向查看断层面附近网格是否被切碎层面与断层面的相交线上是否存在锯齿状跳跃。锯齿通常意味着断层面有两个相近但不重合的片断同时约束了层面需要回到 Fault Surfaces 里合并或删除冗余断面。养成在构造建模流程结束后、进入 SGrid 生成前统一检查一次“断点深度 vs 断层面深度”的习惯。对比方式很简单在井对象上打开 Marker 列表记下每个断点的测深转到井轨迹剖面视图测量断层面在该井轨迹上的交点深度两者差值应控制在单个网格垂向尺度内。差值偏大的井点优先去检查分配步骤里是否把分层分到了相邻断层上而不是直接调层面以迁就井点。把断点深度和断层面在剖面上对齐后再回到层面边界状态值基本就能定位到问题所在。本文还有配套的精品资源点击获取