8

.las ファイル、つまり Schlumberger Log Ascii 標準ファイルを読み取ることができる R パッケージはありますか?
las 2.0 ファイルを読み取ることができる必要があります。

ご注意ください:

  • ここでは LIDAR .las ファイルについて話しているわけではありません。
  • 私は地球物理学的な坑井のログ ファイルについて話しています (コンピューター アプリやデーモンなどのログ ファイルではありません)。

インターネットで R と Las と Logfiles を検索すると、個人的にあまりにも多くの赤いニシンが表示されます。

コメントからの更新:

また、R の言語バインディングを利用できるスクリプトまたは API も検討しています。

これまでのところ、次のスクリプトを見つけました。

ただし、これまでのところ、これらすべてのスクリプトはあまり成熟していないように見えます。

Schlumberger によるフリーウェア ソフトウェア パッケージ"Log Data Toolbox " もありますが、これは Windows でのみ動作し、Windows の英語以外のバージョンとの互換性の問題がある可能性があります (私の記憶が正しければ)。

Kansas Geological Survey からの複雑な Java アプレットがありますが、大きな .las 入力ファイルの場合は少し遅くなります。

ruby プロジェクトpython プロジェクトがあります。また、サンプル las ファイルの素敵なセットについては、このリンクを参照してください。

4

4 に答える 4

4

私自身の質問に答える:

現在、非常にうまく機能するlasioという python ライブラリがあります。おそらくsystem2()関数を介して、R から呼び出すことができます。出力は R データ構造にフェッチできます。もう1つの可能性は、lasfile-objectsをJSONにシリアル化し、ファイルに保存してRから再インポートすることです.コードサンプルでこの回答を拡張するかもしれませんが、今は時間がありません.

于 2015-10-28T15:36:13.327 に答える
3

2021年の答え:

ラストツール

lastoolsは github の R パッケージで、Log Ascii Standard v2.0 ファイルを読み取ります。

また、基本的なプロットと las ファイル形式への書き出しも提供します。

r コマンドラインからインストールするには (他の方法でもインストールできます):

devtools::install_github("Gitmaxwell/lastools")

lastools をロードし、las ファイルを読み取り、内容を R に表示する例:

library(lastools)
las_file <- "your-sample.las"
las <- read_las(las_file)
print(las)

LASR

lasr (2021 年初頭のベータ テスト中) Lasr は、主に LAS ファイルを高速かつ大規模なバッチでインポートするように設計されています。

r コマンドラインからインストールするには:

if (!require('devtools')) install.packages('devtools')
library(devtools)
install_github('https://github.com/donald-keighley/lasr')

lasr をロードし、R で las ファイルの内容を読み取り、表示する例:

library(lasr)
las = read.las(system.file("extdata", "las_3_cwls.las", package = "lasr"))

#Display the WELL section
head(las$well, 10)
于 2020-01-02T19:13:47.627 に答える
1

*.las ファイルのサンプル:

…
…
…
#MNEM           .UNIT                  API CODE            :DESCRIPTION
#----            ------          --------------            -----------------------------
DEPT            .ft                                        :                                                        Station Depth
INCL            .deg                                       :                                                        Hole inclination
AZIM            .deg                                       :                                                        Measured Azimuth
#-------------------------------------------------------------
#        DEPT         INCL         AZIM
~ASCII
0.00         0.00         0.00
36.00         0.33       123.98
126.00         0.17       183.28
218.00         0.19       202.04
308.00         0.24       191.24
398.00         0.21       198.60
495.00         0.02       179.55
…
…
…

ファイルを読み取るときの目的は、ファイル ヘッダーを無視し、(~ASCII)各列ヘッダーに加えて行の後にあるデータのみをコピーすることです。そのため、すべてのファイルをコピーし、(~ASCII) に到達するまで 1 行ずつ検索します。行、次にその前の行 (ヘッダー) とその後のすべて (データ) をコピーし、(~ASCII) 行を削除します。

(#)ヘッダー行からシンボルを削除することに注意してください。

最後のステップは、データをテーブルに変換してから、csv ファイルとして書き込むことです。

完全なコード:

#remove all variables (cleanup)
rm(list=ls(all=TRUE))
gc()
MWD_filePath="MWD_file.las";
conn=file(MWD_filePath,open="r")
Ascii_txt=readLines(conn);
mwd_txt = 0;

for (i in 1:length(Ascii_txt)){
    if(Ascii_txt[i] == "~ASCII"){
    mwd_txt <- Ascii_txt[(i-1):length(Ascii_txt)]

    # remove (#) from the header line
    substr(mwd_txt[1], 1, 2) <- " ";

    # remove "~ASCII" line
    mwd_txt <- mwd_txt[-2]

    break;
    }

}
close(conn)
#mwd_txt;
mwd <- read.table(header = TRUE, text=mwd_txt);
#head(mwd)

#write the mwd data to file ... in CSV format
mwd_csv_file <- paste(MWD_filePath, ".csv", sep="");
write.csv(mwd, file = mwd_csv_file);
于 2013-08-23T16:48:18.763 に答える