mcpField
P
pastas

pastas

github.com/steadfastasartデータ・データベース7358 回インストール6 週間前に更新
リポジトリ

pastas について

pastasは、Pastas 2.0で地下水位の変動応答をモデル化するスキルです。水文地質の実務者向けに、校正期間や応力データの扱いを明確にし、独立した評価を支援します。

主な機能

  1. 01水位と応力系列による涵養応答モデルの適合
  2. 02日付、校正期間、応力データ範囲の検証
  3. 03Pastasモデルファイルの保存と再読み込み
  4. 04寄与成分と応答関数の確認
  5. 05残差の自己相関分析

活用シーン

  1. 01井戸の日単位涵養モデルの校正
  2. 02保留期間における適合モデルの評価
  3. 03降水と蒸発の寄与の確認

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/pastasを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
response_functions.md
stress_models.md
scripts/
groundwater_model.py

詳細

Pastas を使用した地下水応答モデル

Pastas を使用して、時間変動するストレスに対する井戸の応答をモデル化します。フィッティングされた応答パラメーターは有効なモデルパラメーターであり、それだけで透水量係数、帯水層の形状、または水理的な連結性が確立されるわけではありません。空間的な流動に関する根拠のある検討には、FloPy/MODFLOW を使用してください。

このエントリーポイントは Pastas 2.0 を対象としています。コンポーネントのコンストラクターは所有するモデルを受け取り、自身を登録します。従来の add_stressmodel パターンは廃止されつつあります。再現性のある作業には、テスト済みの依存関係のベースラインを使用してください。2.0 パッケージでは、確認済みの環境でインポートされるソルバータイマーに tqdm も必要です。

データを準備し、評価日を確保する

水頭の単位と鉛直基準、井戸/スクリーン、タイムスタンプの規約、ストレスの単位、蒸発量が実測値か推定された基準ポテンシャル蒸発量かを記録します。相対水頭または水位深度の系列が負であっても、海面上の標高を示すとは限りません。元の基準面を保持してください。

日単位の涵養モデルでは、水頭(m)、降水量、基準蒸発量(mm/day)の単位を一貫して換算してください。日ごとの集計ラベルを保持し、観測の支持期間が分からないままタイムゾーンを設定したり、日付をずらしたりしないでください。欠測降雨量はゼロではありません。水頭の欠測期間は補完せず、モデルのウォームアップ期間を通じてストレスが網羅されているか確認し、ストレスを補完した場合はその較正情報源を記録してください。Pastas のデフォルトではストレスが補完・延長される場合があるため、モデルを構築する前にこれらの選択を明確にしてください。

フィッティング前に、較正期間とホールドアウト期間の日付を確定してください。データから求めた初期値を含め、較正期間の水頭とストレスのみを使ってモデルを構築します。将来の実測ストレスは後方予測に使用できますが、将来の実測水頭でフィッティング済みパラメーターやシミュレーション状態を調整してはいけません。予測には、指定された将来のストレスシナリオと不確実性も必要です。

検証済みの涵養モデルを較正する

この関数は、重複のない順序付きの日付を持つ日次 Series、指定された観測ウォームアップ期間を網羅する欠測のない非負のストレス、そして有限な較正水頭が少なくとも3件あることを前提とします。これらの入力チェックは、同梱のヘルパーによって実施されます。

import pastas as ps

def fit_recharge(calibration_head, calibration_precip, calibration_evap,
                 start, end, warmup_days):
    model = ps.Model(calibration_head, name='well')
    settings = {'freq': 'D', 'sample_up': 'bfill', 'sample_down': 'mean',
                'fill_nan': None, 'fill_before': None, 'fill_after': None}
    ps.RechargeModel(model, calibration_precip, calibration_evap,
                     rfunc=ps.Gamma(), recharge=ps.rch.Linear(), name='recharge',
                     settings=(settings.copy(), settings.copy()))
    ps.ArNoiseModel(model)
    model.solve(tmin=start, tmax=end, warmup=warmup_days, report=False)
    if not model.solver.result.success:
        raise RuntimeError('Calibration did not converge')
    return model

較正ヘルパーは CSV の形式、日付、明示的な較正期間、ストレスの網羅性を検証し、model.to_file(...) を使って .pas を保存します。プロットは任意です。正規化済みの単位を前提としており、列名から単位を推測したり、欠測ストレスを補完したりはしません。

python scripts/groundwater_model.py head_m.csv rain_mm_day.csv evap_mm_day.csv \
  --calibration-start 2005-01-01 --calibration-end 2013-12-31 \
  --warmup-days 730 --noise --output fitted.pas

スクリプトは、このスキルのインストール先ディレクトリを基準にして指定してください。較正済みファイルだけではホールドアウト評価は完了していません。確定した評価期間を使い、ベースライン、独立した実測日付の指標、残差を報告してください。

寄与、診断、永続化

model.get_contributions() は Series のリストを返し、降水と蒸発の成分に分かれている場合があります。リストを反復処理するか、model.get_contribution('recharge') で統合された寄与を 1 つ取得してください。この戻り値に .items() を呼び出さないでください。シミュレーションの合計を確認する際は、フィッティングされた定数を加えてください。ブロック応答は瞬間的なインパルスではなく、有限時間のストレスブロックを表します。それぞれに応じて model.get_step_response と model.get_block_response を使用してください。

model.to_file('model.pas') で保存し、ps.io.load('model.pas') で再読み込みした後、同じ日付範囲でシミュレーションを比較してください。確認した API に Model.to_json メソッドはありません。ps.ArNoiseModel(model) の追加は、ソルバーの noise=True フラグを渡すだけの場合とは異なります。

観測値に欠測期間がある場合は、ps.stats.acf(residuals, lags=[1, 7, 30], bin_method='gaussian') を使用してください。ラグの単位を日で指定し、ペア数を確認してください。残差とノイズ系列の診断は、それぞれ異なる問いに答えるものです。AIC/BIC の比較には、同じ観測値/目的関数が必要です。また、普遍的な EVP>70% というしきい値は検証基準ではありません。イノベーションの相関が持続している場合、従来のパラメーター標準誤差への信頼性が制限されます。

揚水/河川の入力と非線形涵養についてはストレスの設定を、パラメーターの符号、単位、応答の尾部については応答の解釈を参照してください。これらの条件付き構造には、それぞれ専用のデータと診断が必要です。

実行した範囲

このプロジェクトの水文地質ワークフローでは、Pastas 2.0 を使用して、固定された公開 USGS/GSOD 涵養ヒンドキャストを実行します。内容は、QC、キャリブレーション期間のみを使ったフィッティング、3 つのベースライン、残差 ACF、連続したホールドアウトシミュレーション、保存/読み込み後の読み戻し確認です。ヘルパーの日次涵養パスと揚水応答の符号についても、実ライブラリを使った確認を行っています。すべての非線形構成、複数井戸の構成、不確実性の構成を検証したものではありません。

Pastas 2.0 の公式リリース、バージョン固定のモデル API ソース、2026-09-15 に確認。

コメント