mcpField
M
mtpy

mtpy

github.com/steadfastasart数据与数据库7356 次安装6 周前更新
代码仓库

关于 mtpy

mtpy 是使用 MTpy-v2 分析大地电磁传递函数的技能,面向地球物理从业者。它协助检查 EDI 数据、误差和约定,并强调诊断结果并非地质结论。

主要功能

  1. 01读取 EDI 测站数据与阻抗张量
  2. 02检查视电阻率、误差和频率
  3. 03导出包含缺失情况及诊断标记的分量
  4. 04旋转完整张量与方差
  5. 05写入并重新读取 EDI 文件

适用场景

  1. 01解释前审查阻抗张量数据
  2. 02生成附带溯源记录的质控表
  3. 03检查旋转或导出的 EDI 数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/steadfastasart/geoscience-skills --skill mtpy

安装后在 Claude Code 中输入/mtpy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
edi_format.md
plotting.md
scripts/
mt_analysis.py

详细介绍

MTpy-v2:传递函数分析

安装 mtpy-v2 发行包,导入名称为 mtpy。旧版 mtpy 发行包的 API 不同;不要在同一环境中同时安装两者。 以下操作使用 MTpy-v2 2.1.4 和 mt-metadata 1.0.10 执行。

读取并确定约定

from mtpy import MT

station = MT("station.edi")
station.read(get_elevation=False)  # constructor alone does not load the file
frequency_hz = station.frequency
z = station.Z.z                   # complex tensor, shape (frequency, 2, 2)
sigma_z = station.Z.z_error       # standard deviation, not EDI variance
rho = station.Z.resistivity       # ohm m
phase = station.Z.phase           # degrees, signed component phases

根据采集元数据确认阻抗单位、时间约定、坐标轴、通道方向、ZROT、 水平 CRS 和高程基准。EDI 的 UNITS 字段可能描述的是距离,而非阻抗。MT 单位为 mV/km/nT; 对应的 E/H 阻抗(单位为欧姆)需乘以 mu0 * 1000。 对于 MT 单位,视电阻率为 0.2 * abs(z)**2 / frequency_hz。 在确立合理的二维走向坐标系之前,不要将 xy 和 yx 称为 TE/TM。 在 NED 坐标系下,接近 -135 度的 yx 相位可能是合理的。

处理空值、方差或导出时,请阅读EDI 约定与缺失值。mt-metadata 可能会将缺失的 EDI 值表示为零,因此在计算质量标记或进行旋转之前,请检查源数据掩码。缺失的不确定度不代表精确观测。

质量控制、旋转与导出

确认单位为 mV/km/nT、时间约定为正向且坐标方向为北/东/下之后,对直接阻抗 EDI 使用质量控制辅助工具:

python scripts/mt_analysis.py station.edi --output-dir results \
  --impedance-units mt --sign-convention + --plot

请根据此技能目录解析脚本路径。该脚本会导出所有频率和全部四个分量,并附带缺失值、不确定度和诊断标记,另生成一个 JSON 溯源文件。脚本会重新打开其 CSV 文件,并拒绝覆盖已有输出文件。默认的 50% 相对误差阈值是一个记录在案的诊断选择;请在查看目标解释结果之前确定适用于具体任务的标准。

也可使用 --rotation-deg 30 执行额外的顺时针旋转;这要求张量和方差均完整。它会叠加到原始方位上,而非估计绝对走向。经过测试的直接库调用方式为 station.rotate(30, inplace=True);其默认的原位形式返回 None。边际误差传播无法提供完整的协方差模型。

对于完整数据,可使用 station.write(fn="copy.edi") 写入文件,然后重新读取坐标、旋转和张量。原生 EDI 写入器会将数值零映射为 EMPTY 占位值;如果物理零值或缺失分量很重要,请保留原始文件,并另存一份能保留掩码信息的 CSV。仅在需要图表时,才阅读响应绘图。

解释与验证

在进行维度分析之前,先比较张量分量、不确定度、相位行为和频率覆盖范围。相位张量偏斜度是一种受噪声和采样影响的诊断指标,并非普遍适用的三维地质通过/未通过测试。没有独立依据时,不要自动进行走向或静态位移校正。准备 ModEM/Occam 输入与运行已安装的求解器是两件不同的事。

该代码库的近地表工作流会检查一个源自野外数据的上游 EDI 样本、独立张量代数、合成响应和输出回读。它并不验证原始时间序列估计、野外反演或地质解释的唯一性。其他格式和测区集合,请参阅与已安装版本对应的 MTpy-v2 API;不要改用旧版 v1 的方法名称。

评论

支持 Markdown