基于Python的测量数据精度鉴定的预处理方法
A Preprocessing Method of Precision Appraisal for Measurement Data Based on Python
DOI: 10.12677/CSA.2022.124083, PDF, HTML, XML, 下载: 322  浏览: 3,219 
作者: 涂 鑫, 张小飞, 邱维江, 陈 欣:中国人民解放军63819部队,四川 宜宾
关键词: 测量数据精度鉴定Python数据分析Measured Data Precision Appraisal Python Data Analysis
摘要: 针对测控设备在精度鉴定中存在数据时间未对齐、时间格式错误、数据不连续等问题,探讨测控设备在精度鉴定中数据预处理的一些具体方法。本文首先对数据预处理的流程及工具进行简要介绍,然后指出了测量数据与精密轨道数据之间存在的时间未对齐、时间格式错误等问题,并提出了借助Python的第三方库函数Numpy和Pandas实现对应问题的解决方法,最终给出处理前后的结果对比。结果证明,本文给出的数据预处理的方法行之有效,能够有效解决测控设备精度鉴定中数据间存在的问题,对精度鉴定的数据预处理方面具有一定的借鉴意义。
Abstract: Aiming at the problems of data time unalignment, time format error and data discontinuity in precision appraisal of measurement and control equipment, this paper discusses some specific methods of data preprocessing in precision appraisal for measurement and control equipment. This paper first briefly introduces the flow of data preprocessing and tools, and then points out that there are some problems between the measured data and the precision orbit data, such as time misa-lignment, time format error and so on, and puts forward the solution to the corresponding problem with the help of Python’s third-party library functions like numpy and pandas, and finally gives the results of the comparison before and after processing.
文章引用:涂鑫, 张小飞, 邱维江, 陈欣. 基于Python的测量数据精度鉴定的预处理方法[J]. 计算机科学与应用, 2022, 12(4): 817-827. https://doi.org/10.12677/CSA.2022.124083

1. 引言

测控设备的精度鉴定,主要通过对测量数据与精密轨道数据的综合分析,从而给出测控设备测量精度效果的过程。在精度鉴定中,数据的预处理对最终数据分析结果的有效性起着至关重要的作用,主要包括系统误差修正、电波折射误差修正等修正处理,同时也包括了数据有效性检验、坐标转换、时标对齐、数据对齐等最基础的处理。在文献 [1] 中,对数据的采样时间不一致问题进行了插值算法的数据对齐研究,在文献 [2] 和文献 [3] 在数据预处理方面只讲了时间误差修正的内容,文献 [4] 对精度鉴定的4种方法进行了对比研究,但是没有提及预处理过程,文献 [5] 对数据预处理提出了比较全面的标准及部分处理算法,但是这些精度鉴定研究方面的文献,对数据的预处理只是多半做了个简要描述,未进行实际数据研究。

目前,在利用“天平一号”标校星开展测控设备的精度鉴定时,主要方法是分析测控设备的测量数据与“天平一号”精轨数据差值的误差量,但是由于测量数据和精密轨道数据本身的不确定性,数据可能会出现时间格式有误、丢帧、时间不一等一系列问题,在上述文献中也未提及这些问题,直接开展数据分析的话有可能导致精度鉴定结果无效。因此做好数据的预处理也是精度鉴定的关键工作。本文将运用某型号单脉冲雷达跟踪“天平一号”标校星的测量数据,针对数据中遇到的时间格式错误、数据不连续、时间对不齐等问题,开展精度鉴定中相应问题的数据预处理方法研究。

2. 数据预处理流程及工具

2.1. 数据预处理流程

测控设备精度鉴定的基本流程如图1所示,其中,数据预处理包括对测控设备测量数据的动态滞后修正、系统误差修正及电波折射修正等修正类预处理,同时包括卫星精轨数据在内开展的还有合理性检验、平滑滤波等数据处理内容 [5]。具体如下:

1) 动态滞后修正及信标时延修正:动态滞后修正是在跟踪目标的过程中,由于角度变化快,容易产生动态滞后,需要进行波束中心偏角修正,信标时延修正是对“天平一号”标校星上的脉冲应答机固定时延导致的距离修正;

2) 系统误差修正:根据标校得到的各项误差数据,对设备的外测数据实施方位、俯仰、距离进行系统误差的修正;

