CN117555670A - 一种混叠数据拆分系统、方法及服务器集群 - Google Patents

一种混叠数据拆分系统、方法及服务器集群 Download PDF

Info

Publication number
CN117555670A
CN117555670A CN202210938447.8A CN202210938447A CN117555670A CN 117555670 A CN117555670 A CN 117555670A CN 202210938447 A CN202210938447 A CN 202210938447A CN 117555670 A CN117555670 A CN 117555670A
Authority
CN
China
Prior art keywords
data
splitting
split
module
aliasing
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.)
Pending
Application number
CN202210938447.8A
Other languages
English (en)
Inventor
王增波
王文闯
王宝彬
杜吉国
尚民强
赵剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cnpc Oil Gas Exploration Software National Engineering Research Center Co ltd
China National Petroleum Corp
BGP Inc
Original Assignee
Cnpc Oil Gas Exploration Software National Engineering Research Center Co ltd
China National Petroleum Corp
BGP Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cnpc Oil Gas Exploration Software National Engineering Research Center Co ltd, China National Petroleum Corp, BGP Inc filed Critical Cnpc Oil Gas Exploration Software National Engineering Research Center Co ltd
Priority to CN202210938447.8A priority Critical patent/CN117555670A/zh
Publication of CN117555670A publication Critical patent/CN117555670A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Geophysics And Detection Of Objects (AREA)

Abstract

一种混叠数据拆分系统、方法及服务器集群,系统包括:初始化功能模块,初始化功能模块配置用于创建用于混叠数据拆分的多个数据结构;扫描信号相关运算初始化模块,扫描信号相关运算初始化模块配置用于获取并解析扫描信号数据文件,使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象;震源炮点信息处理模块,震源炮点信息处理模块配置用于解析震源数据并基于多个数据结构将震源数据进行提取并生成炮点信息容器;混叠数据拆分实施模块,混叠数据拆分实施模块配置用于基于扫描信号相关对象和炮点信息容器对混叠数据进行拆分。本发明提出的方案采用多线程或分布式的并行处理,大大提高混叠数据拆分效率。

Description

