是否有一个R包来解析地球物理"Log Ascii标准"文件(.las文件)?

knb*_*knb 7 file-format r

是否有一个R包可以读取.las文件,即Schlumberger Log Ascii标准文件?
它应该能够读取las 2.0文件.

请注意:

  • 我不是在谈论LIDAR .las文件.
  • 我在谈论地球物理井井记录文件(不记录计算机应用程序,恶魔等文件)

在互联网上搜索R和Las和Logfiles给了我个人太多的红鲱鱼.

评论更新:

我也在考虑可以使用R语言绑定的脚本或API.

到目前为止,我发现了以下脚本:

但是,到目前为止,所有这些脚本对我来说都不是很成熟.

Schlumberger 还提供了一个免费软件包"Log Data Toolbox ",但它只能在Windows下运行,并且可能与Windows的非英语版本存在兼容性问题(如果我没记错的话).

堪萨斯地质调查局有一个复杂的Java小程序,但对于大型.las输入文件来说有点迟钝.

有一个ruby项目和一个python项目.另外,请参阅此链接以获取一组很好的示例las文件.

Sal*_*rbi 1

*.las 文件示例:

\n\n\n\n
\xe2\x80\xa6\n\xe2\x80\xa6\n\xe2\x80\xa6\n#MNEM           .UNIT                  API CODE            :DESCRIPTION\n#----            ------          --------------            -----------------------------\nDEPT            .ft                                        :                                                        Station Depth\nINCL            .deg                                       :                                                        Hole inclination\nAZIM            .deg                                       :                                                        Measured Azimuth\n#-------------------------------------------------------------\n#        DEPT         INCL         AZIM\n~ASCII\n0.00         0.00         0.00\n36.00         0.33       123.98\n126.00         0.17       183.28\n218.00         0.19       202.04\n308.00         0.24       191.24\n398.00         0.21       198.60\n495.00         0.02       179.55\n\xe2\x80\xa6\n\xe2\x80\xa6\n\xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

读取文件时的目标是忽略文件头,只复制行后的数据(~ASCII)以及每个列标题 \n因此我们复制所有文件,并逐行搜索,直到到达 (~ASCII ) 行,然后复制它前面的行(标题)及其后面的所有内容(数据),然后删除 (~ASCII) 行。

\n\n

请注意,我们(#)从标题行中删除了该符号。

\n\n

最后一步是将数据转换为表格,然后将其写入 csv 文件。

\n\n

完整代码:

\n\n
#remove all variables (cleanup)\nrm(list=ls(all=TRUE))\ngc()\nMWD_filePath="MWD_file.las";\nconn=file(MWD_filePath,open="r")\nAscii_txt=readLines(conn);\nmwd_txt = 0;\n\nfor (i in 1:length(Ascii_txt)){\n    if(Ascii_txt[i] == "~ASCII"){\n    mwd_txt <- Ascii_txt[(i-1):length(Ascii_txt)]\n\n    # remove (#) from the header line\n    substr(mwd_txt[1], 1, 2) <- " ";\n\n    # remove "~ASCII" line\n    mwd_txt <- mwd_txt[-2]\n\n    break;\n    }\n\n}\nclose(conn)\n#mwd_txt;\nmwd <- read.table(header = TRUE, text=mwd_txt);\n#head(mwd)\n\n#write the mwd data to file ... in CSV format\nmwd_csv_file <- paste(MWD_filePath, ".csv", sep="");\nwrite.csv(mwd, file = mwd_csv_file);\n
Run Code Online (Sandbox Code Playgroud)\n