pyrolite について
pyrolite は Python と pandas のワークフローで使う地球化学分析ツールです。組成データの処理や作図に向けて、元素の規格化、対数比変換、鉱物規範計算、各種プロットテンプレートを備えています。
主な機能
- 01地球化学データの規格化
- 02CLR・ALR・ILR 変換
- 03三角図とスパイダーダイアグラムの作成
- 04TAS・Pearce 図のテンプレート
- 05CIPW 規範鉱物組成の計算
活用シーン
- 01規格化した希土類元素パターンの作図
- 02組成データへの対数比分析の適用
- 03岩石分類図と主成分元素変化図の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ steadfastasart/ geoscience-skills --skill pyroliteインストール後、Claude Code で/pyroliteを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/classification.mdnormalization.mdscripts/geochemistry_plots.py詳細
pyrolite - 地球化学分析
クイックリファレンス
import pandas as pd
import matplotlib.pyplot as plt
from pyrolite.geochem.norm import get_reference_composition
df = pd.read_csv('samples.csv')
df.pyrochem # Geochemistry methods
df.pyrocomp # Compositional methods
# Normalize and plot REE
chondrite = get_reference_composition('Chondrite_McDonough1995')
ax = df.pyrochem.normalize_to(chondrite, units='ppm').pyroplot.REE(unity_line=True)
主なモジュール
| モジュール | 用途 |
|---|---|
pyrolite.plot | 三角図、スパイダーダイアグラム |
pyrolite.geochem.norm | 規格化の参照値 |
pyrolite.comp | CLR、ALR、ILR 変換 |
pyrolite.plot.templates | TAS 図、Pearce 図 |
pyrolite.mineral.normative | CIPW ノルム |
基本的な操作
三角図
ax = df[['SiO2', 'CaO', 'Na2O']].pyroplot.scatter(c='k', s=50)
TAS 図
from pyrolite.plot.templates import TAS
df['Na2O_K2O'] = df['Na2O'] + df['K2O']
ax = TAS()
ax.scatter(df['SiO2'], df['Na2O_K2O'], c='red', s=50)
REE パターン
chondrite = get_reference_composition('Chondrite_McDonough1995')
ax = df.pyrochem.normalize_to(chondrite, units='ppm').pyroplot.REE(unity_line=True)
微量元素スパイダー図
pm = get_reference_composition('PM_McDonough1995')
ax = df.pyrochem.normalize_to(pm).pyroplot.spider(unity_line=True)
組成変換
df_closed = df.pyrocomp.renormalise(scale=100) # Closure
df_clr = df.pyrocomp.CLR() # Centered log-ratio
df_alr = df.pyrocomp.ALR() # Additive log-ratio
df_ilr = df.pyrocomp.ILR() # Isometric log-ratio
元素比と異常値
df['La_Yb'] = df['La'] / df['Yb'] # LREE/HREE
df['Eu_Eu*'] = df['Eu'] / (df['Sm'] * df['Gd']) ** 0.5 # Eu anomaly
lambdas = df.pyrochem.lambda_lnREE() # REE shape
CIPW ノルム
from pyrolite.mineral.normative import CIPW_norm
norm = CIPW_norm(df) # df must have major oxides in wt%
ハーカー図
fig, axes = plt.subplots(2, 3, figsize=(12, 8))
for ax, elem in zip(axes.flatten(), ['TiO2', 'Al2O3', 'FeO', 'MgO', 'CaO', 'Na2O']):
ax.scatter(df['SiO2'], df[elem], c='blue', s=50)
ax.set_xlabel('SiO2 (wt%)'); ax.set_ylabel(f'{elem} (wt%)')
Pearce 判別図
from pyrolite.plot.templates import pearce_templates
ax = pearce_templates.YNb()
ax.scatter(df['Nb'], df['Y'], c='red', s=50)
よく使われる規格化参照値
| 参照値 | コード | 用途 |
|---|---|---|
| コンドライト | Chondrite_McDonough1995 | REE パターン |
| 原始マントル | PM_McDonough1995 | 微量元素 |
| N-MORB | NMORB_SunMcDonough1989 | 海洋玄武岩 |
| 上部地殻 | UCC_RudnickGao2003 | 地殻岩 |
代替ツールとの使い分け
| ツール | 最適な用途 | 制限事項 |
|---|---|---|
| pyrolite | Python ネイティブの地球化学解析、pandas との連携、組成変換 | GCDkit より組み込みの分類テンプレートが少ない |
| GCDkit | 包括的な分類図、R エコシステム | R ベースであり、Python ではない |
| PetroGraph | GUI による手軽な分類と作図 | スクリプト化できず、カスタマイズに制限がある |
| Custom matplotlib | 作図の外観を完全に制御 | 規格化機能やテンプレートが組み込まれていない |
次の場合は pyrolite を使用してください: pandas のワークフローに統合された地球化学分析、 組成の対数比変換、または Python での REE 規格化が必要な場合。
次の場合は代替ツールを検討してください: 広範な岩石記載分類テンプレートが必要な場合 (GCDkit を使用)、分類用の手軽な GUI が必要な場合(PetroGraph を使用)、または規格化を行わない単純な 散布図だけが必要な場合(matplotlib を直接使用)。
よくあるワークフロー
地球化学的分類と REE パターン分析
- 試料データを pandas DataFrame に読み込む
-
df.pyrocomp.renormalise(scale=100)で組成の合計を 100% にする -
TAS()で TAS 図を作成し、試料データを重ねる -
df.pyrochem.normalize_to()で REE をコンドライト規格化する -
df.pyroplot.REE()で REE スパイダーダイアグラムを作成する - Eu 異常と La/Yb 比を計算する
- 主要元素のハーカー変化図を作成する
- 論文掲載用に図をエクスポートする
ヒント
- 解析前に組成の合計を 100% にしてください
- 統計解析には対数比(CLR/ALR/ILR)を使用してください
- スパイダーダイアグラムには適切な規格化を選択してください
- Eu 異常を確認してください(正の値 = 集積、負の値 = 分別結晶作用)
参考資料
スクリプト
- scripts/geochemistry_plots.py - よく使われる図を作成
コメント
Markdown 対応