如何使用lasio.py将曲线头添加到las.write()的输出中

2024-04-20 11:23:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python lasio.py库,文档中肯定缺少一些内容

在输出文件的~ASCII(~a)部分中是否有添加标题列的本机方法

我需要输出如下内容

~A  DEPTH     DT    RHOB        NPHI   SFLU    SFLA      ILM      ILD
1670.000   123.450 2550.000    0.450  123.450  123.450  110.200  105.600
1669.875   123.450 2550.000    0.450  123.450  123.450  110.200  105.600
1669.750   123.450 2550.000    0.450  123.450  123.450  110.200  105.600

我真正得到的是什么

~ASCII -----------------------------------------------------
   1670     123.45       2550       0.45     123.45     123.45      110.2      105.6
 1669.9     123.45       2550       0.45     123.45     123.45      110.2      105.6
 1669.8     123.45       2550       0.45     123.45     123.45      110.2      105.6

写入我的输出文件

我觉得我错过了一些非常明显的东西

编辑: 文件的输出非常简单:

las.write(outfilename + '.las', fmt='%.3f', version=2)

干杯


Tags: 文件方法文档py标题内容asciidt
1条回答
网友
1楼 · 发布于 2024-04-20 11:23:33

对于任何遇到此问题的人,这里有一个解决方法。您需要修改lasio包中的writer.py文件。创建一个带有曲线助记符的列表,将其转换为np数组,使用np.vstack()将所述数组堆叠在数据的顶部

data_arr = las.data    # original code

# adding curve names as headers - insert these 5 lines in writer.py
hdr_list = []
for hdr_item in las.curves:
    hdr_list.append(hdr_item.mnemonic)
hdrs = np.array(hdr_list).reshape(1, -1)
data_arr = np.vstack((hdrs, data_arr))

nrows, ncols = data_arr.shape   # original code

相关问题 更多 >