petropy について
petropy は PetroPy 0.1.6 で地層評価を行うスキルで、坑井ログのモデル実行と検証に携わる地球科学者向けです。入力カーブ、深度基準、較正パラメーター、結果の整合性チェックを扱います。
主な機能
- 01カーブ名と単位の検証
- 02深度と評価区間の確認
- 03流体・多鉱物モデルの実行
- 04体積閉合と物理範囲の確認
- 05LAS とパラメーター記録の出力
活用シーン
- 01レビュー済み設定で坑井ログの LAS ファイルを処理
- 02地層評価結果の体積閉合を確認
- 03モデルパラメーターと入力ファイルの由来を追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ steadfastasart/ geoscience-skills --skill petropyインストール後、Claude Code で/petropyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/calculations.mdexample_config.jsonfluid_properties.mdscripts/formation_evaluation.py詳細
設定済みの PetroPy 地層評価
PetroPy 0.1.6 では、Log.fluid_properties() の後に
Log.multimineral_model() を使用します。以前示されていた
shale_volume、formation_porosity、water_saturation、permeability、
to_las メソッドは提供されていません。Log は write(...) でエクスポートしてください。
環境と入力要件
メタデータの依存関係を含む、分離された Python 3.11 環境を使用してください。
検証済みの組み合わせは PetroPy 0.1.6、lasio 0.30、NumPy 1.26.4 です。lasio 0.32
では、PetroPy が現在も呼び出している add_curve が削除されています。
古い lasio 0.23/0.29 も、最新の NumPy ではヘッダー解析時にエラーになります。cchardet のプレリリース版には Python 3.11 用のホイールがあります。このスキルの依存関係宣言では、パッケージはインストールされません。
Log を作成する前に、測定済みの GR_N、NPHI_N、RHOB_N、
RESDEEP_N を用意し、内容を確認してください。単位はそれぞれ API、分率 v/v、g/cm³、ohm·m です。
この温度/圧力相関を使うには、入力深度が、基準面を特定したうえで、坑井地表面からの TVD を表す、0 以上で厳密に増加するフィート単位の値である必要があります。
合成データは、MD と TVD が等しい垂直坑井を想定しています。傾斜坑井の MD をそのまま渡すことはできません。ログを暗黙的に再サンプリングせず、TVD/PVT の取り扱いを別途確立してください。ニュートロン孔隙率がパーセント単位の場合は、明示的に変換してください。PetroPy の従来の密度孔隙率フォールバックに依存しないでください。前処理前に、検証済みの実測密度曲線があることを必須としてください。
欠損測定値は NaN のまま保持し、そのマスクも維持してください。
設定済みモデルの実行
以下の関数は、上記の要件を満たす入力と、レビュー済みの設定を想定しています。depth_basis="tvd_below_surface" と depth_datum を宣言してください。このヘルパーは MD 基準を拒否します。example_config.json は、合成データに基づくクリーンな石英/方解石のキャリブレーションであり、フィールド坑井用のデフォルトのキャリブレーションではありません。フィールドで使用する前に、実際の坑井情報やラボ情報を使って、対象区間、流体パラメーター、鉱物エンドポイント、重みを調整してください。
import json
import petropy as pp
def run_configured(las_path, config_path):
with open(config_path, encoding='utf-8') as stream:
config = json.load(stream)
top, bottom = config['interval_ft']
log = pp.Log(str(las_path))
log.fluid_properties(top=top, bottom=bottom, **config['fluid'])
log.multimineral_model(top=top, bottom=bottom, **config['multimineral'])
return log
PetroPy 0.1.6 では、top と bottom を既存のサンプル深度と一致させる必要がありますが、計算対象は [top, bottom) です。つまり、bottom のサンプルは評価されません。任意の区間端点を渡したり、すべてのサンプルが評価済みだと説明したりしないでください。必要な測定値が欠損している行はライブラリによってスキップされます。そのような行を、孔隙率ゼロ、飽和率ゼロ、または非ペイに置き換えないでください。
検証済みヘルパーと結果の確認
地層評価ヘルパー は、正規化された曲線名/単位、フィート単位で増加する深度、区間端点の完全一致、明示的な流体/鉱物キャリブレーション、および密度/比抵抗が正の値であることを検証します。実際のライブラリを実行し、バルク体積と孔隙体積の整合性を確認したうえで、解決済みパラメーター、区間、サンプル数、ソースチェックサムを記録した LAS と JSON を書き出します。欠損サンプルや除外サンプルに古い値が残るのを防ぐため、以前に計算されたモデル曲線がある場合は拒否します。
python scripts/formation_evaluation.py normalized.las \
--config reviewed_config.json --output evaluated.las
スクリプトは、インストール済みのスキルディレクトリを基準にして解決してください。評価対象行について、マトリックス鉱物のバルク体積に BVCLAY、BVOM、BVPYR、PHIE を加えた合計が 1 になること、BVW + BVH が PHIE に等しいこと、SW/PHIE が物理的に妥当な分率の範囲内にあることを確認してください。これらは必要な整合性チェックですが、地層モデルが正しいことの証明にはなりません。
バルク分率とマトリックス分率の違い、および明示された層厚の規約については、計算とペイ区間を参照してください。PVT 入力を変更する場合や流体出力を解釈する場合は、流体物性の単位を参照してください。単独の浸透率、クラスタリング、プロット、およびガス/泥質/有機物に富む地層のキャリブレーションには、別途検証が必要です。
検証範囲
実際の LAS の読み書き、設定済みの流体計算、およびプロジェクトで生成した観測値を使った二鉱物 NNLS 評価を実行しました。解析的に作成した合成混合物は、石英 65%、方解石 15%、水で満たされた孔隙 20%です。テストでは、回収された割合、保存則、フィート単位の温度と圧力、NaN マスク、区間の境界、および CLI のエラーを確認します。これは API と物理的一貫性のベースラインであり、現場でのキャリブレーションや、従来の PetroPy 全般の検証を目的とするものではありません。
公式の PetroPy 実装を、2026-09-14 に 0.1.6 と照合しました。