发表人:游客 2022-04-19 09:33:19 最新回复: 2022-04-19 09:33:19
AI道集模块基本流程图:

n 进入PM,获取一道地震数据(通过header和trace缓冲区),转换为SEGY数据道存储到磁盘(每道集第一次的PM需要创建新的SEGY文件),GeoEast道头保存到用户的缓冲区中。
n 调用dcb_get_gather和dcb_get_lasttrace,判断该道是否为last gather道或last trace道。如果不是last gather和last trace道,说明该道集的数据还没输入完,此时调用dcb_set_input告诉执行控制系统,模块仍需输入更多的地震道,退出本次PM。
n 下次进入PM时仍按照上述步骤操作,直到某次PM输入的地震道为last gather或者last trace,此时已经输入了一个完整的地震数据道集,关闭SEGY文件。
n 此时模块所需要的数据已经满足,使用传递参数等形式启动AI程序,等待AI程序结束。
n AI结束后,把AI的输出结果(本次PM是SEGY文件的第一道)和GeoEast道头(缓冲区)进行合并,放在header和trace中,传递给下面模块使用,并调用dcb_set_normal将该道设置为正常道,并调用dcb_set_output通知执行控制系统,模块还有更多的地震道进行输出,然后退出本次PM。
n 再次进入PM,由于处理后的数据尚未输出完,在该PM中仍然要将剩余的数据进行输出。从SEGY文件中顺序读取下一道,与GeoEast缓冲区中的道头进行合并,放在header和trace中进行输出,并设置地震道属性(给后续模块使用)和数据流向:
n 如果该道是正常道:调用dcb_set_normal设置道属性,并调用dcb_set_output告诉执行控制系统仍有剩余的地震道进行输出。
n 如果是道集最后一道:调用dcb_set_lastgather设置道属性,并调用dcb_set_next告诉执行控制系统本道集已经处理完成,下一次PM就开始新的一个道集处理,因此下一个PM的header和trace中会存放下一个道集的第一道数据。
n 如果是数据最后一道:调用dcb_set_lasttrace设置道属性,并调用dcb_set_next告诉执行控制系统本道集已经处理完成。执行控制在PM之后,会根据数据道属性,结束该模块运行。
n 循环执行上面的数据输出过程,该道集数据处理完成,然后处理新的道集。直到所有数据处理完。
AI道集处理模块特点:
l 需要集齐一个/多个道集的数据,才能进行数据处理;
l 每次模块PM,只能输入/输出/输入输出一道地震数据;
l 一个道集开始需重新产生一个SEGY文件;
l 把GeoEast数据转成SEGY数据,输出到SEGY文件中;
l 当前道集结束,道集所有的数据已输出到SEGY文件,启动AI程序,等待AI结果;
l 合并AI输出结果,控制数据流向,后续模块使用。