关于 petropy
petropy 是围绕 PetroPy 0.1.6 的测井地层评价技能,面向需要运行和核验配置化模型的地学工作者。它强调输入曲线、深度基准、校准参数及结果一致性检查。
主要功能
- 01检查测井曲线名称与单位
- 02验证深度及评价区间
- 03运行流体与多矿物模型
- 04检查体积闭合与物理范围
- 05导出 LAS 和参数记录
适用场景
- 01按审核配置处理测井 LAS 文件
- 02验证地层评价结果的体积闭合
- 03追踪模型参数与输入文件来源
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ steadfastasart/ geoscience-skills --skill petropy安装后在 Claude Code 中输入/petropy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/calculations.mdexample_config.jsonfluid_properties.mdscripts/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 版本进行了核对。