3) 电波折射修正:由于无线电波在大气中传播时会受到不均匀介质的影响使电波射线发生弯曲,传播速度异于光速而产生折射误差的修正;

Figure 1. Basic process of data precision appraisal

图1. 数据精度鉴定基本流程

4) 合理性校验:对在跟踪过程中可能会产生异常值进行合理性检验;

5) 平滑滤波:由于测量系统不可避免的会产生测量噪声,从而导致测量数据出现随机误差,为减小误差带来的影响,需要对测量数据进行平滑滤波;

6) 秒时间错误处理:对精轨数据中遇到的秒时间错误,即满60秒却未进分钟位的处理;

7) 起始时间不一致处理:对获取到的精轨数据开始的第一帧时间与待分析的测量数据的第一帧时间不重合所进行的处理;

8) 测量数据丢帧处理:对测量数据中存在丢帧,删除对应丢失时段精轨数据的处理;

9) 时间对齐处理:对测量数据和精轨数据精确时间不对齐的数据处理;

10) 跨零跳点修正处理:对测量数据中整周跳点而不同时过0˚ (跨零)产生的误差而开展的修正处理;

由于系统动态滞后修正系统误差修正、大气折射修正、平滑滤波等处理的研究文献较多,标准比较统一,本文不再赘述,而是主要有针对性地开展秒时间错误、数据对齐等处理方法研究,以解决测量数据与卫星精轨数据的采样时刻不一致、时间格式错误、跨零跳点、丢帧等问题。

2.2. 数据预处理工具

在本文的数据预处理的过程中,全部运用Python的第三方库来实现。

利用Python进行数据分析,Pandas库是首选库,它提供了大量快速便捷的处理大型数据集(比如Excel文件读写)所需的函数和算法 [6],并含有例如DataFrame、Series等各类数据结构,能够使数据分析工作简单而高效。具体有以下特点 [7]:

1) 提供的数据结构既能处理时间序列,也能处理非时间序列;

2) 数学运算和约简可以轴向执行;

3) 具有强大的缺失数据处理功能;

4) 可以合并常见数据库中的关系型运算。

此外Pandas还有数据标准化和数据转换的功能等。

NumPy (Numerical Python)是python科学计算的基础工具包 [8],包括了N维数组对象Array。拥有成熟的函数库,例如矩阵数据类型和矢量处理等,很适合用于多维数据组的数据处理。

Numpy和Pandas二者结合起来可以非常方便地实现报表源数据到目标数据文件的快速转换。

3. 数据预处理方法

数据预处理首先需要根据设备的测量数据获取对应的卫星精轨数据,并对精轨数据进行坐标转换,以保证两类数据在同一坐标系下作比较;再分别对两类数据本身及数据之间存在的问题做一系列的预处理,其中问题包括数据第一帧对齐、删除丢失的测量数据、时间不对齐等,最后再进行坐标转换,为精度鉴定提供准确的待分析数据。数据中存在的问题及其处理方法如下。

3.1. 问题描述

对同一时段的测控设备测量数据与卫星精轨数据进行初步分析,表中,Time为数据的绝对时时标,X、Y、Z、Vx、Vy、Vz为卫星在地固系下X、Y、Z分量及分量速度,V、R、A、E为测量系下目标的速度、距离、方位角度及俯仰角度,DA、DE为方位、俯仰角度的变化量。分析后发现二者在做精度鉴定分析前,存在以下问题:

1) 秒时间有误

在精轨数据中,时间格式出现xx:xx:60.xxx形式,即满60秒却未进分钟位,导致时间不满足正常格式要求。如表1所示,精轨数据时间出现18:36:60.000,其正确时间形式应为18:37:00.000。

Table 1. Precision orbit data error data in seconds time

表1. 精轨数据秒时间错误数据

2) 起始时间不一

根据测量数据获取到的卫星精轨数据,其开始的第一帧时间不一定会与测量数据的第一帧时间完全重合,直接进行差值计算会导致偏差过大,如表2表3所示。测量数据第一帧起始时间为18:35:42.250,对应下载的原始精轨数据第一帧起始时间18:35:42.000。

Table 2. Start time of measurement data

表2. 测量数据起始时间

Table 3. Start time of Precision orbit data

表3. 精轨数据起始时间

3) 测量数据丢帧

