ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Landmark培训操作手册详解:OpenWorks工区、SeisWorks解释与TDQ数据管理实战

Landmark培训操作手册详解:OpenWorks工区、SeisWorks解释与TDQ数据管理实战 简介这份资源是Landmark软件培训操作手册的详解版文档面向石油地质勘探领域的初学者与在职技术人员帮助其系统掌握Landmark软件的数据加载、解释与合成记录制作流程。压缩包内仅含1个doc文件大小约7.88MB内容按数据加载GeoDataLoading、常规解释流程SeisWorks、TDQ、ZmapPlus和合成记录制作Syntool三大模块编排目录层级清晰便于按需检索。文档详细拆解了建立投影系统与OpenWorks数据库、加载钻井平面位置与地质分层、时深转换、速度模型构建、子波提取及应用Checkshot等关键操作并配有格式文件定义与基准面调整等实务要点。目前已有98人学习适合需要对照手册逐步上手、查漏补缺的地质解释人员参考。1. 从一份“操作手册”说起Landmark 培训到底在训什么很多人第一次拿到“landmark培训操作手册详解版.doc”这类文档会下意识把它当成一份软件说明书翻两页就丢到一边。但真正在勘探开发一线待过的人知道Landmark 这套系统从来不是“装好就能用”的工具它是一整套地震解释与地质建模的工作流。手册里那些看似琐碎的步骤——建工区、加载数据、层位标定、断层组合——每一步都对应着后面解释结果的可靠性。换句话说培训训的不是点哪个按钮而是让你理解数据在 OpenWorks、SeisWorks、ZmapPlus 之间怎么流转以及 TDQ 这类工区数据库在背后怎么组织。这份手册的价值在于它把散落在各个模块里的操作串成了一条线。新手照着走能跑通一个完整工区熟手则能从中看到参数设置的边界条件。本文不逐页翻译手册而是把手册里最常被问到的几个环节拆开工区建立与数据加载、SeisWorks 里的层位解释、TDQ 查询与数据管理、ZmapPlus 成图与输出。每一块都给出可复现的命令或操作路径并说明参数为什么这么设。2. OpenWorks 工区建立与数据加载的完整路径2.1 工区目录结构与 TDQ 的关系OpenWorks 的工区不是随便建个文件夹就能用的。一个标准工区目录下通常包含owdb、data、tmp几个子目录其中owdb存放的是 TDQTechnical Data Query能识别的元数据。TDQ 本质上是一套查询接口它不直接读 SEG-Y 文件而是读 OpenWorks 数据库里登记过的数据索引。这意味着如果你只把 SEG-Y 拷进data目录而不做登记SeisWorks 里根本看不到这条测线。常见做法是先用 OpenWorks 的owdir命令确认工区根目录再检查owdb是否已经初始化。下面这段 bash 用来快速核对工区状态# 设置 OpenWorks 环境变量指向工区根目录 export OWROOT/data/owproj/Block_A # 列出工区数据库中的数据集摘要 owdir -list $OWROOT/owdb # 查看 TDQ 服务是否可达 tdq_stat -project Block_A -user $USER逻辑说明OWROOT是 OpenWorks 所有命令的基准路径不设这个变量后续owdir和tdq_stat都会报“project not found”。owdir -list输出的是数据库里已登记的数据集名称和类型如果这里为空说明工区虽然建了但还没加载任何数据。tdq_stat用来确认 TDQ 后台进程是否在运行很多“SeisWorks 打不开工区”的问题其实是 TDQ 服务没起来。参数上-project后面跟的是工区名不是目录名两者可以不同但建议保持一致省得后期混乱。2.2 用 SeisWorks 加载 SEG-Y 的关键参数SeisWorks 加载 SEG-Y 时手册里通常会给一张参数表。真正容易出错的是道头字映射和采样率。下面是一个典型的加载命令示例不同版本命令名可能略有差异但参数逻辑一致# 将 SEG-Y 加载到 OpenWorks 工区并登记到 TDQ seisload -project Block_A \ -file /data/segy/line_001.sgy \ -format SEGY \ -header_bytes 3600 \ -sample_rate 2 \ -coord_scalar 1 \ -tdq_register yes逻辑说明-header_bytes 3600表示跳过 SEG-Y 文件头直接读道头这个值设错会导致所有道头解析偏移。-sample_rate 2单位是毫秒对应 2ms 采样如果实际数据是 4ms 而这里写 2后面层位标定会对不上。-coord_scalar 1处理坐标缩放因子很多老数据坐标是英尺而工区是米这里不调就会导致测线位置漂移。-tdq_register yes是让加载完的数据自动登记到 TDQ省去手动tdq_add的步骤。注意加载完成后不要急着在 SeisWorks 里解释先用tdq_query查一下数据范围确认 CDP 号和线号没有反转。2.3 数据加载后的完整性检查加载完一条测线后用 TDQ 查询做一次快速校验-- 查询工区内所有地震数据的线号和 CDP 范围 SELECT line_name, MIN(cdp) AS min_cdp, MAX(cdp) AS max_cdp, COUNT(*) AS trace_count FROM tdq_seismic_index WHERE project_name Block_A GROUP BY line_name ORDER BY line_name;这个查询返回每条线的 CDP 起止和道数。如果某条线的trace_count明显偏少说明加载时丢道了常见原因是 SEG-Y 里混有坏道而加载命令没加-skip_bad_traces。另外min_cdp和max_cdp如果和采集报告对不上优先检查道头字映射里的 CDP 字段偏移。3. SeisWorks 层位解释与断层组合的操作细节3.1 层位标定从合成记录到时深关系层位解释不是上来就追层先要做标定。SeisWorks 里标定的核心是合成记录与井旁地震道的匹配。手册里一般会写“加载 checkshot 和声波曲线”但具体操作路径是在 OpenWorks 里把井的checkshot和sonic曲线登记到 TDQ然后在 SeisWorks 的Well Tie模块里选井、选地震线、生成合成道。关键参数是子波频率和相位。常见做法是先用 Ricker 子波主频取地震数据优势频带的中值比如数据频带 10-60Hz主频就取 30Hz 左右。相位先试零相位如果相关系数低于 0.6再试 90 度相位。相关系数在Well Tie面板里直接显示不用自己算。3.2 层位追踪的三种模式与适用场景SeisWorks 提供手动、半自动、自动三种追踪模式。手册里通常只写“点击追踪”但实际选哪种模式取决于资料品质模式适用条件关键参数风险手动断层发育、信噪比低无效率低但最可靠半自动同相轴连续、断层少追踪步长、波形相似度阈值过断层时容易串层自动大范围稳定沉积种子点密度、最大跳跃道数遇到振幅突变会跑飞我一般会先用自动模式跑一遍看整体趋势然后在断层附近切回手动。半自动的“波形相似度阈值”默认 0.8资料差的时候调到 0.6 能追下去但事后必须人工检查。3.3 断层组合与 TDQ 中的断层数据管理断层解释完不是画几条线就完了要在 TDQ 里把断层作为独立对象管理。SeisWorks 里创建的断层会自动写入 OpenWorks 的fault表但断层之间的交切关系需要手动指定。下面这个 TDQ 查询用来检查断层是否闭合-- 查询断层名称、段数和端点坐标判断是否闭合 SELECT fault_name, COUNT(*) AS segment_count, MIN(start_x) AS min_x, MAX(end_x) AS max_x FROM tdq_fault_segments WHERE project_name Block_A GROUP BY fault_name HAVING COUNT(*) 1;如果segment_count大于 1 但端点坐标没有重叠说明断层段之间没接上在 ZmapPlus 成图时会出现断层线断开。处理办法是在 SeisWorks 的Fault Editor里用Join命令把相邻段合并合并后再重新登记到 TDQ。4. ZmapPlus 成图与 TDQ 查询的联动4.1 从 TDQ 提取层位数据到 ZmapPlusZmapPlus 不直接读 SeisWorks 的层位文件它通过 TDQ 查询拿数据。标准流程是先在 TDQ 里把层位解释点导出成 ZmapPlus 能识别的格式再在 ZmapPlus 里做网格化。下面是一个导出命令# 从 TDQ 导出层位解释点到 ZmapPlus 格式 tdq_export -project Block_A \ -query SELECT x, y, time FROM tdq_horizon_picks WHERE horizon_nameH1 \ -format zmap \ -output /data/zmap/H1_picks.dat逻辑说明-query里直接写 SQL字段顺序必须是 x、y、z这里 z 是时间域。-format zmap输出的是 ZmapPlus 的 ASCII 格式每行一个点。如果层位点特别多超过 50 万建议加-batch 10000分批导出避免内存溢出。4.2 网格化参数收敛半径与平滑迭代ZmapPlus 网格化的核心参数是收敛半径和迭代次数。收敛半径一般取数据点平均间距的 1.5 到 2 倍。如果半径太小网格会出现“牛眼”太大则过度平滑丢掉小断层。平滑迭代次数默认 3 次资料差的时候可以加到 5 次但超过 5 次会明显压制构造幅度。下面是一个 ZmapPlus 网格化脚本片段ZmapPlus 支持命令行批处理# ZmapPlus 批处理网格化 zmap -batch EOF grid_method convergent convergence_radius 500 smoothing_iterations 3 input_file /data/zmap/H1_picks.dat output_grid /data/zmap/H1_grid.dat EOF参数convergence_radius 500单位与工区坐标一致如果工区是米500 米大约对应 2 倍点距。smoothing_iterations 3是经验值断层附近建议降到 1 或 2保留断崖。4.3 成图输出与 TDQ 回写网格化完成后ZmapPlus 生成的等值线图可以导出为 CGM 或 PDF。但更重要的是把网格数据回写到 TDQ这样其他模块比如属性提取才能用。回写命令# 将 ZmapPlus 网格回写到 TDQ tdq_import -project Block_A \ -table tdq_horizon_grid \ -file /data/zmap/H1_grid.dat \ -format zmap_grid \ -horizon H1回写后用tdq_query确认网格范围与原始解释点范围一致。如果网格边界比解释点范围小了一圈说明网格化时收敛半径设大了边缘点被忽略。5. 培训手册里不会写的几个排错技巧5.1 TDQ 查询超时的处理顺序TDQ 查询超时是培训后最常遇到的问题。手册里不会写但实际工作中几乎每周都会碰到。处理顺序是先看tdq_stat确认服务进程是否正常再查owdb目录的磁盘空间最后检查查询语句是否命中了未建索引的字段。如果tdq_stat显示进程在但查询依然超时大概率是tdq_seismic_index表太大而没分区。临时办法是在查询里加WHERE line_name xxx缩小范围长期办法是让管理员按线号做分区。5.2 SeisWorks 显示异常与显卡驱动的关系SeisWorks 在某些 Linux 工作站上会出现层位线显示不全或颜色错乱很多人以为是数据问题其实是 OpenGL 驱动版本不匹配。快速验证方法是换一台机器打开同一个工区如果显示正常就是本机驱动问题。常见做法是回退到显卡厂商提供的长期支持版驱动而不是用系统自带的通用驱动。5.3 用 TDQ 做批量数据质量检查培训时一般只教单条测线的检查但实际工区有几十条线。下面这个查询可以一次性列出所有线中道数异常的比例-- 找出道数低于平均道数 80% 的测线 SELECT line_name, trace_count, ROUND(trace_count * 100.0 / AVG(trace_count) OVER (), 1) AS pct_of_avg FROM ( SELECT line_name, COUNT(*) AS trace_count FROM tdq_seismic_index WHERE project_name Block_A GROUP BY line_name ) t WHERE trace_count 0.8 * (SELECT AVG(trace_count) FROM ( SELECT COUNT(*) AS trace_count FROM tdq_seismic_index WHERE project_name Block_A GROUP BY line_name ) x);这个查询用窗口函数算出每条线的道数占平均值的百分比筛出低于 80% 的线。这些线要么加载时丢道要么采集本身有问题需要优先复查。把这条查询保存成 TDQ 的常用脚本每次加载新数据后跑一遍比人工翻手册快得多。本文还有配套的精品资源点击获取
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进