mcpField
P
petropy

petropy

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

关于 petropy

petropy 是围绕 PetroPy 0.1.6 的测井地层评价技能,面向需要运行和核验配置化模型的地学工作者。它强调输入曲线、深度基准、校准参数及结果一致性检查。

主要功能

  1. 01检查测井曲线名称与单位
  2. 02验证深度及评价区间
  3. 03运行流体与多矿物模型
  4. 04检查体积闭合与物理范围
  5. 05导出 LAS 和参数记录

适用场景

  1. 01按审核配置处理测井 LAS 文件
  2. 02验证地层评价结果的体积闭合
  3. 03追踪模型参数与输入文件来源

安装

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

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

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

包含的文件

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

references/
calculations.md
example_config.json
fluid_properties.md
scripts/
formation_evaluation.py

详细介绍

已配置的 PetroPy 地层评价

PetroPy 0.1.6 使用 Log.fluid_properties(),随后调用 Log.multimineral_model()。它不提供之前展示的 shale_volume、formation_porosity、water_saturation、permeability 或 to_las 方法。使用 write(...) 导出 Log。

环境与输入约定

使用安装了元数据依赖项的独立 Python 3.11 环境。已验证的组合为 PetroPy 0.1.6、lasio 0.30 和 NumPy 1.26.4;lasio 0.32 移除了 add_curve,而 PetroPy 仍会调用它。旧版 lasio 0.23/0.29 也会在现代 NumPy 环境下于解析头信息时失败。cchardet 预发布版提供 Python 3.11 的 wheel;此 skill 中的依赖声明不会安装软件包。

创建 Log 之前,请准备并检查实测的 GR_N、NPHI_N、RHOB_N 和 RESDEEP_N。它们的单位分别为 API、fraction v/v、g/cm³ 和 ohm·m。输入深度必须为严格递增的非负英尺值,表示井表面以下的 TVD,并且必须明确其基准面,才能使用这些温度/压力相关关系。合成测试数据为垂直井,其中 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):底部采样点不会参与评价。不要传入任意区间端点,也不要声称所有采样点都已完成评价。 该库会跳过缺少必需测量值的行;不要将这些行转换为零孔隙度、零饱和度或非有效层。

已验证的辅助程序与结果检查

地层评价辅助程序会验证已规范化的曲线名称/单位、递增的英尺深度、精确的区间端点、明确的流体/矿物标定以及正的密度/电阻率。它会运行实际库,检查总体积和孔隙体积闭合情况,并写出 LAS 以及一份 JSON 记录,其中包含解析后的参数、区间、样本计数和源文件校验和。 它会拒绝已计算出的模型曲线,防止缺失或排除的采样点残留过时值。

python scripts/formation_evaluation.py normalized.las \
  --config reviewed_config.json --output evaluated.las

请根据已安装的 skill 目录解析脚本路径。对于已评价的行,请确认基质矿物总体积 + 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 版本进行了核对。

评论

支持 Markdown