设备进行跟踪时有可能出现不连续或无效跟踪数据剔除,在此统称为数据丢帧,若直接处理的话会出现数据中途错位继而差值突然增大的情况。从表4中可以发现测量数据记录的时间从18:49:32.700跳到18:49:34.550,中间丢失了37帧数据。

Table 4. Loss record of measurement data

表4. 测量数据丢失记录

4) 时间未对齐

精度鉴定的两类数据都选用同频率采样数据,但由于数据传输会产生时延导致测量数据的时间出现偏差,如表5中标准测量数据时间应为18:28:33.700,但时延存在导致了0.002毫秒的偏差。

Table 5. Time delay of measure data

表5. 测量数据时延

5) 跨零不同步

经过一系列预处理后需要对测量数据和精轨数据作差。其中方位角的范围为0˚~360˚,由于两份

数据不一定同时过0˚ (跨零),做差之后可能会出现角度差值过大的情况,如表6所示,其中,Ajg为卫星精轨数据方位角度,Acl为测量数据的方位角度,DA为同一时刻的角度差值。在18:41:00.950时精轨数据已跨零,而此时测量数据数值仍在跨零之前,直接计算时其差值为接近于360˚的错误差值。

Table 6. Record data across zero at different times

表6. 不同时跨零记录数据

3.2. 处理方法

1) 时间错误、起始时间不一致及丢帧问题处理

对于前三个问题,利用Pandas库进行统一处理。首先将测量数据读入dataframe中,利用库函数将时间转为datetime [64]格式再进行处理,具体流程如图2所示,具体如下:

Figure 2. The flow of data alignment processing

图2. 数据对齐处理流程

a) 利用apply函数对时间列循环判断,将60秒替换为00,并将分钟加1。此时还要注意分钟加1后是否满足60需要小时进位的情况。

b) 根据两份文件的第一帧时间差值,判断哪份数据时间靠前并计算多出的帧数,然后将靠前的数据上移对应帧数,使两份数据第一帧时间对齐。

c) 找到PDXP包序号不连续的索引值,若没有包序号则找出前后两帧时间相差过大的索引值,根据索引值删除对应的精轨数据。

2) 时间对齐处理

对于时间未对齐的问题,为减少时延带来的不必要的误差,需要事先对数据进行时间修正。首先判断对齐后的数据是否存在微小时延,若存在需要将时标重新更正与精轨数据的时标相同,同时将测量数据修正为更改时标后的数据。计算方法为:

x = x d x × Δ T (1)

其中

d x = x 2 x 1 T 2 T 1 (2)

Δ T = T 1 T (3)

式中x为时标修正前的测量数据; x 为时标修正后的数据;dx为测量数据两帧之间的变化率;ΔT为时间对齐时测量数据相比于轨道数据的时延。

3) 跨零跳点修正处理

对于跨零不同步导致差值过大问题,需要先找到方位角差值过大的值,再计算它的相对差值。跨零跳点 [5] 的具体处理过程:

步骤一:令 j = 1 , A j = A 1

步骤二:判断式(4)和式(5):

| A j + 1 A j | > δ 0 (4)

| A j + 2 A j + 1 | δ 0 (5)

式中: δ 0 为判断门限,一般取值范围为350˚到359˚。若式(4)和式(5)同时成立,则认为 A j + 1 为跳点,修正如下:

A j + 1 A j < δ 0 时,令 A j + 1 = A j + 1 + 360 ˚

A j + 1 A j > δ 0 时,令 A j + 1 = A j + 1 360 ˚

若式(4)和式(5)不同时成立,则认为 A j + 1 不是跳点,令 A j + 1 = A j + 1

步骤三:依次取 j = 2 , 3 , , N 2 ,重复步骤二中各步。

4. 预处理结果分析

以某型号单脉冲雷达跟踪“天平一号”标校星为例,对雷达测量数据进行精度鉴定预处理的验证分析。

4.1. 数据预处理计算结果

测量数据与精轨数据经过秒时间处理、第一帧时间对齐、丢帧处理、时间对齐、跨零跳点修正处理等一系列预处理修正后,便可对两份数据进行误差统计。各处理结果分析如下:

1) 秒时间修正结果

对于表1中所示的精轨数据的时间,由原先的18:36:60.000修正为18:37:00.000。如表7所示。

Table 7. Comparison of precision orbit data before and after processing in seconds time

表7. 精轨数据秒时间处理前后对比

2) 第一帧数据时间对齐结果