一种混叠数据拆分系统、方法及服务器集群
技术领域
本发明属于物理勘探的数据处理领域,具体涉及一种混叠数据拆分系统、方法及服务器集群。
背景技术
随着勘探技术的不断进步,采集新技术不断涌现,先后出现了交替扫描、滑动扫描、独立同步扫描、超高效混叠采集等高效采集技术,尤其混叠采集技术的应用加快了地震数据量的增长,单一工区采集的地震数据量达到了PB级。为了降低勘探成本,混叠采集技术使用了多组可控震源连续工作的方式和大道数无线节点持续接收记录的工作方式,每个无线节点记录了多台可控震源相互重叠的长记录。虽然混叠数据采集施工效率高,但是这些长记录中的混叠数据不能被常规处理流程直接使用,需要把长记录进行相关、切分、对相应的炮点与接收点信息提取及组装等多步处理形成常规流程能处理的地震数据,该过程称混叠数据的拆分,也称混叠数据的伪分离。不管采集现场数据质控,还是混叠数据处理项目,都需要先对混叠数据进行拆分,否则后续的地震数据处理不能进行。可见,混叠数据拆分的效率,既影响采集施工的进度,也影响地震数据处理项目的进度。保证混叠采集施工的效率最直接最有效的方式,就是对当前采集的混叠数据进行处理质控。如果数据质控的最终结果或效果存在问题,就需要及时查找采集设备或施工过程中存在的问题。保证混叠数据处理项目的进度,可以通过缩小混叠数据的拆分在整个处理项目时间的比例。目前的混叠数据拆分技术效率低,人工干预的步骤多,导致采集现场数据质控需要通过其它的方式间接质控,或者抽取小部分混叠数据质控;混叠数据处理项目的拆分只能通过增加硬件资源、作业数量等操作来缩短单节点上的拆分时间、提高混叠数据拆分的效率来解决这些问题。
根据混叠数据的特点,对混叠数据的拆分:由于需要读写的数据量大,拆分属于IO密集型任务;由于拆分方法的计算量大,其又属于CPU密集型任务。混叠数据的拆分方法涉及的数据种类多:地震数据、特征信号数据、震源信息、数据索引等,如果保证处理这些数据的高效性,必然导致拆分方法的复杂性。拆分方法包括两个主要核心功能:切分和相关。切分功能特点:需读入要拆分的混叠数据,输入的数据量大,但计算量不大,计算主要涉及查询震源信息、对震源起振的时间和采集的时间转换及比较、数据截取或拼接及拷贝等工作。目前业界把切分功能单独实现,这样需要增加输出一份切分后的数据,正常情况下,输出的数据量远大于混叠数据量。相关功能特点:运算量大,需输出计算后的结果,输出的数据量大。目前业界把相关功能单独实现,需要读取相关运算的切分数据,这样会导致输入工作量变大,并且依赖于处理系统提供的数据道方式,相关效率低。虽然切分和相关功能分开设计会简化算法的复杂性,但会严重影响混叠数据拆分的效率,同时会增加多倍地震数据存储空间。
因此,亟需一种高效的数据拆分解决方案。
发明内容
为解决以上问题,本发明提出了一种混叠数据拆分系统,包括:
初始化功能模块,所述初始化功能模块配置用于创建用于混叠数据拆分的多个数据结构;
扫描信号相关运算初始化模块,所述扫描信号相关运算初始化模块配置用于获取并解析扫描信号数据文件,使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象;
震源炮点信息处理模块,所述震源炮点信息处理模块配置用于解析震源数据并基于所述多个数据结构将所述震源数据进行提取并生成炮点信息容器;
混叠数据拆分实施模块,所述混叠数据拆分实施模块配置用于基于所述扫描信号相关对象和炮点信息容器对混叠数据进行拆分。
在本发明的一些实施方式中,系统还包括:
拆分线程创建模块,所述拆分线程创建模块配置用于根据初始化功能模块中的计算线程有界队列创建与所述计算线程有界队列个数相同的拆分线程,以及响应于所述拆分线程执行完拆分任务释放对应的拆分线程。
在本发明的一些实施方式中,系统还包括:
启动拆分线程模块,所述启动拆分线程模块配置用于通过所述拆分线程调用所述混叠数据拆分实施模块以实现所述混叠数据拆分实施模块对拆分数据进行拆分,并将拆分后的数据信息保存到所述到计算线程有界队列。
在本发明的一些实施方式中,系统还包括:
数据道属性转换模块,所述数据道属性转换模块配置用于根据用户提供的数据道属性的定制转换关系模板和/默认转换关系模板生成一个或多个转换关系容器。
在本发明的一些实施方式中,系统还包括:
拆分数据存储模块,所述拆分数据存储模块配置用于基于所述一个或多个转换关系容器生成输出数据结构体,并基于所述输出数据结构体创建输出数据缓冲区。
在本发明的一些实施方式中,系统还包括:
拆分数据管理模块,所述拆分数据管理模块配置用于从所述初始化功能模块中获取对应的计算线程有界队列,并从所述计算线程有界队列中读取对应的拆分后的数据信息,根据所述拆分后的数据信息读取对应的拆分后的数据保存到所述输出数据缓冲区。
在本发明的一些实施方式中,所述混叠数据拆分实施模块还配置用于基于所述扫描信号相关对象、一个或多个转换关系容器和炮点信息容器对混叠数据进行拆分。
在本发明的一些实施方式中,系统还包括:
混叠数据处理模块,所述混叠数据处理模块配置用于获取并解析混叠数据文件,根据混叠数据文件中的接收点信息对混叠数据文件进行分类,并将分类后的混叠数据文件名与对应的接收点信息保存到所述初始化功能模块创建的混叠数据并发队列。
本发明的另一方面还提出一种混叠数据拆分方法,包括:
创建多个用于混叠数据拆分的数据结构;
获取并解析扫描信号数据文件,使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象;
解析震源数据并基于所述多个数据结构将所述震源数据进行提取并生成炮点信息容器;
基于所述扫描信号相关对象和炮点信息容器对混叠数据进行拆分。
本发明的又一方面还提出一种分布式服务器集群,所述服务器集群包括若干个节点,任一节点均部署有上述实施方式中所述的系统。
通过本发明提出的一种混叠数据拆分系统,通过根据用户提供的扫描信号文件生成扫描信号相关对象,以及通过对震源数据进行提取并生成炮点信息容器,基于扫描信号相关对象和炮点信息容器对混叠数据进行拆分,采用多线程或分布式的并行处理。大大提高混叠数据拆分效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种混叠数据拆分系统的结构示意图;
图2为本发明实施例提供的一种混叠数据拆分系统的结构示意图;
图3为本发明实施例提供的一种混叠数据拆分方法的方法流程图;
图4为本发明实施例提供的一种服务器集群的结构示意图;
图5为本发明实施例提供的性能验证示意图;
图6为本发明实施例提供的用户配置拆分数据的界面示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
本发明旨在解决物理勘探领域的数据处理难题,在本发明中所要处理或拆分的数据为物理勘探中接收点所采集的多台可控震源相互重叠的长记录也称混叠数据,混叠数据是接收点采集的该接收点长时间的震动信息,以道为单位,即每一个数据是由多道组成,每一道类似于一条数据,但不同的是一道数据的数据内容部分记录的是一段时内该接收点监测到的震动的信息和本道的属性信息,例如可以是该接收点在1分钟内采集的震动信息。每一道数据具有一个起始时间,表示这一道数据是从什么时刻开始采集的,基于此可以提取到在该起始时间后一分钟内其他时刻对应的震动信息。当然每一道数据中还包括其他标记或记录勘探数据的其他属性。而对应时间点的震动信息则有可能是有用的数据,因此需要将每一道数据中有效的数据或者相邻道中有效的数据拆分处理后才能用于分析计算,而在物理勘探中接收点越多则收集到的数据越多,在相应的勘探技术不变的情况下,接收点越多和同时工作的可控震源越多则在一定程度上能够收集到更多的关于勘探地点的地质中地震波的传播数据,基于丰富的数据可更好的探测出勘探地的地质构造情况,随之而来的造成更大更多的混叠数据需要拆分。
如图1所示,为解决以上问题,本发明提出了一种混叠数据拆分系统,包括:
初始化功能模块1,所述初始化功能模块1配置用于创建用于混叠数据拆分的多个数据结构;
扫描信号相关运算初始化模块9,所述扫描信号相关运算初始化模块9配置用于获取并解析扫描信号数据文件,使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象;
震源炮点信息处理模块3,所述震源炮点信息处理模块3配置用于解析震源数据并基于所述多个数据结构将所述震源数据进行提取并生成炮点信息容器;
混叠数据拆分实施模块4,所述混叠数据拆分实施模块4配置用于基于所述一个或多个转换关系容器和炮点信息容器对混叠数据进行拆分。
在本发明的实施例中,初始化功能模块1用于根据拆分任务的数据量和执行拆分任务的计算机硬件资源初始化相应的数据结构基础。即完成混叠数据拆分的准备工作。初始化功能模块创建多个数据结构,具体地,在本发明的实施例中,多个队列包括:
计算线程有界队列,计算线程有界队列与执行拆分任务的线程有关,计算线程有界队列可根据当前计算环境的内核数进行设定,即以CPU核心数量设定对应个数的拆分线程数量,同时基于拆分线程数量设定计算线程有界队列,特别地,拆分线程的数量可由用户设定。
计算线程有界队列用于存储对应的拆分线程的执行结果,即拆分线程将对应的拆分任务完成后,将拆分后的混叠数据信息(混叠数据对象)和拆分后的拆分数据(拆分后数据道缓冲区地址)以及与拆分数据对应的炮点信息容器数据。
混叠数据并发队列,混叠数据并发队列是用于存储待拆分的混叠数据的队列,且混叠数据并发队列中保存的是一个接收点的混叠数据信息(保存对应混叠数据的文件名等相关信息,并非保存一个接收点的混叠数据),混叠数据并发队列中的元素只能由一个拆分线程访问并获取。并以此来保证同一个接收点的混叠数据仅由一个拆分线程处理。
混叠数据文件列表,混叠数据文件列表用于记录对应的混叠数据文件的地址,混叠数据记录的文件数量与采集施工的接收点数量有关,文件多,因此,在混叠数据文件列表中使用目录形式或通配符的形式来指定需拆分的混叠数据。列表的内容是接收点采集的共检波点连续记录文件(混叠数据)。
可控震源信息格式表,可控震源信息格式表是用于提取震源信息的格式表,可由用户指定对应信息格式,例如野外文件号、线号、站号、大地坐标、高程、震源起振的date及time、起振的GPS时间等。每条信息包含:炮点信息文件的起始、终了字节位置。通过震源信息格式表可从用户提供的炮点信息文件中提取对应的炮点信息。需要说明的是在物理勘探领域震源常常称为“炮点”即指发生震动产生地震波的来源。下文中炮点信息和震源信息相同。
上述计算线程有界队列、混叠数据并发队列、可控震源信息格式表、混叠数据文件列表均为初始化功能模块1在系统开始运行时建立。
在本实施例中,扫描信号相关运算初始化模块9用于对混叠数据拆分时的相关算法进行初始化,相关算法是指将混叠数据中记录的基于时间域的数据进行计算后得到关于频率域的数据的计算方法,相关算法使用的信号数据可来自于文本文件,也可以来自于SEGY(Society of Exploration Geophysicists,石油勘探行业地震数据的格式,一般以地震道为单位进行组织,采用SEG-Y文件格式存储)数据。主线程创建全局性质的扫描信号相关对象,拆分算法的所有子线程都使用该全局对象。相关算法需要使用一次正向、一次逆FFT运算,在进行FFT运算时,将浮点类型缓冲区组合成长度只有一半的复数类型缓冲区,不再需将实数变为复数进行存储来提高运算效率。扫描信号相关运算初始化模块9初始化后生成扫描信号相关对象,生成扫描信号相关对象和扫描信号相关对象执行时执行的具体步骤如下:
步骤1.1、信号数据如果来自于文本文件,解析文本文件,提取扫描信息,分配信号数据缓冲区。进入步骤1.3。
步骤1.2、信号数据如果来自于SEGY文件,解析SEGY文件,提取对应属性的数据道,分配信号数据缓冲区。进入步骤1.3。
步骤1.3、使用参考信号的长度、拆分输出数据的长度进行相关算法初始化,得到FFT浮点类型缓冲区和复数类型缓冲区的长度。这些长度是为开辟数据缓冲区使用,相关算法要求各个拆分子线程内部提供独立的数据缓冲区。
步骤1.4、把扫描信号从时间域转换为频率域。对扫描信号缓冲区内大于扫描长度的部分进行填充0值,每个线程内调用一次。
步骤1.5、把输入数据进行相关,输出相关后的结果。需要把输入数据缓冲区大于扫描长度+输出长度的部分填充0值,相关后的结果放入数据缓冲区的前部分。
在本发明的实施例中,震源炮点信息处理模块3有两个用途:①提供混叠数据的切分时间;②拆分后数据道的炮点属性。由于在实际的物理勘探中可控震源炮点数量大,炮点信息会存储在多个文件或者多个目录中,在使用时需要将炮点信息从对应的多个文件或者多个目录下的文件中取出对应的炮点数据,本发明支持炮点信息文件是目录的形式或通配符的形式。进一步,炮点信息中起振时间的记录格式是UTC+微秒的形式,而混叠数据的时间是GPS形式,在通过炮点信息拆分混叠数据时需要把时间格式统一。GPS时间是连续的整型数值,方便比较大小与计算,本发明把UTC时间转换为GPS时间,转换过程中需要处理闰秒的影响。进一步处理过程如下:
解析炮点信息的文件列表,获取各个炮点信息文件。
读取所有炮点信息文件内容,基于每一条炮点信息数据创建炮点信息对象,把每个炮点的UTC时间转换为GPS时间,并把炮点对象放入炮点信息容器中。
根据GPS时间对炮点信息容器中的元素进行从小到大排序。有序的炮点信息容器为拆分线程数据切分提供快速查找定位等功能。
进一步,在本实施例中混叠数据拆分实施模块4则获取数据道属性转换模块2中的定制转换关系容器和默认转换关系容器提供的拆分数据的转换关系解析混叠数据,并按照炮点信息容器中提供的对应炮点的GPS时间将与接收点数据GPS时间相匹配的数据提取出来。具体过程如下:
步骤2.1、为拆分实施初始化。具体步骤如下:
步骤2.1.1、获取炮点信息容器,即从上述震源炮点信息处理模块3中获取炮点信息容器
步骤2.1.2、创建扫描信号相关对象并对其进行初始化,即从扫描信号相关运算初始化模块9只获取对应的扫描信号相关对象。
步骤2.1.3、从扫描信号相关对象中获取拆分后数据道的长度。
步骤2.1.4、计算切分后数据道的缓冲区长度。
步骤2.2、从混叠数据并发队列中获取一个共接收点混叠数据的文件集合,创建与之对应的SEGD对象。
步骤2.3、SEGD对象打开混叠数据文件,初始化是否保存了一道数据道标志HAS_PREV_TRACE为FALSE。如果第一次执行该步骤,打开文件集合中第一个混叠数据文件,否则,打开文件集合中的下一个混叠数据文件。如果打开失败,执行步骤2.4,如果打开成功,执行步骤2.5。
步骤2.4、放弃对当前文件的拆分,如果有下一个文件,执行步骤2.3,否则结束。
步骤2.5、获取SEGD对象的采样间隔、道长信息,计算出一个小时采集的数据道数、缓冲区的长度、缓冲区对应的时间长度、分配数据缓冲区。
步骤2.6、从SEGD对象中读取数据道、拼接数据、拷贝数据到缓冲区等。具体步骤如下:
步骤2.6.1、初始化数据道计数为0,如果HAS_PREV_TRACE标志为TRUE,代表已经至少执行过一次步骤1.6,并且当前SEGD对象中已经预读了一数据道,执行步骤2.6.2;否则,执行步骤2.6.3。
步骤2.6.2、数据道计数置为1,设置当前道的GPS时间为缓冲区的起始GPS时间,从缓冲区开始位置拷贝当前数据道的数据,计算缓冲区中数据的结尾GPS时间,缓冲区中道数设置为1。执行步骤2.6.4。
步骤2.6.3、如果缓冲区的起始GPS时间是有效值,代表缓冲区中有未进行相关的数据,移动缓冲区中最后一个扫描长度+输出长度的数据到缓冲区开始处,修改缓冲区的起始GPS时间。执行步骤2.6.4。
步骤2.6.4、设置HAS_PREV_TRACE标志为FALSE。
步骤2.6.5、如果缓冲区满或SEGD对象中的当前数据文件到达最后数据道,步骤2.6结束。否则进入下一个步骤。
步骤2.6.6、从SEGD对象中读取一道数据,如果缓冲区为空,执行步骤2.6.7,否则,执行步骤2.6.8。
步骤2.6.7、设置该道的GPS时间为缓冲区的起始GPS时间,拷贝当前数据道的数据到缓冲区中,并计算缓冲区当前数据的结尾GPS时间。执行步骤2.6.5。
步骤2.6.8、比较当前道的GPS时间与缓冲区的结尾GPS时间,如果不相等,代表采集的数据道之间不连续,有中断,执行步骤2.6.9,否则执行步骤2.6.10。
步骤2.6.9、设置HAS_PREV_TRACE标志为TRUE,代表SEGD对象中当前数据道没有处理,步骤2.6结束。
步骤2.6.10、追加当前数据道的数据到缓冲区中,更新缓冲区的结尾GPS时间。执行步骤2.6.5。
步骤2.7、对缓冲区中的数据进行相关运算、相关后的数据道及其炮点位置信息追加到拆分结果对象容器中。具体步骤如下:
步骤2.7.1、获取缓冲区的当前数据位置对应的炮点对象。具体步骤如下:
步骤2.7.1.1、获得炮点信息容器对象,如果当前接收点第一次执行该步骤,炮点计数器置为0。
步骤2.7.1.2、如果炮点计数器大于炮点个数,所有炮点搜索完毕,进入步骤1.7.2,否则,进入步骤2.7.1.3。
步骤2.7.1.3、提取炮点计数器位置对应炮点对象,获取其GPS时间。
步骤2.7.1.4、如果炮点GPS时间小于缓冲区的起始时间,炮点计数器累加,执行步骤2.7.1.3,否则,进入步骤2.7.1.5。
步骤2.7.1.5、如果炮点GPS时间小于缓冲区结尾GPS时间-相关要求输入数据的时间,进入步骤2.7.2,否则缓冲区数据处理完毕,进入步骤2.8。
步骤2.7.2、通过炮点GPS时间定位缓冲区数据的位置,拷贝数、填充数据等,执行步骤2.5,获得相关后的数据。
步骤2.7.3、创建新的相关后数据对象,保存当前炮点计数器值、拷贝相关数据道到相关后数据缓冲区。
步骤2.7.4、炮点计数器累加,相关后数据对象放入临时炮点信息容器中,执行步骤2.7.1。
步骤2.8、SEGD对象打开下一个混叠数据文件。如果打开正确,执行步骤2.6,否则步骤2结束。
在本实施例中,混叠数据拆分实施模块4将对应的混叠数据根据炮点信息容器提供的炮点的GPS时间信息将拆分数据中与该GPS时间相关的数拆分出来并保存到缓冲区(拆分线程的缓冲区),同时将炮点信息容器与拆分数据相关的炮点信息同样保存到新的炮点信息容器(与震源炮点信息处理模块3生成的炮点信息容器内容不同,新的炮点信息容器相当于震源炮点信息处理模块3生成的炮点信息容器的子集,表示与拆分的混叠数据相关的炮点信息容器)中。实现混叠数据的拆分在本发明的一些实施方式中,系统还包括:
拆分线程创建模块5,所述拆分线程创建模块5配置用于根据初始化功能模块1中的计算线程有界队列创建与所述计算线程有界队列个数相同的拆分线程,以及响应于所述拆分线程执行完拆分任务释放对应的拆分线程。
如图2所述,在本实施例中,混叠数据拆分系统还包括拆分线程创建模块5配置用于创建多个拆分线程,具体地根据初始化功能模块1中的计算线程有界队列的元素个数创建对应个数的拆分线程,并监控拆分线程的运行状态,在拆分线程执行完成之后释放掉对应的拆分线程。具体步骤如下:
步骤3.1获得计算线程有界队列容量,该数值代表拆分计算线程的数量。
步骤3.2创建各个拆分子线程。
步骤3.3等待所有拆分子线程结束,释放线程对象。
步骤3.4创建一个特殊含义的拆分结果对象,把该对象中的混叠数据对象成员置为空指针,再把拆分结果对象追加到计算线程有界队列中,该拆分结果对象标志着所有的混叠数据已经拆分完成。
在本发明的一些实施方式中,系统还包括:
启动拆分线程模块6,所述启动拆分线程模块配置用于通过所述拆分线程调用所述混叠数据拆分实施模块4以实现所述混叠数据拆分实施模块对拆分数据进行拆分,并将拆分后的数据信息保存所述到计算线程有界队列。
进一步,如图2所述,在本实施例汇总,混叠数据拆分系统中还包括,启动拆分线程模块6,启动拆分线程模块6用于控制上述实施例创建的拆分线程执行对应的混叠数据拆分任务。每一个拆分线程在启动后会在拆分线程内执行混叠数据拆分实施模块4的实例,通过多个拆分线程并行执行混叠数据拆分实施模块4的实例来实现对混叠数据的拆分。具体步骤如下:
步骤4.1、从混叠数据记录并发队列中获取一个元素对象。如果获取失败,代表队列为空,所有的混叠数据已经正在处理或者处理完毕,进入步骤4.2,如果获取成果,即得到一个需要拆分的共检波点混叠数据,进入步骤4.3。
步骤4.2、本线程结束。
步骤4.3、创建混叠数据拆分实施对象。
步骤4.4、设置拆分后地震数据道的长度和真值恢复。
步骤4.5、执行混叠数据拆分实施对象的拆分功能,跳转到步骤2.1。步骤2.1(即执行混叠数据拆分实施模块4的具体实施步骤)返回表示已经把拆分的结果对象放入计算线程有界队列中。进入步骤4.1。
在本发明的一些实施方式中,系统还包括:
数据道属性转换模块2,所述数据道属性转换模块配置用于根据用户提供的数据道属性的定制转换关系模板和/默认转换关系模板生成一个或多个转换关系容器。
在本发明的实施例中,数据道属性转换模块2则提供数据道属性的定制转换关系模板和默认转换关系模板,定制转换关系模板的目的是提供设置拆分数据道的属性的灵活性和简洁性。让用户可以通过转换关系模板控制拆分后的地震数据道头的个数及内容。数据道默认转换关系模板则根据标准的SEGD格式设定的默认的数据道属性的转关关系模板,可通过二者将混叠数据中的数据按照模板中的转换关系读取出对应的数据内容。如果用户在拆分数据不需要额外的数据道属性,可以不设置定制的转换关系模板。
数据道属性转换模块2根据定制转换关系模板和默认转换关系模板生成对应的转换关系容器,包括如下步骤:
步骤5.1、解析定制转换关系模板。模板中每个数据道属性由多列组成,包括:属性的数据块类型、记录格式类型、字节位置、字节长度、默认数值、比例运算等。解析的具体步骤如下:
步骤5.1.1、解析定制转换关系模板中的数据块类型。记录数据道属性来自于混叠数据的数据块类型,数据块的类型分为三种:
1、GENERAL_HEADER,表示属性信息来自于混叠数据的总头块。
2、CHANNEL_GROUP,表示属性信息来自于混叠数据的通道组。
3、TRACE_HEADER,表示属性信息来自于混叠数据的道头块。
步骤5.1.2、解析定制转换关系模板中的记录格式等信息。数据道属性在混叠数据中使用的记录格式,分为七种类型:
1、INT、UNINT,分别表示有符号整型、无符号整型,其字节长度取值为:1、2、4、8,代表字节的数量。
2、BIT、UNBIT,分别表示有符号位类型、无符号位类型,其字节长度的格式由两部分组成:起始位、位数。
3、FLOAT,表示浮点类型,其字节长度取值为:4、8,4代表单精度、8代表双精度。
4、STRING,表示字符类型,其字节长度代表字符的数量,模块会根据输出数据道属性的数据类型把字符串的内容进行相应的转换。
5、BCD,表示二进制转十进制类型,每4位转换为一个十进制数字,字节长度取值为:1、2、22、3、32、4、6、8等,分别代表:前半个字节、后半个字节、整个字节、前一个半字节、后一个半字节、2个字节、3个字节、4个字节等。
步骤5.1.3、解析定制转换关系模板中的属性比例因子,表示对提取的属性数值进行进一步的乘、除运算。
步骤5.1.4、对每个转换的属性创建一个Relation类对象,同时放入定制关系模板容器中。
步骤5.1.5、循环执行上述步骤,直至定制关系模板中对应的所有的属性解析完毕。
步骤5.2、生成默认转换关系容器。对于符合SEGD标准的数据道属性转换,如果不在定制的关系模板中,本步骤会自动增加这些数据道属性,并且给出了默认转换方式。为了提高属性的查询速度,使用hash容器来存储默认的道头转换信息。具体步骤如下:
步骤5.2.1、为每个默认转换的道头赋值一个唯一ID编号,道头的Name和ID形成一个键值对放入hash容器中。
步骤5.2.2、定义每个ID编号对应的提取属性的操作方式。操作方式有:从混叠数据对象中提取;从炮点信息对象中提取;直接赋值;多道头属性运算;比例因子运算;累加计数;统计计数等。
步骤5.2.3、遍历定制转换关系容器,从hash容器中清除已经存在于定制转换关系容器中的道属性对应的元素。
在本发明的一些实施方式中,系统还包括:
拆分数据存储模块,所述拆分数据存储模块配置用于基于所述一个或多个转换关系容器生成输出数据结构体,并基于所述输出数据结构体创建输出数据缓冲区。
如图2所示,在本实施例中,本发明提出的一种混叠数据拆分系统还包括拆分数据存储模块7,拆分数据存储模块7用于根据数据道属性转换模块2的一个或多个转换关系容器生成用于记录拆分后的混叠数据的动态道头属性列表,所谓道头属性列表是指拆分后数据对应区域的属性名称列表,类似于数据库技术中数据表的字段名称。另外,动态道头属性列表中还包括每一个道属性的数据类型、数据长度以及该属性对应的数据在每一道数据记录中的起始位置,进一步根据动态道头属性列表在内存中创建对应的缓冲区。进一步,在本发明的一些实施例中,动态道头属性列表记录了拆分后的地震数据道所具有的动态道头属性,列表的内容会随着转换关系模板内容的变化而相应的变化。使用vector容器存储各个道头Name,调整容器元素顺序,确保容器的前部分是公共属性道头,后部分是特有属性道头。其目的是在转换成动态道头属性列表后,保证公共属性道头、特有属性道头两部分在动态道头缓冲区中连续存储,为的后续存储或后续处理提升道头的操作效率。具体步骤如下:
步骤6.1、合并步骤5.1中定制关系模板容器对象和步骤5.2中hash容器对象中的道头Name,形成一个set容器对象。
步骤6.2、遍历set容器对象,如果道头是公共属性道头,将道头Name放入到对应的字符串的vector容器中。
步骤6.3、再次遍历set容器对象,如果道头是特有属性道头,将道头Name追加到字符串的vector容器中。
步骤6.4、遍历字符串的vector容器对象,获取道头Name对应的动态道头属性结构,计算道头在缓冲区中的字节偏移量,构建动态道头Name及结构的hash容器。偏移量是通过动态道头属性中的记录类型计算得出,有五种类型:IO_INT、IO_LONG、IO_FLOAT、IO_DOUBLE、IO_STRING,分别代表是:4字节整型、8字节整型、4字节浮点、8字节浮点、字符串类型。
步骤6.5、计算道头缓冲区中公共属性部分的道头长度和特有属性部分的道头长度并分配缓冲区。
在本发明的一些实施方式中,系统还包括:
拆分数据管理模块8,所述拆分数据管理模块8配置用于从所述初始化功能模块1中获取对应的计算线程有界队列,并从所述计算线程有界队列中读取对应的拆分后的数据信息,根据所述拆分后的信息读取对应的拆分后的数据保存到所述输出数据缓冲区。
如图2所示,在本实施例中,混叠数据拆分系统还包括拆分数据管理模块8,拆分数据管理模块8在混叠数据拆分系统的主线程中执行,该模块控制着拆分数据的有序输出。各个拆分线程会把拆分后的数据对象(并不是拆分数据本身)放入计算线程有界队列,如果队列满,添加队列元素的拆分子线程会堵塞,直到队列有空余的元素,堵塞中的一个拆分线程才会继续工作。计算线程有界队列的长度已经在初始化功能模块1中设置,队列中的元素数不会超过拆分线程数。拆分结果数据的管理工作步骤如下:
步骤7.1、从计算线程有界队列获取队列的首元素。如果队列为空,即队列没有元素,会堵塞等待,直到能获取到队列中的元素。
步骤7.2、判断元素中的混叠数据对象是否为空,如果对象为空,混叠数据拆分全部结束。
步骤7.3、元素成员包括:混叠数据对象、拆分后数据道缓冲区和数据道对应的炮点信息的容器(是混叠数据拆分实施模块4中新生成的炮点信息容器,不是震源炮点信息处理模块3中的炮点信息容器)。该容器中元素的数量代表本接收点拆分后数据道的道数。本步骤需要把这些元素转换为真正意义的数据道,具体的步骤如下:
步骤7.3.1、获取容器中的第一个元素或者下一个元素,得到该元素的数据道缓冲区和该道的炮点信息对象。
步骤7.3.2、转换默认对应关系容器中的道属性。由于拆分后的数据道可能来自于混叠数据内部相邻两道的拼接或者来自相邻两个数据文件的最后一道和第一道的拼接,所以默认转换只针对混叠数据的总头块信息和炮点信息,如果定义了道头块,本模块只从最后一个文件中的最后一道的道头块中提取信息。具体步骤如下:
步骤7.3.3.1、计算炮点信息的GPS时间对应的年、秒、微秒。
步骤7.3.3.2、提取并转换混叠数据总头块中的日期、时间信息到YYYYMMDD、HHMMSS形式的标准格式。
步骤7.3.3.3、根据炮点的坐标和接收点的坐标计算接收点与炮点的距离offset。
步骤7.3.3.4、遍历默认转换关系容器,根据每个元素的要求,获取需要的数值,或者通过相应的计算,赋值给元素对应的道属性。
步骤7.3.3、转换定制转换关系的道属性。同7.3.2步骤类似,定制转换关系模板也只针对混叠数据的总头块信息有意义。
步骤7.3.4、把数据道的道属性和数据道的数据分别拷贝到控制系统的缓冲区。
步骤7.3.5、如果已经处理完容器的最后一个元素,释放混叠数据对象和所有缓冲区,步骤7.3结束。
步骤7.3.6、如果容器不为空,进入步骤7.3.1。
步骤7.4、当前接收点的拆分数据已经处理完毕,继续处理下一个接收点的数据,进入步骤7.1。
在本发明的一些实施方式中,所述混叠数据拆分实施模块配置用于基于所述扫描信号相关对象、一个或多个转换关系容器和炮点信息容器对混叠数据进行拆分。
在本实施例中,如前所述混叠数据拆分实施模块4是在拆分线程中并发执行的功能模块,前述实施例中混叠数据拆分实施模块4只是获取混叠数据和扫描信号相关对象,并根据炮点信息获取对应的GPS时间来切分混叠数据,然后通过扫描信号相关对象运算切分后的混叠数据。而在本实施例中,混叠数据拆分实施模块4将拆分数据管理模块8中的对拆分后数据处理过程嵌入到混叠数据拆分实施模块4中,即通过拆分线程实现混叠数据拆分实施模块4和拆分数据管理模块8的功能,以此来降低混叠数据拆分系统的主线程的计算压力,提供混叠数据拆分系统的数据处理能力。
在本发明的一些实施方式中,系统还包括:
混叠数据处理模块10,所述混叠数据处理模块10配置用于获取并解析混叠数据文件,根据混叠数据文件中的接收点信息对混叠数据文件进行分类,并将分类后的混叠数据文件名与对应的接收点信息保存到所述初始化功能模块创建的混叠数据并发队列。
如图2所示,在本实施例中,混叠数据拆分系统还包括混叠数据处理模块10,混叠数据处理模块10用于以接收点为类别,将多个混叠数据文件的索引关系添加到初始化功能模块1的混叠数据并发队列中,接收点的混叠数据是使用SEGD(石油勘探行业地震数据的格式)格式来记录的,数据内部记录了接收点的信息以及各数据道的GPS时间。因野外施工和设备的因素,同一接收点的混叠数据可能存储在多个SEGD文件中,这些文件中的接收点信息一致,只是GPS时间有差别。如果分开处理这些混叠数据文件,会导致相邻文件之间的数据道未拼接而丢失一炮或多炮数据,也会导致本属于同一道集的数据道分散形成多个道集,会给后续的数据处理带来效率和效果的影响。本发明对混叠数据排序分类、对分类后的混叠数据使用并发队列解决了这些问题,具体步骤如下:
步骤8.1、解析SEGD格式混叠数据,提取每个数据文件名、数据中的接收点的line、point、首道GPS时间形成自定义结构,把该结构放入混叠数据vector容器中。
步骤8.2、根据接收点的line、point大小,对混叠数据容器中的元素进行排序。
步骤8.3、对混叠数据容器中的元素进行遍历,将接收点信息相同的元素形成一个多个元素的集合,再根据集合中的每个元素的GPS时间进行排序。
步骤8.4、提取上述集合中的数据文件名形成文件名的集合,按照步骤8.3遍历的顺序,把文件名的集合放入混叠数据并发队列(即将对应的文件名保存混叠数据并发队列)。
在本发明的一些实施例中,如果计算机硬件环境的足够大可以容纳当前任务的混叠数据,也可以将混叠数据保存到混叠数据并发队列中。如图5所示,图5示出了本发明一实施例拆分1.2TB的混叠数据拆分性能关系图,在本实施例中,为了验证本发明的有效性,我们将本发明的软件部署在一个高性能集群上,并在该集群上多次进行实验。集群中每个节点配备两个Intel(R)Xeon(R)E5-2660 v3 2.6GHz CPU,每个处理器包含10个物理核,每个节点共计有20个物理核,128GB的内存,共享存储为华为存储。节点操作系统的版本为RedHat Enterprise Linux Server release 6.8(Santiago)。每次拆分测试的数据规模为混叠项目采集的实际数据1.2TB。
1.2TB混叠数据使用多个节点进行拆分性能,每个节点拆分的混叠数据量平均划分,从该图中可以看出,随着节点数量的不断增加,每个节点上的拆分软件运行的时间越来越少,每个节点运行的时间和使用的节点数量基本成反比。在图中,相邻两次拆分在各个节点上进行拆分的时间总和差距不大,节点多的总时间稍微增加一些,这是由于混叠数据可以根据计算节点平均划分,但是震源的信息不能划分,对每个节点的混叠数据进行拆分时必须使用所有震源的信息。只要共享存储能够支撑拆分方法需要的IO带宽,随着使用的计算节点越多,拆分时间越短,效率越高。
图6拆分软件的界面,本发明把数据的切分和相关进行了统一,在一个方法内实现,减少了数据处理的步骤,也减少了中间临时数据的存储。
如图3所示,本发明的另一方面还提出一种混叠数据拆分方法,包括:
步骤S1、创建多个用于混叠数据拆分的数据结构;
步骤S2、获取并解析扫描信号数据文件,并将所述扫描信号数据文件中的相关运算的算法生成扫描信号相关对象;
步骤S3、解析震源数据并基于所述多个数据结构将所述震源数据进行提取并生成炮点信息容器;
步骤S4、使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象。
如图4所示,本发明的又一方面还提出一种分布式服务器集群,所述服务器集群包括若干个节点,任一节点均部署有上述实施方式中所述的系统。
通过本发明提出的一种混叠数据拆分系统、方法及服务器集群,根据用户设定的数据道属性转换模板和/或默认的数据到属性转换模板生成一个或多个转换关系容器,以及通过对震源数据进行提取并生成炮点信息容器,基于多个转换关系容器和炮点信息容器对混叠数据进行拆分,转换关系容器和炮点信息容器均为统一的对象,可方便采用多线程或分布式的并行处理,大大提高混叠数据拆分效率。

