关于 pyrolite
pyrolite 是面向 Python 和 pandas 工作流的地球化学分析工具,适合进行成分数据处理与地球化学图表绘制。它包含元素归一化、对数比变换、矿物规范计算及多种图表模板。
主要功能
- 01地球化学数据归一化
- 02CLR、ALR 和 ILR 变换
- 03绘制三角图与蛛网图
- 04TAS 和 Pearce 图表模板
- 05计算 CIPW 标准矿物组成
适用场景
- 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%
Harker 图
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 快速进行分类和绘图 | 不可脚本化,可定制性有限 |
| 自定义 matplotlib | 完全控制图表外观 | 没有内置标准化功能或模板 |
在以下情况使用 pyrolite: 需要将地球化学分析集成到 pandas 工作流中、进行成分对数比变换,或在 Python 中进行 REE 标准化。
在以下情况考虑替代工具: 需要丰富的岩相分类模板(使用 GCDkit)、需要用于分类的快速 GUI(使用 PetroGraph),或只需不经标准化的简单散点图(直接使用 matplotlib)。
常见工作流
地球化学分类与 REE 配分模式分析
- 将样品数据加载到 pandas DataFrame 中
- 使用
df.pyrocomp.renormalise(scale=100)闭合成分数据 - 使用
TAS()绘制 TAS 图,并叠加样品数据 - 使用
df.pyrochem.normalize_to()将 REE 标准化至球粒陨石 - 使用
df.pyroplot.REE()绘制 REE 蛛网图 - 计算 Eu 异常和 La/Yb 比值
- 为主量元素生成 Harker 变化图
- 导出图表用于发表
提示
- 先闭合成分数据,再进行分析(确保总和为 100%)
- 使用对数比(CLR/ALR/ILR)进行统计分析
- 为蛛网图选择合适的标准化方法
- 检查 Eu 异常(正异常 = 堆晶作用,负异常 = 分离结晶)
参考资料
脚本
- scripts/geochemistry_plots.py - 生成常见图表
评论
支持 Markdown