关于 gprpy
gprpy 是使用 GPRPy 1.0.14 进行探地雷达(GPR)处理的技能,面向研究人员,强调可审计的数据处理与谨慎解释。它提供可复现的处理流程,并保留原始数据及处理依据。
主要功能
- 01读取支持的 MALA、Sensors & Software 和 GSSI 数据
- 02按需应用处理操作
- 03保留原始数组和中间数组
- 04记录参数、坐标轴和源文件校验和
- 05导出处理结果与溯源信息
适用场景
- 01在保留原始振幅的同时处理雷达剖面
- 02记录处理选择以便复现
- 03生成有记录依据的时间或深度结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ steadfastasart/ geoscience-skills --skill gprpy安装后在 Claude Code 中输入/gprpy确认已加载。
附带文件references/processing_steps.mdscripts/process_gpr.py
详细介绍
可审计的 GPR 处理
GPRPy 使用形状为 (samples, traces) 的数组。分配物理坐标轴前,请先检查采集元数据:道索引不代表距离,雷达厂商的 SEG-Y 间隔字段可能需要有文档记录的时间尺度。明确保留未知单位。不要从通用材料查找表获取场地速度并将其作为实测值。
读取和选择操作
GPRPy 1.0.14 原生支持读取成对的 MALA .rad/.rd3、Sensors & Software .DT1/.HD、GSSI .DZT 以及其文档所述的 BSQ 输入。原生 .gpr 文件是 Python pickle 会话,而不是 MALA 交换格式;只读取可信会话。GPRPy 不原生读取或导出 SEG-Y。
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) 接受道数。背景扣除可能会移除真实的连续反射体。时间幂次增益会改变振幅缩放,并非经过校准的衰减校正。
保留原始数组,并记录每项已执行的操作。窗口边缘行为和有效的内部支持范围需要特别注意;请参阅
处理参考。
setVelocity(velocity) 使用 m/ns,并计算零偏移恒定速度情景下的
depth = twtt * velocity / 2;它不会估算速度或迁移反射体。请先确定零时刻和天线偏移假设。除任何假设的深度外,还要保留原始双程时间,并说明支持该速度及其不确定性的独立测量。
可复现的辅助工具
处理辅助工具 支持经过测试的 .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
相对于已安装的 skill 目录解析路径。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= 关键字。这些高级分支需要各自的验收检查。
已验证路径使用固定的 GPRPy 源版本 1.0.14、原生生成的 MALA 字节,以及一条获得许可的实测 SEG-Y 测线。现场测线的时间缩放和坐标单位尚未明确,因此仅声明按样本索引处理。合成计时和脉冲深度检查与现场精度验证相互独立。有关已测试的提交版本和依赖项区别,请参阅源代码安装和限制。