Claims (10)

1.一种混叠数据拆分系统,其特征在于,包括:
初始化功能模块,所述初始化功能模块配置用于创建用于混叠数据拆分的多个数据结构;
扫描信号相关运算初始化模块,所述扫描信号相关运算初始化模块配置用于获取并解析扫描信号数据文件,使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象;
震源炮点信息处理模块,所述震源炮点信息处理模块配置用于解析震源数据并基于所述多个数据结构将所述震源数据进行提取并生成炮点信息容器;
混叠数据拆分实施模块,所述混叠数据拆分实施模块配置用于基于所述扫描信号相关对象和炮点信息容器对混叠数据进行拆分。
2.根据权利要求1所述的系统,其特征在于,还包括:
拆分线程创建模块,所述拆分线程创建模块配置用于根据初始化功能模块中的计算线程有界队列创建与所述计算线程有界队列个数相同的拆分线程,以及响应于所述拆分线程执行完拆分任务释放对应的拆分线程。
3.根据权利要求2所述的系统,其特征在于,还包括:
启动拆分线程模块,所述启动拆分线程模块配置用于通过所述拆分线程调用所述混叠数据拆分实施模块以实现所述混叠数据拆分实施模块对拆分数据进行拆分,并将拆分后的数据信息保存到所述到计算线程有界队列。
4.根据权利要求1所述的系统,其特征在于,还包括:
数据道属性转换模块,所述数据道属性转换模块配置用于根据用户提供的数据道属性的定制转换关系模板和/默认转换关系模板生成一个或多个转换关系容器。
5.根据权利要求4所述的系统,其特征在于,还包括:
拆分数据存储模块,所述拆分数据存储模块配置用于基于所述一个或多个转换关系容器生成输出数据结构体,并基于所述输出数据结构体创建输出数据缓冲区。
6.根据权利要求5所述的系统,其特征在于,还包括:
拆分数据管理模块,所述拆分数据管理模块配置用于从所述初始化功能模块中获取对应的计算线程有界队列,并从所述计算线程有界队列中读取对应的拆分后的数据信息,根据所述拆分后的数据信息读取对应的拆分后的数据保存到所述输出数据缓冲区。
7.根据权利要求4所述的系统,其特征在于,所述混叠数据拆分实施模块还配置用于基于所述扫描信号相关对象、一个或多个转换关系容器和炮点信息容器对混叠数据进行拆分。
8.根据权利要求1所述的系统,其特征在于,还包括:
混叠数据处理模块,所述混叠数据处理模块配置用于获取并解析混叠数据文件,根据混叠数据文件中的接收点信息对混叠数据文件进行分类,并将分类后的混叠数据文件名与对应的接收点信息保存到所述初始化功能模块创建的混叠数据并发队列。
9.一种混叠数据拆分方法,其特征在于,包括:
创建多个用于混叠数据拆分的数据结构;
获取并解析扫描信号数据文件,使用扫描信号数据文件中的信号数据生成扫描信号相关运算的对象;
解析震源数据并基于所述多个数据结构将所述震源数据进行提取并生成炮点信息容器;
基于所述扫描信号相关对象和炮点信息容器对混叠数据进行拆分。
10.一种分布式服务器集群,其特征在于,所述服务器集群包括若干个节点,任一节点均部署有如权利要求1-8所述的系统。
CN202210938447.8A 2022-08-05 2022-08-05 一种混叠数据拆分系统、方法及服务器集群 Pending CN117555670A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210938447.8A CN117555670A (zh) 2022-08-05 2022-08-05 一种混叠数据拆分系统、方法及服务器集群

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210938447.8A CN117555670A (zh) 2022-08-05 2022-08-05 一种混叠数据拆分系统、方法及服务器集群

