以CSV格式输出Segy属性

2024-09-29 01:21:12 发布

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

我想将Segy转换为CSV,然后在CSV中编辑并将CSV转换为Segy

我使用跟踪头从segyio pythonexample到数据帧。 然后我将数据帧转换为CSV

当我将dataframe的output.csv与online converter的输出进行比较时,dataframe输出缺少一个名为SAMPLE_ARRAY的列,该列的每个单元格都包含多个数据

My_Segy

Dataframe_output

OnlineConverter_output

import segyio
import numpy as np
import pandas as pd
import sys
def main():
    filename = 'Seis.sgy'

    # Open file
    with segyio.open(filename, ignore_geometry=True) as f:
    # Get all header keys:
        header_keys = segyio.tracefield.keys
        # Initialize df with trace id as index and headers as columns
        trace_headers = pd.DataFrame(index=range(1, f.tracecount+1),
                                 columns=header_keys.keys())
        # Fill dataframe with all trace headers values
        for k, v in header_keys.items():
            trace_headers[k] = f.attributes(v)[:]
    print(trace_headers.head())
    trace_headers.to_csv('out.csv')
if __name__ == '__main__':
    main()

Tags: csv数据importdataframeoutputmainaswith