是否有一个R包可以读取.las文件,即Schlumberger Log Ascii标准文件?
它应该能够读取las 2.0文件.
请注意:
在互联网上搜索R和Las和Logfiles给了我个人太多的红鲱鱼.
评论更新:
我也在考虑可以使用R语言绑定的脚本或API.
到目前为止,我发现了以下脚本:
但是,到目前为止,所有这些脚本对我来说都不是很成熟.
Schlumberger 还提供了一个免费软件包"Log Data Toolbox ",但它只能在Windows下运行,并且可能与Windows的非英语版本存在兼容性问题(如果我没记错的话).
堪萨斯地质调查局有一个复杂的Java小程序,但对于大型.las输入文件来说有点迟钝.
*.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\nRun Code Online (Sandbox Code Playgroud)\n\n读取文件时的目标是忽略文件头,只复制行后的数据(~ASCII)以及每个列标题 \n因此我们复制所有文件,并逐行搜索,直到到达 (~ASCII ) 行,然后复制它前面的行(标题)及其后面的所有内容(数据),然后删除 (~ASCII) 行。
请注意,我们(#)从标题行中删除了该符号。
最后一步是将数据转换为表格,然后将其写入 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);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3790 次 |
| 最近记录: |