本发明涉及天文技术和图像处理,具体是一种卫星下传数据的快速解析方法。
背景技术:
1、太阳是人类唯一可实现高时空分辨率观测的恒星,通过对太阳的观测和研究,探索空间天气预报方法和途径,对于国防和国民经济有着重要的现实意义,与地面太阳望远镜相比,太阳空间探测具有不受地球大气湍流和吸收效应影响、可以连续观测等优势,尤其是科学技术的推动,太阳探测卫星得到快速发展;
2、由于太阳观测追求高时间分辨率、高空间分辨率以及高光谱分辨率,卫星载荷会采集产生大量的数据,这些数据经过星上数据压缩单元进行编码后,先暂存在星上存储单元中,等待卫星过境时下传到地面应用系统,这就要求一方面要尽可能快的将数据接收下来,另一方面科学应用系统接收到这些原始数据后首先要快速解码,才能进行后续科学数据的标定工作,以供科学研究人员使用并进行后续的数据分析工作;
3、目前,解析数据的常用方式还是顺序读取数据,这种方式实现相对简单,工作人员能快速开发程序,这种方式主要运行于windows平台,侧重于在轨测试期间验证载荷性能指标,采用这种方式,如果对一个百万帧的数据包解析出来往往需要数十小时的时间,此外还有基于cpu的多线程和多进程并行的处理方法,但一般要求对图像的起始位置控制准确,首先进行分块,每块进行解码,这往往需要先对文件进行一次扫描,确定图像的起始位置,耗费时间很多;
4、近年来,随着gpu的发展,gpu拥有众多的cuda计算核心,在大规模并行计算任务上具有显著优势,在解码工作中也开始应用,尤其是在图像重建和处理中,gpu可以很轻易的将大规模矩阵计算分解为小的向量计算并直接并行,速度显著提高,但对于大数据量,尤其有逻辑关联的数据计算时,gpu还有一个数据从内存到显存的拷贝开销,考虑到拷贝的开销,耗时就会更大,同时,考虑到io操作频繁时,这也会降低效率;
5、考虑到海量的数据,能够快速完成数据的解析是非常必要的,本发明就是为了解决这个问题,提出了基于cpu的多核并行,采用生产者-消费正模型保证进程同步,并将io操作和cpu计算独立开来,实现快速的数据解析,这对空间太阳探测或其他大数据量任务都提供了一种普适性的数据处理方法。
技术实现思路
1、本发明的目的在于提供一种卫星下传数据的快速解析方法。
2、本发明的目的可以通过以下技术方案实现:一种卫星下传数据的快速解析方法,包括以下步骤:
3、步骤s1:对待处理的原始数据进行接收并解压以获得解压数据,对所获得的解压数据进行分段处理以获得分段数据,对各个分段数据分别进行数据提取以获得光谱数据,对所提取的光谱数据进行解析并合成以获得光谱图像;
4、步骤s2:根据所解析的光谱图像获得相应的图像强度序列,对所获得的图像强度序列进行梯度计算以获得相应的图像梯度序列,在所获得的图像梯度序列中查找最大图像帧序号,根据所查找的最大图像帧序号获得扫描序列,进而生成全日面图像;
5、步骤s3:对所生成的全日面图像进行遍历操作以获得全日面像素值,采取二分法对所获得的全日面像素值进行计算以获得左右极值点和上下极值点,根据所获得的左右极值点和上下极值点计算候选日心像素位置,并记录相应的出现次数,根据所记录的出现次数获得日心像素坐标,获得日心像素坐标和图像中心坐标的几何距离,根据所获得的几何距离对所生成的全日面图像进行调节。
6、进一步的,对待处理的原始数据进行接收并解压以获得解压数据,对所获得的解压数据进行分段处理以获得分段数据的过程包括:
7、对卫星下传的原始数据进行接收,采用linux系统自带的tar命令对所接收的原始数据进行解压处理以获得相应的解压数据,对所获得的解压数据进行分段处理,所述分段处理是指将解压数据划分为若干个分段数据。
8、进一步的,对各个分段数据分别进行数据提取以获得光谱数据,对所提取的光谱数据进行解析并合成以获得光谱图像的过程包括:
9、采用多进程并行处理的方法对各个分段数据进行数据提取,所述数据提取是指将原始数据中的光谱数据提取出来,一个分段数据对应一个数据提取进程,获得分段数据中的科学载荷数据的位置,并对其中的光谱数据和辅助信息进行提取,采用jpeg2000算法对6段光谱数据分别进行解析,并将完成解析的6段光谱图像合成得到一帧完整的光谱图像;
10、创建数据提取进程池对数据提取进程进行管理,创建缓冲区容纳所解析的光谱图像,采用生产者-消费者模型对数据提取进程和缓冲区进行管理,生产者进程负责解析图像,消费者进程负责向磁盘读写数据。
11、进一步的,根据所解析的光谱图像获得相应的图像强度序列,对所获得的图像强度序列进行梯度计算以获得相应的图像梯度序列的过程包括:
12、对所获得的光谱图像每一帧的图像强度进行计算以获得相应的图像强度序列,记为{i0,i1,……,in-1};
13、
14、其中,w是光谱图像的宽度,h是光谱图像的高度,为处对应像素的强度值,对所获得的图像强度序列进行梯度计算以获得相应的图像梯度序列,记为{t0,t1,……,tn-1};
15、
16、进一步的,在所获得的图像梯度序列中查找最大图像帧序号,根据所查找的最大图像帧序号获得扫描序列,进而生成全日面图像的过程包括:
17、在图像梯度序列中,将梯度变化最大的位置所对应的图像帧序号作为最大图像帧序号,所述最大图像帧序号包括两个,根据所获得的两个最大图像帧序号确定一次扫描序列,对于一个扫描序列,按照其内部波长顺序对其进行拼接以获得相应的全日面图像。
18、进一步的,对所生成的全日面图像进行遍历操作以获得全日面像素值,采取二分法对所获得的全日面像素值进行计算以获得左右极值点和上下极值点的过程包括:
19、对所获得的全日面图像进行遍历操作,所述遍历操作用于对全日面图像中的每个像素点逐个进行访问以获得相应的全日面像素值,采用二分法对所获得的全日面像素值进行计算,将每一行的像素点个数平分,分别从每一行的起止位置开始计算以获得相应的左右极值点,采取同样的方法获得上下极值点。
20、进一步的,根据所获得的左右极值点和上下极值点计算候选日心像素位置,并记录相应的出现次数,根据所记录的出现次数获得日心像素坐标的过程包括:
21、获得各组左右极值点的坐标,根据左右极值点的坐标获得候选日心像素位置,并记录各个候选日心像素位置的出现次数,获得各组上下极值点的坐标,根据上下极值点的坐标获得候选日心像素位置,并记录各个候选日心像素位置的出现次数,将其中出现次数最大的候选日心像素位置作为该全日面图像日心像素位置,并输出相应的日心像素坐标。
22、进一步的,获得日心像素坐标和图像中心坐标的几何距离,根据所获得的几何距离对所生成的全日面图像进行调节的过程包括:
23、获得全日面图像的图像中心及其相应的图像中心坐标,根据所获得的日心像素坐标和图像中心坐标获得两者的几何距离,获得日心像素坐标相对于图像中心坐标的方位信息,所述方位信息用于描述日心像素坐标相对于图像中心坐标的偏离角度,将所获得的全日面图像按照偏离角度移动相应的几何距离以实现调节。
24、与现有技术相比,本发明的有益效果是:
25、1、通过分离数据解析与磁盘读写操作,并采用多核并行机制,提高了原始数据解析的速度,基于太阳观测图像的特征,利用图像梯度变化的特点确定了一次扫描序列,并且算法具有很好的鲁棒性和健壮性,对太阳活动不敏感,采用梯度的方法确定日面中心,相对于传统的图像互相关和霍夫圆拟合的方法,计算复杂性低,并且提高了处理的速度,在圆心查找、望远镜全日面导行中都可采用该方法。