SuperAPI AI 工具集

gprpy

数据与分析

查看项目

更新于 10-16 02:02

技能介绍

用途

GPRPy 用于读取和处理探地雷达(GPR)剖面数据。它面向以数组形式组织的雷达数据,数组形状为(采样点,道)。该工具强调可审计的处理流程:在赋予物理轴之前,应先检查采集元数据,因为道索引不等于距离,雷达厂商的 SEG-Y 间隔字段可能需要记录时间尺度。未知单位应显式保留,不应从通用材料查找表中获取场地速度并当作实测值呈现。

主要能力

数据读取

GPRPy 1.0.14 原生读取成对的 MALA .rad/.rd3、Sensors & Software .DT1/.HD、GSSI .DZT 以及其文档化的 BSQ 输入。原生 .gpr 文件是 Python pickle 会话,不是 MALA 交换格式,只应读取可信会话。GPRPy 不原生读取或导出 SEG-Y。

处理操作

常用操作包括:

  • dewow(window):去低频,参数为采样点数,不是纳秒。
  • agcGain(window):自动增益,参数为采样点数。
  • remMeanTrace(ntraces):背景去除,参数为道数。

背景去除可能移除真实的连续反射体。时间功率增益改变振幅缩放,不是校准的衰减校正。应保留原始数组并记录每个应用的操作。窗口边缘行为和有效内部支撑需要特别注意。

速度与深度

setVelocity(velocity) 使用 m/ns 单位,计算零偏移恒定速度场景 depth = twtt * velocity / 2;它不估计速度,也不偏移反射体。应先解决时间零点和天线偏移假设。保留原生双程时,同时保留任何假设深度,并说明哪些独立测量支持速度及其不确定性。

可复现辅助脚本

处理辅助脚本 scripts/process_gpr.py 支持经过测试的 .rad/.rd3 和 .sgy/.segy 路径。后者在真正的 GPRPy 处理之前显式使用 segyio。它写出 profile.npz 和 processing.json 并读回;NPZ 加载使用 allow_pickle=False。输出包括原始振幅、中间数组、最终振幅、原始采样/道索引、可用的物理轴、源校验和、参数和选定的编码头字段。新的输出目录可防止静默替换先前结果。

python scripts/process_gpr.py profile.rad --metadata sampling.json \
  --output processed --dewow-samples 64

路径应相对于已安装的技能目录解析。sampling.json 包含 source_note、sample_interval_ns、time_origin_ns、trace_spacing_m、profile_origin_m、horizontal_crs 和 vertical_reference。未知时间或间距使用 JSON null;在 source_note 中解释来源。均匀物理采样要求有限原点和正间隔。不规则位置需要单独验证的几何路径;不要用虚构的规则线替换它们。

仅当已知非负物理时间时才提供 --gain-power。仅当明确标记为零偏移恒定速度深度场景时才提供 --velocity-m-ns。当时间校准未解决时,两者都会被拒绝。默认不启用任何处理步骤。辅助脚本在遇到缺失/非有限振幅、不支持的格式、非活动 SEG-Y 道标志、可变道采样或请求的导出失败时会失败,而不是将部分工作报告为成功。

其他 API 与验证边界

绘图使用 showProfile() 或 printProfile(...);两者都不接受先前文档化的 ax= 导出模式。GPRPy 1.0.14 没有 bandpassFilter、exportASCII、exportSEGY 或 gprpyCMP API。其 CMP/WARR 类为 gprpyCW;使用其叠加振幅方法前应查阅已安装源代码。地形校正使用 topoCorrect(topofile, delimiter=','),需在单独选择速度之后,而不是使用 velocity= 关键字。这些高级分支需要各自的验收检查。

使用方式

基本用法示例:

import gprpy.gprpy as gp

profile = gp.gprpyProfile()
profile.importdata('profile.rad')  # requires matching profile.rd3
raw = profile.data.copy()
profile.dewow(window=64)  # argument is sample count, not ns

选择操作以回答用户的问题。dewow(window) 和 agcGain(window) 接受采样点数;remMeanTrace(ntraces) 接受道数。

适用场景

适用于需要对探地雷达剖面进行可审计处理的场景,包括基于采样点的去低频、背景去除、可审计增益、时间/深度场景分析等。适合需要保留原始数据、记录处理步骤并明确物理假设的研究或工程分析。

限制

  • GPRPy 不原生读取或导出 SEG-Y。
  • 原生 .gpr 文件是 Python pickle 会话,只应读取可信会话。
  • setVelocity(velocity) 不估计速度,也不偏移反射体。
  • 背景去除可能移除真实的连续反射体。
  • 时间功率增益不是校准的衰减校正。
  • GPRPy 1.0.14 没有 bandpassFilter、exportASCII、exportSEGY 或 gprpyCMP API。
  • 绘图函数不接受 ax= 导出模式。
  • 地形校正使用 topoCorrect(topofile, delimiter=','),不是 velocity= 关键字。
  • 经过检查的路径使用固定 GPRPy 源版本 1.0.14、原生生成的 MALA 字节和一条有许可的观测 SEG-Y 线。现场线的时间缩放和坐标单位仍未解决,因此仅声称基于采样索引的处理。合成计时和脉冲深度检查与现场精度分开。