Publications (1)

Publication Number Publication Date
CN117555670A true CN117555670A (zh) 2024-02-13

Family

ID=89813411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210938447.8A Pending CN117555670A (zh) 2022-08-05 2022-08-05 一种混叠数据拆分系统、方法及服务器集群

Country Status (1)

Country Link
CN (1) CN117555670A (zh)

Similar Documents

Publication Publication Date Title
EP3152523B1 (en) Customizable route planning using graphics processing unit
CN100449546C (zh) 搜索文本中关键词的系统及其方法
US20220121688A1 (en) Parallel data access method and system for massive remote-sensing images
CN110569214A (zh) 用于日志文件的索引构建方法、装置及电子设备
CN111782265B (zh) 基于字段级血缘关系的软件资源系统及其建立方法
KR102593171B1 (ko) 정보 처리 방법, 장치, 전자 기기 및 저장 매체
JP2022512269A (ja) Poi名を抽出する方法、装置、デバイス、プログラム及びコンピュータ記憶媒体
US11423008B2 (en) Generating a data lineage record to facilitate source system and destination system mapping
CN109299202B (zh) 一种基于GeoSciML的地质空间数据共享方法
CN110674199B (zh) 将csv格式数据转换为SEG-2格式数据的方法及装置
CN110928903A (zh) 数据提取方法及装置、设备和存储介质
US9213759B2 (en) System, apparatus, and method for executing a query including boolean and conditional expressions
CN109657197A (zh) 一种叠前深度偏移计算方法及系统
KR102243794B1 (ko) 데이터 통합 장치 및 데이터 통합 방법
CN117555670A (zh) 一种混叠数据拆分系统、方法及服务器集群
Zhonghua Seismic data attribute extraction based on Hadoop platform
CN114880308A (zh) 一种基于大数据的元数据处理方法、装置、介质
CN111817867A (zh) 分布式环境下进行多日志协同分析的方法及系统
US10558668B2 (en) Result set output criteria
CN108932334A (zh) 一种基于时间序列存储模型扩展以及匹配优化方法
CN111813555B (zh) 基于互联网技术的超融合基础架构分层资源管理系统
CN103995690A (zh) 一种基于gpu的并行时间序列挖掘方法
CN114116811A (zh) 日志处理方法、装置、设备及存储介质
Livieri et al. A needle in the stack: efficient clone detection for huge collections of source code
CN116431688B (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