mtpy について
mtpyは、MTpy-v2で電磁探査の伝達関数を分析するスキルです。地球物理の実務者がEDIデータ、誤差、規約を確認できるよう支援し、診断を地質学的結論と同一視しません。
主な機能
- 01EDI測点データとインピーダンステンソルの読み込み
- 02見掛比抵抗、誤差、周波数の確認
- 03欠損情報と診断フラグ付き成分の出力
- 04完全なテンソルと分散の回転
- 05EDIファイルの書き込みと再読み込み
活用シーン
- 01解釈前のインピーダンステンソルデータの確認
- 02来歴記録付きQC表の作成
- 03回転または出力したEDIデータの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ steadfastasart/ geoscience-skills --skill mtpyインストール後、Claude Code で/mtpyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/edi_format.mdplotting.mdscripts/mt_analysis.py詳細
MTpy-v2:伝達関数解析
mtpy としてインポートする mtpy-v2 ディストリビューションをインストールしてください。旧バージョンの 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 です。
正当な 2D 走向座標系を確立するまでは、xy と yx を TE/TM と呼ばないでください。NED では、-135 度に近い yx 位相が有効な場合があります。
空値、分散またはエクスポートを扱う場合は、EDI の規約と欠損値を確認してください。mt-metadata は欠損 EDI 値をゼロとして表現することがあるため、品質フラグの計算や回転の前に元データのマスクを調べてください。欠損している不確実性は、誤差のない観測値を意味しません。
QC、回転、エクスポート
mV/km/nT、正の時間規約、北/東/下を確認したうえで、直接インピーダンス EDIにはQC ヘルパーを使用してください。
python scripts/mt_analysis.py station.edi --output-dir results \
--impedance-units mt --sign-convention + --plot
このスキルディレクトリを基準にスクリプトのパスを解決してください。このスクリプトは、欠損値、不確実性、診断フラグとともに、すべての周波数と 4 つの成分すべてをエクスポートし、さらに JSON のプロベナンスファイルを出力します。CSV を再度開いて確認し、既存の出力ファイルがある場合は処理を拒否します。デフォルトの相対誤差 50% というしきい値は、記録された診断上の選択です。目的の解釈を確認する前に、タスクに応じた基準を選択してください。
追加の時計回り回転には --rotation-deg 30 を使用できます。完全なテンソルと分散が必要です。この回転は元の向きに加算され、絶対的な走向の推定値ではありません。テスト済みの直接的なライブラリ相当処理は station.rotate(30, inplace=True) です。このメソッドは、デフォルトのインプレース形式では None を返します。誤差の周辺伝播では、完全な共分散モデルは得られません。
完全なデータについては、station.write(fn="copy.edi") で書き込み、その後、座標、回転、テンソルを読み戻して確認してください。標準 EDI ライターは数値のゼロを EMPTY センチネルに変換します。物理的なゼロや欠損成分が重要な場合は、元データと、欠損マスクを考慮した別個の CSV を保持してください。図が必要な場合にのみ、応答のプロットを確認してください。
解釈と検証
次元解析の前に、テンソル成分、不確実性、位相の振る舞い、周波数範囲を比較してください。位相テンソルのスキューは、ノイズやサンプリングの影響を受ける診断値であり、3D 地質に対する普遍的な合否判定ではありません。独立した根拠なしに、自動走向補正やスタティックシフト補正を適用しないでください。ModEM/Occam 入力の準備は、インストール済みソルバーの実行とは別の作業です。
このリポジトリの浅部向けワークフローでは、フィールドから導出された上流 EDI サンプル、独立したテンソル代数、合成応答、出力の読み戻しを確認します。生の時系列推定、フィールド反転解析、地質学的な一意性を確立するものではありません。他の形式や測線コレクションについては、インストール済みバージョンの MTpy-v2 API を参照してください。旧 v1 のメソッド名で代用しないでください。