mcpField
P
pyrolite

pyrolite

github.com/steadfastasart数据与数据库7360 次安装6 周前更新
代码仓库

关于 pyrolite

pyrolite 是面向 Python 和 pandas 工作流的地球化学分析工具,适合进行成分数据处理与地球化学图表绘制。它包含元素归一化、对数比变换、矿物规范计算及多种图表模板。

主要功能

  1. 01地球化学数据归一化
  2. 02CLR、ALR 和 ILR 变换
  3. 03绘制三角图与蛛网图
  4. 04TAS 和 Pearce 图表模板
  5. 05计算 CIPW 标准矿物组成

适用场景

  1. 01绘制稀土元素归一化模式
  2. 02对成分数据执行对数比分析
  3. 03制作岩石分类及主量元素变化图

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/pyrolite确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
classification.md
normalization.md
scripts/
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.compCLR、ALR、ILR 变换
pyrolite.plot.templatesTAS、Pearce 图
pyrolite.mineral.normativeCIPW 标准矿物计算

基本操作

三角图
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_McDonough1995REE 配分模式
原始地幔PM_McDonough1995微量元素
N-MORBNMORB_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 变化图
  • 导出图表用于发表

提示

  1. 先闭合成分数据,再进行分析(确保总和为 100%)
  2. 使用对数比(CLR/ALR/ILR)进行统计分析
  3. 为蛛网图选择合适的标准化方法
  4. 检查 Eu 异常(正异常 = 堆晶作用,负异常 = 分离结晶)

参考资料

脚本

评论

支持 Markdown