表2表3所示,测量数据起第一帧起始时间18:35:42.250,下载的原始精轨数据第一帧起始时间为18:35:42.000。经数据对齐处理后第一帧数据时间为最晚时间18:35:42.250,其计算结果如表8所示。

Table 8. Time alignment calculation results

表8. 数据时间对齐计算结果

3) 丢帧处理结果

表4所示的测量数据中间丢失了37帧数据的问题,将原本连续的精轨数据对应删除18:49:32.700至18:49:34.550时间段数据,以对标测量数据,其结果如表9所示。

Table 9. Processing result of frame loss of precision orbit data

表9. 精轨数据丢帧处理结果

4) 时间对齐处理结果

对存在时间误差的测量数据,将其时间为18:35:42.304,对标精轨数据时间将各数据修正到18:35:42.300时的数值,结果如表10所示。

Table 10. Result of time alignment

表10. 时间对齐处理结果

5) 跨零跳点处理结果

在18:41:00.900时,精轨数据方位角由0.000211˚变为359.9964˚,此时测量数据已经在此时刻前完成了跨零,方位角变为0.0284520˚,对其跨零跳点差值修正,得到其相对差值为0.03205˚。如表11所示。

Table 11. Difference processing results

表11. 差值处理结果

4.2. 精度鉴定结果

为了进一步检验数据预处理的实际效果,选取某圈次数据开展精度鉴定分析,本文进行精度鉴定时主要采用经典鉴定方法 [4],对标校卫星的同一采样时刻将测量数据S1和精轨数据S0作差得到差分序列{ΔSj},经统计分析处理得到被鉴定系统测量数据的各类误差统计量(一般为随机误差、系统误差、总误差)。

数据进行一系列预处理后,数据精度鉴定最终处理结果如表12所示,其中,数据每隔10秒统计一次误差,各误差统计量结果如图3~5所示。通过表12图3~5的统计结果与该型号单脉冲雷达的性能指标对比,该精度鉴定结果满足设备性能指标要求,说明数据预处理后的数据可用于精度鉴定分析使用,数据预处理方法可靠有效。

Figure 3. Azimuth error curve (step length: 10 seconds)

图3. 方位角误差曲线(步长10秒)

Figure 4. Pitch angle error curve (step length: 10 seconds)

图4. 俯仰角误差曲线(步长10秒)

Figure 5. Distance error curve (step length: 10 seconds)

图5. 距离误差曲线(步长10秒)

Table 12. Data accuracy appraisal processing results

表12. 数据精度鉴定处理结果

5. 结束语

本文针对精度鉴定中测量数据与精轨数据所存在的时间格式错误等问题,介绍了针对问题所开展的预处理方法。重点提出了精轨数据时间格式错误问题,测量数据与精轨数据第一帧未对齐问题,测量数据有丢帧、不连续问题,测量数据与精轨数据时间未对齐问题以及跨零跳点问题,给出了对应问题的解决处理方法,并通过跟踪“天平一号”的测量数据进行逐个处理验证,最后开展精度鉴定分析。通过数据验证结果分析,说明各数据处理方法流程正确,切实可行,对精度鉴定中数据预处理方法具有一定的参考借鉴意义。

参考文献

[1] 王鹏宇, 李乃忠, 宋玉红, 刘凯. 无线电测控设备卫星标校关键问题分析[J]. 航天器发射场, 2020, 127(2): 42-46.
[2] 胡绍林, 许爱华. 脉冲雷达跟踪测量数据处理技术[M]. 北京: 国防工业出版社, 2007.
[3] 刘利生, 张玉祥. 外弹道测量数据处理[M]. 北京: 国防工业出版社, 2002.
[4] 刘利生, 赵华, 刘元. 应用标校卫星鉴定测控系统精度方法探讨[J]. 飞行器测控学报, 2014, 33(4): 275-282.
[5] GJB 1381A-2011. 导弹、航天器实验光电经纬仪和脉冲雷达测量精度评定[S]. 北京: 中国人民解放军总装备部, 2011.
[6] 郭学兵. 基于Python的并行编程技术在批量象规范报表入库处理中的应用[J]. 软件, 2018, 39(7): 33-37.
[7] 梁丽. Python 编程语言在数据分析中的运用[J]. 信息与电脑, 2020, 12(2): 25-31.
[8] 李俊华. 基于Python的数据分析[J]. 电子技术与软件工程, 2018, 17(1): 56-62.