论坛首页> 三共建设

与AI应用程序结合的批量模块开发-02

AI道集模块基本流程图:


n  进入PM,获取一道地震数据(通过headertrace缓冲区),转换为SEGY数据道存储到磁盘(每道集第一次的PM需要创建新的SEGY文件),GeoEast道头保存到用户的缓冲区中。

n  调用dcb_get_gatherdcb_get_lasttrace,判断该道是否为last gather道或last trace道。如果不是last gatherlast trace道,说明该道集的数据还没输入完,此时调用dcb_set_input告诉执行控制系统,模块仍需输入更多的地震道,退出本次PM

n  下次进入PM时仍按照上述步骤操作,直到某次PM输入的地震道为last gather或者last trace,此时已经输入了一个完整的地震数据道集,关闭SEGY文件。

n  此时模块所需要的数据已经满足,使用传递参数等形式启动AI程序,等待AI程序结束。

n  AI结束后,把AI的输出结果(本次PMSEGY文件的第一道)和GeoEast道头(缓冲区)进行合并,放在headertrace中,传递给下面模块使用,并调用dcb_set_normal将该道设置为正常道,并调用dcb_set_output通知执行控制系统,模块还有更多的地震道进行输出,然后退出本次PM

n  再次进入PM,由于处理后的数据尚未输出完,在该PM中仍然要将剩余的数据进行输出。从SEGY文件中顺序读取下一道,与GeoEast缓冲区中的道头进行合并,放在headertrace中进行输出,并设置地震道属性(给后续模块使用)和数据流向:

n  如果该道是正常道:调用dcb_set_normal设置道属性,并调用dcb_set_output告诉执行控制系统仍有剩余的地震道进行输出。

n  如果是道集最后一道:调用dcb_set_lastgather设置道属性,并调用dcb_set_next告诉执行控制系统本道集已经处理完成,下一次PM就开始新的一个道集处理,因此下一个PMheadertrace中会存放下一个道集的第一道数据。

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输出结果,控制数据流向,后续模块使用。

全部回复

暂无更多回复内容