CN110674199B - 将csv格式数据转换为SEG-2格式数据的方法及装置 - Google Patents
将csv格式数据转换为SEG-2格式数据的方法及装置 Download PDFInfo
- Publication number
- CN110674199B CN110674199B CN201910745272.7A CN201910745272A CN110674199B CN 110674199 B CN110674199 B CN 110674199B CN 201910745272 A CN201910745272 A CN 201910745272A CN 110674199 B CN110674199 B CN 110674199B
- Authority
- CN
- China
- Prior art keywords
- data
- line
- file
- seg
- csv
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种将csv格式数据转换为SEG‑2格式数据的方法及装置,包括两次逐行读取csv文件:第一次逐行读取csv文件,获取每一行的数据描述信息及总行数,创建SEG‑2文件,将读取结果写入文件描述块;第二次逐行读取csv文件,每读取完一行数据就将其写入SEG‑2文件对应这一行的描述块和数据块。实现将常规弹性波采集数据转换存储为统一的地震SEG‑2格式,有针对性地对SEG‑2文件描述块和道描述块、道数据块所需数据进行按行读取解析采集数据文件,使整个过程数据的解析转换逻辑简单清晰,占用的内存更小,转换效率更高。
Description
技术领域
本发明属于工程勘探、检测领域,尤其应用于将地质勘探采集到的弹性波数据解析转换为SEG(The Society of Exploration Geophysicists)工程地球会议规定的一种统一的数据文件存储格式,即SEG-2格式。
背景技术
随着工程物探的迅速发展,浅层地震、地质雷达方法被广泛应用于工程与环境问题的勘察中。这也使得浅层物探方法及其仪器的研制进入了一个崭新的时代。由于各仪器生产厂家对数据的记录都有自己特定的存储格式和其相应的软件包,为此SEG(TheSociety of Exploration Geophysicists)工程地球物理会议规定了一种统一的数据文件存储格式,即SEG-2格式。SEG建议自1987年10月之后生产的浅层地震仪、地质雷达的数据存储格式均采用SEG-2标准,若厂家不采用SEG-2存储格式,就必须提供能将其数据转换成SEG-2格式的相应软件。
csv格式作为一种常用的保存采集数据的格式,其特点是数据按字符串形式存储并且数据与数据之间用逗号分隔,通常csv文件的每一行对应记录了一个采集通道在一次弹性波采集过程中的所有信息,可分类为:工程信息、通道信息和采集数据,其格式如图1所示。而SEG-2数据文件的格式如图2所示,它由一个文件描述块,一个或多个道描述块及相应的数据块组成,其中文件描述块如图3所示,道描述块如图4所示。将csv格式数据转换为SEG-2格式的常规做法是:首先根据csv文件的逗号分隔进行数据提取,按从头到尾的顺序对数据逐个进行归类并记录数据所占的字节数,最后按照SEG-2格式要求统计出相应的内容填写SEG-2文件。但是这种解析转换方式使得很多信息重复提取解析,导致解析效率低,解析逻辑复杂,而且勘探技术的提高导致一个工作面的采集数据量变大,对数据文件进行逐个解析和转换,占用的内存变大。
发明内容
本发明要解决的技术问题是:为克服采集数据逐个解析存储为SEG-2格式时存在的解析效率低下,占用内存大且解析逻辑复杂等问题,本发明提供了一种基于采集数据行解析的地震SEG-2格式存储方法,该方法可以通过按行解析的框架解析采集所得的数据文件并转换存储为SEG-2格式。
本发明的技术方案是:
1.转换方法:按行读取csv文件,对每一行进行如下操作:单个提取出通道信息数据,并按照SEG-2规定的字符串格式:数字(表示该字符串长度,占2字节)+关键词+空格或制表符(tabs)+单个通道信息数据+'\0'(字符串结束符)转换成字符串,记录每一个通道信息数据字符串所占字节数。累加每一个通道信息数据字符串字节数,再加2(在所有字符串的最后是一个为0的整数,占2字节),得到该行通道信息数据字符串总字节数。 另外,记录该行通道信息数据中采集数据长度信息。
2.因为csv文件每一行的工程信息数据均相同,为提高解析效率减少重复解析,只在读取到最后一行时进行如下操作:单个提取出工程信息数据,并按照SEG-2规定的字符串格式:数字(表示该字符串长度,占2字节)+关键词+空格或制表符(tabs)+单个工程信息数据+'\0'(字符串结束符)转换成字符串,记录每一个工程信息数据字符串所占字节数。累加每一个工程信息数据字符串字节数,再加2(在所有字符串的最后是一个为0的整数,占2字节),得到工程信息数据字符串总字节数。
3.csv文件最后一行读取完成后,记录该csv文件总行数。
4.创建SEG-2文件,开始写入“文件描述块”:
1)具体的计算方法为:道数N=csv文件总行数,道指针子块大小=csv文件行数*4,而版本号、字符串结束符大小、字符串结束符、行结束符大小、行结束符可按SEG-2格式自行确定。
2)获得各个道描述块指针的方法如下:
a)计算文件描述块大小——基指针,基指针=32+道指针子块大小+工程信息数据字符串总字节数。基指针为第1道描述块指针。
b)第i(N≥i>1)道描述块指针=第i-1道描述块指针+32+第i-1行通道信息数据字符串总字节数+第i-1行采集数据长度*H(H的数值由数据形式确定)。
3)将每一个工程信息数据字符串按字母顺序排列,依次写入SEG-2文件,最后写入一个为0的整数作为所有字符串结束标志,占2字节。
5.开始写入“描述块”+“数据块”。由于一次加载所有csv文件中的采集数据会占用大量内存,本发明采用读取一行写入一行的方法:
1)首先写入第i(i=1,2…N)道描述块。具体的计算方法为:道描述块大小=32+第i行通道信息数据字符串总字节数,相应数据块大小=第i行采集数据长度*H(H的数值由数据形式确定),数据块中采样点数=第i行采集数据长度,数据格式代码由数据形式确定。
2)将每一个通道信息数据字符串按字母顺序排列,依次写入SEG-2文件,最后写入一个为0的整数作为所有字符串结束的标志,占2字节。
3)开始写入第i(i=1,2…N)道数据块。读取第i行csv文件并单个提取出采集数据,按照SEG-2不同数据类型占用的字节数规定依次写入SEG-2文件。重复步骤2)和3)直到文件读取结束。
一种将csv格式数据转换为SEG-2格式数据的装置,包括处理器及存储器,其特征在于:处理器执行存储器中的计算机程序,该计算机程序用于执行以下过程:第一次逐行读取csv文件,获取每一行的数据描述信息及总行数,创建SEG-2文件,将读取结果写入文件描述块;第二次逐行读取csv文件,每读取完一行数据就将其写入SEG-2文件对应这一行的描述块和数据块。
csv文件的每一行数据包括工程信息、通道信息和采集数据三个部分,其中工程信息和通道信息为数据描述信息,在第一次逐行读取csv文件时,对每一行都单个提取出每个通道信息数据,只提取其中一行的工程信息数据。
单个数据描述信息转换为数字+关键词+空格或制表符+单个数据描述信息+‘\0’的字符串,数字表示该字符串所占字节数;累加每一个数据描述信息字符串字节数再加2得到该行数据描述信息字符串总字节数;同时记录该行通道信息数据中的采集数据长度信息。
第二次逐行读取第i行csv文件,将第一次逐行读取csv文件得到的通道信息数据写入seg文件的第i道描述块,然后再把第二次逐行读取得到第i行的采集数据写入seg文件的第i道数据块。
本发明的有益效果是:
实现将常规弹性波采集数据转换存储为统一的地震SEG-2格式,有针对性地对SEG-2文件描述块和道描述块、道数据块所需数据进行按行读取解析采集数据文件,使整个过程数据的解析转换逻辑简单清晰。相比于对采集数据文件中的数据进行逐个读取和解析,占用的内存更小,转换效率更高。
附图说明
附图1是弹性波采集csv数据格式示意图。
附图2是SEG-2数据文件格式结构。
附图3是SEG-2数据文件的文件描述块格式结构。
附图4是SEG-2数据文件的道描述块格式结构。
附图5是实施例中待转换的csv数据文件源数据。
附图6是本发明基于采集数据行解析的地震SEG-2格式存储过程流程图。
具体实施方式
下面结合附图及具体的实施例对发明进行进一步介绍:
一种将csv格式数据转换为SEG-2格式数据的方法,包括:
第一次逐行读取csv文件,获取每一行的数据描述信息及总行数,创建SEG-2文件,将读取结果写入文件描述块;
第二次逐行读取csv文件,每读取完一行数据就将其写入SEG-2文件对应这一行的描述块和数据块。
csv文件的每一行数据包括工程信息、通道信息和采集数据三个部分,在第一次逐行读取csv文件时,对每一行都单个提取出每个通道信息数据,只提取其中一行的工程信息数据。
单个通道信息数据转换为数字+关键词+空格或制表符+单个通道信息数据+‘\0’的字符串,数字表示该字符串所占字节数;累加每一个通道信息数据字符串字节数再加2得到该行通道信息数据字符串总字节数;同时记录该行通道信息数据中的采集数据长度信息。
单个工程信息数据转换为数字+关键词+空格或制表符+单个工程信息数据+‘\0’的字符串,累加每一个工程信息数据字符串字节数,再加2得到工程信息数据字符串总字节数。
SEG-2文件的文件描述块中:道数N=csv文件总行数,道指针子块大小=csv文件行数*4,第1道描述块指针=32+道指针子块大小+工程信息数据字符串总字节数,第i(N≥i>1)道描述块指针=第i-1道描述块指针+32+第i-1行通道信息数据字符串总字节数+第i-1行采集数据长度*H,H的数值由数据形式确定。
SEG-2文件的描述块和数据块写入包括:第二次逐行读取第i行csv文件,将第一次逐行读取csv文件得到的通道信息数据写入seg文件的第i道描述块,然后再把第二次逐行读取得到第i行的采集数据写入seg文件的第i道数据块。
一种将csv格式数据转换为SEG-2格式数据的装置,包括处理器及存储器,其特征在于:处理器执行存储器中的计算机程序,该计算机程序用于执行以下过程:第一次逐行读取csv文件,获取每一行的数据描述信息及总行数,创建SEG-2文件,将读取结果写入文件描述块;
第二次逐行读取csv文件,每读取完一行数据就将其写入SEG-2文件对应这一行的描述块和数据块。
csv文件的每一行数据包括工程信息、通道信息和采集数据三个部分,其中工程信息和通道信息为数据描述信息,在第一次逐行读取csv文件时,对每一行都单个提取出每个通道信息数据,只提取其中一行的工程信息数据。
单个数据描述信息转换为数字+关键词+空格或制表符+单个数据描述信息+‘\0’的字符串,数字表示该字符串所占字节数;累加每一个数据描述信息字符串字节数再加2得到该行数据描述信息字符串总字节数;同时记录该行通道信息数据中的采集数据长度信息。
第二次逐行读取第i行csv文件,将第一次逐行读取csv文件得到的通道信息数据写入seg文件的第i道描述块,然后再把第二次逐行读取得到第i行的采集数据写入seg文件的第i道数据块。
下面以将图5所示的csv数据文件转换为SEG-2格式存储为例介绍具体过程。
图6是本发明基于采集数据行解析的地震SEG-2格式存储过程流程图,本方法的实施实例分为5个阶段,具体包括:
A.按行读取图5所示csv文件,对每一行的内容根据逗号分割单独提取出属于通道信息的数据。单个数据按照SEG-2中的字符串格式转换为字符串,结果存储于字符串数组content_data[i][j]。计算一行中每一个字符串的长度并累加,累加的结果再加2,得到该行字符串总长度,结果存储于int型数组stringlength_data[i]。其中i表示第i行,j表示第j个字符串。另外,对通道信息中的采集数据长度存储于int型数组datanum[i] 。
B.当读取到csv文件最后一行时,对该行的内容根据逗号分割单独提取出属于工程信息的数据。单个数据按照SEG-2中的字符串格式转换为字符串,结果存储于字符串数组content_file[j] ,其中j表示第j个字符串。计算每一个字符串的长度并累加,累加的结果再加2,得到工程信息字符串总长度,结果存储于int型变量stringlength_file。
C.记录该csv文件总行数,存储于变量LineNumOfTheFile。
D.创建SEG-2文件,开始写入“文件描述块”。根据变量LineNumOfTheFile可写入前32个字节,再写入前33-48字节:第1道描述块指针=32+LineNumOfTheFile*4 +stringlength_file,第2道描述块指针=第1道描述块指针+32+ stringlength_data[0]+datanum[0]*4,第3道描述块指针=第2道描述块指针+32+ stringlength_data[1]+datanum[1]*4,第4道描述块指针=第3道描述块指针+32+ stringlength_data[2]+datanum[2]*4。然后依次写入content_file[0]~ content_file[4] ,最后写入占2个字节的整数0。
写入第1道描述块,先写入前32个字节,其中道描述块大小=32+ stringlength_data[0],相应数据块大小= datanum[0]*4,数据块中采样点数= datanum[0],数据格式代码=5(表示64位浮点数),然后依次写入content_data[0][0]~ content_data[0][3],在字符串结尾写入占2个字节的整数0。写入第1道描述块后,接着写入第1道数据块,本发明采用读取一行写入一行的方式,读取第1行csv文件并单个提取出采集数据1~4,每个数据占4个字节,依次写入SEG-2文件。按照完成上述描述方式,完成第1道描述块和第1道数据块的写入工作,第2~4道描述块和第2~4道数据块的写入依次按照同样的顺序进行。
Claims (6)
1.一种将csv格式数据转换为SEG-2格式数据的方法,其特征在于包括:
第一次逐行读取csv文件,获取每一行的数据描述信息及总行数,创建SEG-2文件,将读取结果写入文件描述块;csv文件的每一行数据包括工程信息、通道信息和采集数据三个部分,在第一次逐行读取csv文件时,对每一行都单个提取出每个通道信息数据,只提取其中一行的工程信息数据;
第二次逐行读取csv文件,每读取完一行数据就将其写入SEG-2文件对应这一行的描述块和数据块;
SEG-2文件的描述块和数据块写入包括:第二次逐行读取第i行csv文件,将第一次逐行读取csv文件得到的通道信息数据写入seg文件的第i道描述块,然后再把第二次逐行读取得到第i行的采集数据写入seg文件的第i道数据块。
2.根据权利要求1所述将csv格式数据转换为SEG-2格式数据的方法,其特征在于:单个通道信息数据转换为数字+关键词+空格或制表符+单个通道信息数据+‘\0’的字符串,数字表示该字符串所占字节数;累加每一个通道信息数据字符串字节数再加2得到该行通道信息数据字符串总字节数;同时记录该行通道信息数据中的采集数据长度信息。
3.根据权利要求2所述将csv格式数据转换为SEG-2格式数据的方法,其特征在于:单个工程信息数据转换为数字+关键词+空格或制表符+单个工程信息数据+‘\0’的字符串,累加每一个工程信息数据字符串字节数,再加2得到工程信息数据字符串总字节数。
4.根据权利要求3所述将csv格式数据转换为SEG-2格式数据的方法,其特征在于SEG-2文件的文件描述块中:道数N=csv文件总行数,道指针子块大小=csv文件行数*4,第1道描述块指针=32+道指针子块大小+工程信息数据字符串总字节数,第i道描述块指针=第i-1道描述块指针+32+第i-1行通道信息数据字符串总字节数+第i-1行采集数据长度*H,H的数值由数据形式确定,N≥i>1。
5.一种将csv格式数据转换为SEG-2格式数据的装置,包括处理器及存储器,其特征在于:处理器执行存储器中的计算机程序,该计算机程序用于执行以下过程:第一次逐行读取csv文件,获取每一行的数据描述信息及总行数,创建SEG-2文件,将读取结果写入文件描述块;csv文件的每一行数据包括工程信息、通道信息和采集数据三个部分,其中工程信息和通道信息为数据描述信息,在第一次逐行读取csv文件时,对每一行都单个提取出每个通道信息数据,只提取其中一行的工程信息数据;
第二次逐行读取csv文件,每读取完一行数据就将其写入SEG-2文件对应这一行的描述块和数据块;
第二次逐行读取第i行csv文件,将第一次逐行读取csv文件得到的通道信息数据写入seg文件的第i道描述块,然后再把第二次逐行读取得到第i行的采集数据写入seg文件的第i道数据块。
6.根据权利要求5所述将csv格式数据转换为SEG-2格式数据的装置,其特征在于:单个数据描述信息转换为数字+关键词+空格或制表符+单个数据描述信息+‘\0’的字符串,数字表示该字符串所占字节数;累加每一个数据描述信息字符串字节数再加2得到该行数据描述信息字符串总字节数;同时记录该行通道信息数据中的采集数据长度信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910745272.7A CN110674199B (zh) | 2019-08-13 | 2019-08-13 | 将csv格式数据转换为SEG-2格式数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910745272.7A CN110674199B (zh) | 2019-08-13 | 2019-08-13 | 将csv格式数据转换为SEG-2格式数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674199A CN110674199A (zh) | 2020-01-10 |
CN110674199B true CN110674199B (zh) | 2022-11-08 |
Family
ID=69068578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910745272.7A Active CN110674199B (zh) | 2019-08-13 | 2019-08-13 | 将csv格式数据转换为SEG-2格式数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674199B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111898340A (zh) * | 2020-07-30 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 文件的处理方法、设备及可读存储介质 |
CN112232028B (zh) * | 2020-10-28 | 2023-01-03 | 南方电网科学研究院有限责任公司 | 录波通道数据的处理方法、装置、终端设备及存储介质 |
CN113533936A (zh) * | 2021-07-13 | 2021-10-22 | 上海矽昌微电子有限公司 | 一种芯片扫描链测试方法和系统 |
CN115392160B (zh) * | 2022-06-10 | 2024-04-09 | 无锡芯光互连技术研究院有限公司 | 一种电路图描述文件的格式转换方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1888933A (zh) * | 2005-06-28 | 2007-01-03 | 中国石油集团东方地球物理勘探有限责任公司 | 横波或转换横波勘探近地表表层结构调查方法 |
CN105488058A (zh) * | 2014-09-17 | 2016-04-13 | 华中科技大学 | 一种电力系统故障录波格式转换方法 |
CN107728195A (zh) * | 2017-08-25 | 2018-02-23 | 武汉市工程科学技术研究院 | 基于无线数据传输的浅层地震勘探系统及勘探方法 |
CN109376120A (zh) * | 2018-10-31 | 2019-02-22 | 南方电网科学研究院有限责任公司 | 一种内存优化的数据文件格式转化方法、装置及存储介质 |
EP3454210A1 (en) * | 2017-09-08 | 2019-03-13 | Accenture Global Solutions Limited | Prescriptive analytics based activation timetable stack for cloud computing resource scheduling |
-
2019
- 2019-08-13 CN CN201910745272.7A patent/CN110674199B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1888933A (zh) * | 2005-06-28 | 2007-01-03 | 中国石油集团东方地球物理勘探有限责任公司 | 横波或转换横波勘探近地表表层结构调查方法 |
CN105488058A (zh) * | 2014-09-17 | 2016-04-13 | 华中科技大学 | 一种电力系统故障录波格式转换方法 |
CN107728195A (zh) * | 2017-08-25 | 2018-02-23 | 武汉市工程科学技术研究院 | 基于无线数据传输的浅层地震勘探系统及勘探方法 |
EP3454210A1 (en) * | 2017-09-08 | 2019-03-13 | Accenture Global Solutions Limited | Prescriptive analytics based activation timetable stack for cloud computing resource scheduling |
CN109376120A (zh) * | 2018-10-31 | 2019-02-22 | 南方电网科学研究院有限责任公司 | 一种内存优化的数据文件格式转化方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
microseismic data acquisition,processing,and event characterization at the illinois basin-decatur project;Robert Will等;《international journal of greenhouse gas control》;20160407;404-420 * |
浅层反射波的采集及处理技术研究;李东链;《中国优秀硕士学位论文全文数据库 基础科学辑》;20170315(第3期);A011-641 * |
Also Published As
Publication number | Publication date |
---|---|
CN110674199A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674199B (zh) | 将csv格式数据转换为SEG-2格式数据的方法及装置 | |
CN110085210B (zh) | 交互信息测试方法、装置、计算机设备及存储介质 | |
US8005992B1 (en) | Scalable storage and retrieval of multiple asynchronous signals | |
CN103544185B (zh) | 一种测井数据文件存储方法 | |
CN109669917A (zh) | 一种基于优先级分组的波形存储方法 | |
CN114090736A (zh) | 一种基于文本相似度的企业行业识别系统及识别方法 | |
CN110175317A (zh) | 一种txt批量转Excel的数据方法 | |
KR100882864B1 (ko) | 디지털 포렌식 시스템을 위한 대용량 데이터 고속 검색시스템 및 방법 | |
CN109143342B (zh) | 一种地震勘探无线采集数据融合方法 | |
CN115567166B (zh) | 一种利用gpu进行总线数据并行计算译码的方法 | |
CN103969484A (zh) | 高刷新率波形合成器和高刷新率示波器 | |
CN102906740A (zh) | 压缩数据记录和处理压缩数据记录的方法和系统 | |
CN111831712B (zh) | 一种基于深度学习的矿物光谱数据快速检索方法及系统 | |
CN110874398B (zh) | 违禁词处理方法、装置、电子设备及存储介质 | |
CN1226692C (zh) | 基于语义语言的机器翻译系统及方法 | |
CN112990320A (zh) | 一种岩性的分类方法、装置、电子设备及存储介质 | |
CN116450586B (zh) | 火箭数据解析方法、系统、电子设备及计算机存储介质 | |
CN116933143B (zh) | 一种飞行参数数据分类方法 | |
CN117251532B (zh) | 一种基于动态多级匹配的大规模文献机构消歧方法 | |
CN113239105B (zh) | 一种野外科学观测数据表头表尾自动检测入库的方法 | |
CN114637845B (zh) | 模型测试方法、装置、设备和存储介质 | |
CN108804542B (zh) | 一种基于内存运算的快速获取文件增量方法 | |
CN101781986B (zh) | 录井系统中曲线数据数值流传输与解析的方法与装置 | |
CN116756516A (zh) | 一种计算机信息筛选装置 | |
CN117555670A (zh) | 一种混叠数据拆分系统、方法及服务器集群 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |