System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于地球物理勘探,涉及地震数据平台技术,具体地说是一种segy磁盘数据并行加载装置及方法。
技术介绍
1、随着勘探技术的不断进步和采集新技术不断涌现,加快了采集数据量的迅速增长,尤其无线节点持续记录的采集方式,最终导致地震数据处理生产项目要加载的数据量越来越大。
2、目前业界同类处理软件没有在作业流程内实现并行加载segy数据的功能。只能对多个segy数据加载时,根据输出的数据体个数,人为把输入的segy文件分成多组,效率低。而针对单文件大道数的segy数据加载无能为力。如较常用的数据处理系统geoeast并未提供有效的并行加载segy数据技术,因此为了提高处理生产项目的效率,简化处理人员的地震数据加载的流程,提供一种有效加载segy地震数据的方法及装置势在必行。
技术实现思路
1、为解决现有技术中存在的以上不足,本专利技术旨在提供一种segy磁盘数据并行加载装置及方法,通过使用并行的方法来加载segy磁盘数据,提升海量地震数据输入的效率。
2、为实现上述目的,本专利技术所采用的技术方案如下:
3、一种segy磁盘数据并行加载装置,它包括参数解析模块、道信息统计模块、并行划分策略模块、数据定位模块和数据读取模块;参数解析模块与道信息统计模块连接,道信息统计模块与并行划分策略模块连接,并行划分策略模块与数据定位模块连接,数据定位模块与数据读取模块连接。
4、本专利技术还提供了一种segy磁盘数据并行加载方法,它是基于上述seg
5、s1.解析并行加载参数
6、将野外采集的segy磁盘文件的文件名放在segy文件容器vfiles中,解析用户输入的segy文件参数和并行加载参数,确定作业使用的并行加载模式;
7、所述segy文件参数,包括子作业总数jobs和每个子作业的序号jobid;
8、所述并行加载参数,包括子作业总数jobs和每个子作业的序号jobid;
9、所述并行加载模式,包括以文件为粒度加载和以数据道为粒度加载;
10、s2.数据道信息统计
11、s21.遍历segy文件容器vfiles中的每个元素,打开对应的segy文件,读取c-card和文件头块,提取采样间隔、样点数和变道长;
12、所述样点数是用来计算每道样点的字节长度;
13、s22.计算任意一道地震数据的字节长度;
14、s23.获取segy文件的字节大小,用字节大小减去c-card的长度和文件头块长度,即为数据道长度;
15、s24.计算每个segy文件中的道数;
16、s25.把每个segy文件的道数放入数据道容器vtraces中;
17、s3.制定数据范围划分策略
18、确定每个子作业的序号jobid负责的segy数据的加载范围,对于以文件为粒度加载的segy数据,计算出序号为jobid的子作业负责的segy文件范围;对于以数据道为粒度加载的segy数据,计算出序号为jobid的子作业负责的数据道范围;
19、s4.数据定位
20、打开segy文件容器vfiles中的第一个文件进行数据分析,分配数据道缓冲区,分别处理以文件为粒度加载的segy数据和以数据道为粒度加载的segy数据;
21、所述分配,是通过c++程序来实现,申请连续的一段内存,用来存储数据道;
22、s5.按照正常流程输入segy数据,进行数据读取。
23、作为一种限定,步骤s1中,所述确定作业使用的并行加载模式,包括依次进行的以下步骤:
24、s11.解析输入的segy磁盘文件参数
25、将野外采集的segy磁盘文件的文件名放在segy文件容器vfiles中,统计segy磁盘文件的文件数;
26、野外采集的segy磁盘文件,一般是一炮一个文件,或者是一个接收点一个文件,输入的segy数据可达到上万个;而成果数据,也是一个大的数据文件,把这些文件名放在segy文件容器vfiles中;
27、s12.解析子作业总数和每个子作业的序号
28、将子作业序号的起始值设置为1,统计子作业总数jobs和每个子作业的序号jobid;
29、如果segy磁盘文件的文件数大于等于作业总数,使用以文件为粒度加载每个子作业的segy数据;如果segy磁盘文件的文件数小于作业总数,使用以数据道为粒度加载每个子作业的segy数据。
30、作为另一种限定,步骤s22中,所述地震数据的字节长度,计算方式为道头的长度240字节与每道样点的字节长度之和。
31、作为第三种限定,步骤s3中,对于以文件为粒度加载的segy数据,执行下步骤:
32、s311.计算每个子作业负责的平均作业数量fnum,即文件名容器vfiles中的segy磁盘文件的文件数/子作业总数jobs;
33、s312.计算子作业负责的起始文件序号curseq,即fnum*(jobid-1)的值进行四舍五入;
34、s313.计算下一个子作业负责的起始文件序号nextseq,即fnum*jobid的值进行四舍五入;
35、s314.计算子作业负责的文件数curnum,即nextseq-curseq。
36、作为第四种限定,步骤s3中,以数据道为粒度加载的segy数据,执行下步骤:
37、s321.统计数据道容器vtraces中的总道数totaltraces;
38、s322.计算每个子作业负责加载的平均数据道nnum,该值为totaltraces/jobs;
39、s323.计算当前子作业jobid的起始道号curseq,起始道号为nnum*(njobid-1);
40、s324.如果jobid不是最后一个子作业,子作业负责的道数curnum为nnum,否则,子作业负责的的道数curnum为totaltraces-curseq-1;
41、s325.通过数据道容器vtraces中记录的每个segy数据道数,计算子作业负责的数据道所在的segy文件序号及其在该文件的起始道号traceseq和终止道号。
42、作为第五种限定,步骤s4中,以文件为粒度加载的segy数据,执行下步骤:
43、s411.从文件容器vfiles中删除不在该子作业范围的元素,同时删除对应的segy文件的关键字控制选择范围;
44、子作业的起始文件号如果是0,执行s412,否则执行s413;
45、子作业的文件号是用户设置的,起始文件号是0;
46、s412.如果segy数据有c-card并且需要输出,则输出c-card,数据定位结束;
47、s413.打开文件容器本文档来自技高网...
【技术保护点】
1.一种SEGY磁盘数据并行加载装置,其特征在于,它包括参数解析模块、道信息统计模块、并行划分策略模块、数据定位模块和数据读取模块;参数解析模块与道信息统计模块连接,道信息统计模块与并行划分策略模块连接,并行划分策略模块与数据定位模块连接,数据定位模块与数据读取模块连接。
2.一种SEGY磁盘数据并行加载方法,其特征在于,它是基于权利要求1中所述的SEGY磁盘数据并行加载装置进行的,该方法包括依次进行的以下步骤:
3.根据权利要求2所述的一种SEGY磁盘数据并行加载方法,其特征在于,步骤S1中,所述确定作业使用的并行加载模式,包括依次进行的以下步骤:
4.根据权利要求2所述的一种SEGY磁盘数据并行加载方法,其特征在于,步骤S22中,所述地震数据的字节长度,计算方式为道头的长度240字节与每道样点的字节长度之和。
5.根据权利要求2所述的一种SEGY磁盘数据并行加载方法,其特征在于,步骤S3中,对于以文件为粒度加载的SEGY数据,执行下步骤:
6.根据权利要求2所述的一种SEGY磁盘数据并行加载方法,其特征在于,步骤S3
7.根据权利要求2所述的一种SEGY磁盘数据并行加载方法,其特征在于,步骤S4中,以文件为粒度加载的SEGY数据,执行下步骤:
8.根据权利要求2所述的一种SEGY磁盘数据并行加载方法,其特征在于,步骤S4中,以数据道为粒度加载的SEGY数据,执行下步骤:
...【技术特征摘要】
1.一种segy磁盘数据并行加载装置,其特征在于,它包括参数解析模块、道信息统计模块、并行划分策略模块、数据定位模块和数据读取模块;参数解析模块与道信息统计模块连接,道信息统计模块与并行划分策略模块连接,并行划分策略模块与数据定位模块连接,数据定位模块与数据读取模块连接。
2.一种segy磁盘数据并行加载方法,其特征在于,它是基于权利要求1中所述的segy磁盘数据并行加载装置进行的,该方法包括依次进行的以下步骤:
3.根据权利要求2所述的一种segy磁盘数据并行加载方法,其特征在于,步骤s1中,所述确定作业使用的并行加载模式,包括依次进行的以下步骤:
4.根据权利要求2所述的一种segy磁盘数据并行加载方法,其特征在于,...
【专利技术属性】
技术研发人员:王增波,杜吉国,尚民强,侯红军,赵剑,张丽梅,
申请(专利权)人:中国石油天然气集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。