SuperAPI AI 工具集

mtpy

数据与分析

查看项目

更新于 10-16 02:01

技能介绍

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) # 仅构造不会加载文件 frequency_hz = station.frequency z = station.Z.z # 复数张量,形状 (frequency, 2, 2) sigma_z = station.Z.z_error # 标准差,不是 EDI 方差 rho = station.Z.resistivity # 欧姆·米 phase = station.Z.phase # 度,带符号的分量相位

需从采集元数据确认阻抗单位、时间约定、坐标轴、通道方向、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 约定下,yx 相位接近 -135 度可能是有效的。

处理空值、方差或导出时,需阅读 EDI 约定与缺失情况。mt-metadata 可能将缺失的 EDI 值表示为零,因此在计算质量标记或旋转前应检查源掩码。缺失的不确定度并非精确观测。

QC、旋转与导出

在确认 mV/km/nT、正时间约定与 north/east/down 后,对直接阻抗 EDI 使用 QC 辅助脚本:

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 方法名。