mcpField
L
lasio

lasio

github.com/steadfastasartデータ・データベース7365 回インストール6 週間前に更新
リポジトリ

lasio について

lasioは、LAS検層ファイルの読み込み、確認、作成、編集を行うPythonライブラリです。LASデータやヘッダーを直接扱い、形式を変換するワークフローに適しています。

主な機能

  1. 01LASファイルの読み書き
  2. 02曲線とヘッダーメタデータへのアクセス
  3. 03検層ファイルの作成と編集
  4. 04曲線データのDataFrame変換
  5. 05ヘッダーエラーと欠損値への対応

活用シーン

  1. 01曲線と検層ヘッダーの確認
  2. 02分析前の欠損値処理
  3. 03LAS検層ファイルの作成や編集
  4. 04LASファイルの一括処理やCSV出力

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/lasioを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
curve_mnemonics.md
file_structure.md
troubleshooting.md
scripts/
las_to_csv.py
merge_curves.py
validate_las.py

詳細

lasio - LAS 坑井ログファイル

クイックリファレンス

import lasio

# Read
las = lasio.read("well.las")

# Access data
df = las.df()                    # DataFrame (depth as index)
gr = las['GR']                   # Single curve as numpy array
depth = las['DEPT']

# Well info
well_name = las.well['WELL'].value
uwi = las.well['UWI'].value

# Write
las.write('output.las')

主なクラス

クラス用途
LASFileメインコンテナー。ヘッダー、カーブ、データを保持します
CurveItemニーモニック、単位、データ配列を持つ単一のカーブ
HeaderItemヘッダー項目(ニーモニック、単位、値、説明)

基本操作

読み込みと確認
las = lasio.read("well.las")
print(las.curves.keys())         # Available curves
print(las.well)                  # Well section headers
print(las.version)               # LAS version info
カーブデータへのアクセス
# As numpy arrays
gr = las['GR']
depth = las['DEPT']

# With metadata
curve = las.curves['GR']
print(curve.unit, curve.descr)   # 'GAPI', 'Gamma Ray'
新しい LAS の作成
import numpy as np

las = lasio.LASFile()
las.well['WELL'] = lasio.HeaderItem('WELL', value='Test-1')
las.well['UWI'] = lasio.HeaderItem('UWI', value='12345678901234')

depth = np.arange(1000, 2000, 0.5)
las.append_curve('DEPT', depth, unit='M', descr='Depth')
las.append_curve('GR', gr_data, unit='GAPI', descr='Gamma Ray')
las.write('output.las')
既存ファイルの変更
las = lasio.read("well.las")
las.append_curve('GR_NORM', las['GR'] / 150, unit='V/V')
del las.curves['BAD_CURVE']
las.well['WELL'].value = 'New Name'
las.write('modified.las')
問題のあるファイルの処理
# Ignore header errors
las = lasio.read("messy.las", ignore_header_errors=True)

# Check null value
null_val = las.well['NULL'].value  # Usually -999.25

NULL 値の処理

LAS ファイルでは特定の NULL 値(通常は -999.25)が使用されます。必ず確認して処理してください。

import numpy as np
null_val = float(las.well['NULL'].value)
df = las.df().replace(null_val, np.nan)

一括処理

from pathlib import Path

for path in Path('wells/').glob('*.las'):
    las = lasio.read(path)
    df = las.df()
    # Process...

代替ツールとの使い分け

ツール最適な用途
lasioLAS ファイルの直接的な入出力、ヘッダーの操作、形式変換
wellyより高水準の坑井解析、カーブ処理、複数坑井プロジェクト
dlisioDLIS/RP66 バイナリ形式のファイル(LAS ではありません)

lasio を使う場面:LAS ファイルの読み書きを細かく制御したい場合、形式が不正なファイルを処理する場合、またはプログラムから LAS ファイルを作成する場合です。

代わりに welly を使う場面:カーブ処理(スパイク除去、正規化)、複数坑井プロジェクトの管理、または地層トップが必要な場合です。Welly は内部で lasio を使用します。

代わりに dlisio を使う場面:データが DLIS 形式の場合です。DLIS ファイルはバイナリ形式で、マルチフレームデータやアレイログをサポートしています。lasio では読み込めません。

一般的なワークフロー

坑井ログデータの読み込み、QC、エクスポート
- [ ] Read LAS file with `lasio.read()`, handle encoding if needed
- [ ] Inspect curves: `las.curves.keys()` and well headers
- [ ] Replace null values: `df.replace(null_val, np.nan)`
- [ ] Validate depth range and sample interval
- [ ] Check for missing curves or anomalous values
- [ ] Export to DataFrame with `las.df()` or write cleaned LAS

よくある問題

問題解決策
エンコーディングエラーlasio.read(f, encoding='latin-1')
カーブの欠落まず las.curves.keys() を確認します
ヘッダーエラーignore_header_errors=True を使用します
NULL 値の誤りlas.well['NULL'].value を確認します

参考資料

スクリプト

コメント