一种提高ADS-B航迹数据准确率的方法与流程

文档序号:24292215发布日期:2021-03-17 00:41阅读:592来源:国知局
一种提高ADS-B航迹数据准确率的方法与流程

本发明涉及民航数据处理的技术领域,尤其涉及一种提高ads-b航迹数据准确率的方法,其主要用于航空器航迹预测。



背景技术:

为了满足未来航空运输发展的需要,国际民航组织(icao)提出了一种以卫星导航、通信、机载和地面设备等相结合的先进技术,即广播式自动相关监视(automaticdependentsurveillance-broadcastads-b)技术。此技术增强了管制员和飞行员对航空器运行态势的感知,提升了运行安全水平、空域容量与运行效率。

ads-b数据更新频率高,内容包含飞机的4维位置信息(经度,纬度,高度和时间)和其他可能附加信息(冲突告警信息,飞行员输入信息,航迹角,航线拐点,航向,空速,风速,风向,飞机外界温度,飞机的识别信息,类别信息等信息)。因此ads-b数据越来越广泛的应用于民航空域管理领域。

实际应用中,ads-b航迹数据由于各种原因导致出现各种坏点,从而导致ads-b航迹数据出现异常点。



技术实现要素:

为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种提高ads-b航迹数据准确率的方法,其能够提升ads-b航迹数据准确性,从而提升航空器航迹监控与预测的准确率。

本发明的技术方案是:这种提高ads-b航迹数据准确率的方法,其包括以下步骤:

(1)解析ads-b航迹数据:解析ads-b报文数据,将ads-b各项有效数据对应存入数据结构;

(2)ads-b基于时间异常处理:若当前点时间为空或负值,或者当前点若不为第一点,且当前点时间小于前一点,均作为时间无效点删除;

(3)航迹数据重复处理:当前点若不为第一点,与前一点的经纬坐标对比,若两点经纬度完全一致,则作为重复点删除;

(4)ads-b基于对地速度异常处理:当前点对地速度大于航空器飞行极限值1224km/h,则作为对地速度无效点删除;

(5)ads-b基于经纬度异常处理:当前点若为第三点,本次经度/纬度变化趋势与前一点的变化趋势不一致,且连续两点变化趋势不一致,则作为经纬度无效点删除。

本发明通过完成对ads-b数据的解析,将ads-b数据中异常点筛除,为后续的相关处理提供准确的数据源,因此能够提升ads-b航迹数据准确性,从而提升航空器航迹监控与预测的准确率。

附图说明

图1所示为ads-b报文所含数据项。

图2所示为ads-b数据结构图。

图3所示为ads-b异常点筛选的数据流程图。

图4所示为ads-b数据的解析流程图。

图5所示为ads-b数据时间重复点删除流程图。

图6所示为ads-b数据时间有效点判断流程图。

图7所示为ads-b数据对地速度异常点筛选判断流程图。

图8所示为ads-b数据基于经纬度异常点筛选判断流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了使本揭示内容的叙述更加详尽与完备,下文针对本发明的实施方式与具体实施例提出了说明性的描述;但这并非实施或运用本发明具体实施例的唯一形式。实施方式中涵盖了多个具体实施例的特征以及用以建构与操作这些具体实施例的方法步骤与其顺序。然而,亦可利用其它具体实施例来达成相同或均等的功能与步骤顺序。

如图3所示,这种提高ads-b航迹数据准确率的方法,其包括以下步骤:

(1)解析ads-b航迹数据:解析ads-b报文数据,将ads-b各项有效数据对应存入数据结构;

(2)ads-b基于时间异常处理:若当前点时间为空或负值,或者当前点若不为第一点,且当前点时间小于前一点,均作为时间无效点删除;

(3)航迹数据重复处理:当前点若不为第一点,与前一点的经纬坐标对比,若两点经纬度完全一致,则作为重复点删除;

(4)ads-b基于对地速度异常处理:当前点对地速度大于航空器飞行极限值1224km/h,则作为对地速度无效点删除;

(5)ads-b基于经纬度异常处理:当前点若为第三点,本次经度/纬度变化趋势与前一点的变化趋势不一致,且连续两点变化趋势不一致,则作为经纬度无效点删除。

本发明通过完成对ads-b数据的解析,将ads-b数据中异常点筛除,为后续的相关处理提供准确的数据源,因此能够提升ads-b航迹数据准确性,从而提升航空器航迹监控与预测的准确率。

优选地,所述步骤(1)包括以下分步骤:

(1.1)利用cat21解析工具将ads-b报文解析成adsbdatainfo数据结构;

(1.2)按顺序读取单个解析成功的ads-b结构adsbdatainfo。

优选地,所述步骤(1.1)包括以下分步骤:

(1.1.1)利用cat21解析工具解析ads-b报文数据,获得每条ads-b数据各数据项对应值;

(1.1.2)将解析所得ads-b数据定义为字符串形式,数据项之间以逗号间隔,每条ads-b数据以换行符分割,最终保存为ads-b数据文件;

(1.1.3)从头开始,读取ads-b数据文件的一行数据;

(1.1.4)创建adsbdatainfo对象;

(1.1.5)将读取的每行数据,按逗号分割获取各数据项结果,填入对象adsbdatainfo中,该过程中,未处理各数据项为空字段,因此某些数据项可能为空。

优选地,所述步骤(2)包括以下分步骤:

(2.1)读取当前adsbdatainfo对象中经度lon,纬度lat;

(2.2)判断当前点经度lon是否为空,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(2.3);

(2.3)判断当前点时间是否小于0,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(2.4);

(2.4)判断当前点是否为第一点,如果是,执行步骤(2.7),否则执行步骤(2.5);

(2.5)读取同一航班数据中前一个时间点的时间t0;

(2.6)判断当前点时间是否小于前一点的时间,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(2.7);或者判断当前点时间与前一点时间间隔小于tmin=0.5秒,两点为时间接近点,当前点亦作为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(2.7);

(2.7)当前点adsbdatainfo数据为时间有效点,将其作为结果输出。优选地,所述步骤(3)包括以下分步骤:

(3.1)读取当前adsbdatainfo对象中经度lon,纬度lat;

(3.2)判断当前点经度lon是否为空,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(3.3);

(3.3)判断当前点经度lat是否为空,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(3.4);

(3.4)判断当前点是否为第一点,如果是,执行步骤(3.7),否则执行步骤(3.5);

(3.5)读取同一航班数据中前一个时间点的经度lon0,纬度lat0;

(3.6)判断当前点经度和纬度均等于前一时间点的经度和纬度,如果是,当前点为航迹数据重复异常点,跳过该数据,执行步骤(1.2),否则执行步骤(3.7);

(3.7)当前点adsbdatainfo数据为时间有效点,将其作为结果输出。优选地,所述步骤(4)包括以下分步骤:

(4.1)读取当前adsbdatainfo对象中时间t,对地速度v;

(4.2)判断当前点对地速度v是否为空,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(4.3);

(4.3)判断当前点对地速度v是否大于民用航空飞行最大速度vmax=1224km/h,如果是,当前点为异常点,跳过该数据,执行步骤(1.2),否则执行步骤(4.4);

(4.4)判断当前点是否为第一点,如果是,执行步骤(4.8),否则执行步骤(4.5);

(4.5)读取同一航班数据中前一个时间点时间t0,对地速度v0;

(4.6)计算对地速度变化率vr=(v-v0)/(v*(t-t0)),对地速度变化率定义为单位时间内对地速度相比自身速度的变化大小;

(4.7)判断当前点对地速度变化率大于vrmax=0.5,如果是,当前点为对地速度变化异常点,跳过该数据,执行步骤(1.2),否则执行步骤(4.8);

(4.8)当前点adsbdatainfo数据为时间有效点,将其作为结果输出。优选地,所述步骤(5)包括以下分步骤:

(5.1)读取当前adsbdatainfo对象中经度lon,纬度lat;

(5.2)判断当前点所在航迹连续标识c,如果是0,执行步骤(5.3),如果是1,执行步骤(5.4),否则执行步骤(5.5);

(5.3)设定累计有效点数n=1,执行步骤(5.9);

(5.4)设定累计有效点数n=2;执行步骤(5.9);

(5.5)读取同一航班数据中前一个时间点的经度lon1,纬度lat1,同时读取同一航班数据中前二个时间点的经度lon2,纬度lat2;

(5.6)判断3个有效点经度方向是否一致,如果是,执行(5.9),否则执行(5.7);

(5.7)判断3个有效点纬度方向是否一致,如果是,执行(5.9),否则执行(5.8);

(5.8)设定航迹连续标识c=0,跳过该数据,执行步骤(1.2);

(5.9)当前点adsbdatainfo数据为时间有效点,将其作为结果输出。

以下更具体地说明本发明。

ads-b数据以asterix多用途结构化eurocontrol进行监视信息交换,cat21报文格式发送至各数据中心,其基本格式如图1所示。其中,每个数据块包含多个数据项,包括数据源识别、目标报告描述符、日时间、在wgs-84坐标中的位置、目标地址、几何高度、品质因数、链路技术、侧滚角、大气压高度、空速、真实空速、磁航向、气压垂直速率、几何垂直速率、地向量、转向速率、目标呼号、速度精确度、日时间精确度、目标状态等。图1中frn栏表示数据块中所用到的每个数据项相应的字段参考编号,信息栏对应相应数据项内容,长度栏表示每个数据项的格式及长度,单独数字代表长度固定的数据项所含字节个数,1+代表可变长度数据项在长度为1个字节的第1字节后仍需扩展n个字节的长度。ads-b数据块中数据项较多,故本发明中仅保留ads-b报文中能表明航迹信息的数据项,通过解析报文所得ads-b所有相关信息如图2所示。

图3所示为本发明中ads-b数据解析与异常点筛选流程图,具体为:

步骤a:利用cat21解析工具将ads-b报文解析成adsbdatainfo数据结构;

步骤b:按顺序读取单个解析成功的ads-b结构adsbdatainfo;

步骤c:ads-b数据进行时间异常处理;

步骤d:ads-b数据进行航迹数据重复处理;

步骤e:ads-b对地速度异常处理;

步骤f:ads-b经纬度异常处理;

本发明通过将各地数据中心获取的ads-b报文解析并处理,从时间、航空器机械性能、航迹完整性等几个方面进行ads-b数据准确性检验,得到最终更为准确的航迹ads-b数据,为后续航迹显示与处理提供高可靠性数据基础。

图4所示为本发明中将ads-b报文信息解析成数据结构adsbdatainfo的流程图(步骤a),具体为:

步骤a.1:利用cat21解析工具解析ads-b报文数据,获得每条ads-b数据各数据项对应值;

步骤a.2:将解析所得ads-b数据定义为字符串形式,数据项之间以“,”间隔,每条ads-b数据以“换行符”分割,最终保存为ads-b数据文件;

步骤a.3:从头开始,读取ads-b数据文件的一行数据;

步骤a.4:创建adsbdatainfo对象;

步骤a.5:将读取的每行数据,按“,”分割获取各数据项结果,填入对象adsbdatainfo中,该过程中,未处理各数据项为空字段,因此某些数据项可能为空。

本步骤完成了ads-b报文的解析,将航迹信息转换成对象adsbdatainfo,为后续异常处理提供数据基础。

图5所示为本发明中ads-b数据时间异常处理的流程图(步骤c)。

步骤c.1:读取当前adsbdatainfo对象中时间项;

步骤c.2:判断当前点时间是否为空,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤c.3;

步骤c.3:判断当前点时间是否小于0,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤c.4;

步骤c.4:判断当前点是否为第一点,如果是,执行步骤c.7,否则执行步骤c.5;

步骤c.5:读取同一航班数据中前一个时间点的时间t0;

步骤c.6:判断当前点时间是否小于前一点的时间,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤c.7;或者判断当前点时间与前一点时间间隔较小(小于tmin=0.5秒),即两点为时间接近点,当前点亦作为异常点,跳过该数据,执行步骤b,否则执行步骤c.7;

步骤c.7:当前点adsbdatainfo数据为时间有效点,将其作为结果输出。

本步骤完成了ads-b航迹数据时间异常处理,解决了ads-b航迹中时间为空和时间错乱等问题,得到了时间准确的ads-b航迹数据。

图6所示为本发明中航迹数据重复处理的流程图(步骤d)。

步骤d.1:读取当前adsbdatainfo对象中经度lon,纬度lat;

步骤d.2:判断当前点经度lon是否为空,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤d.3;

步骤d.3:判断当前点经度lat是否为空,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤d.4;

步骤d.4:判断当前点是否为第一点,如果是,执行步骤d.7,否则执行步骤d.5;

步骤d.5:读取同一航班数据中前一个时间点的经度lon0,纬度lat0;

步骤d.6:判断当前点经度和纬度均等于前一时间点的经度和纬度,如果是,当前点为航迹数据重复异常点,跳过该数据,执行步骤b,否则执行步骤d.7;

步骤d.7:当前点adsbdatainfo数据为时间有效点,将其作为结果输出。

本步骤完成了ads-b航迹数据重复处理,解决了ads-b航迹中经纬度为空和经纬度重复获取等问题,得到了航迹数据不重复的ads-b航迹数据。

图7所示为本发明中对地速度异常处理的流程图(步骤e)。

步骤e.1:读取当前adsbdatainfo对象中时间t,对地速度v;

步骤e.2:判断当前点对地速度v是否为空,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤e.3;

步骤e.3:判断当前点对地速度v是否大于民用航空飞行最大速度vmax=1224km/h,如果是,当前点为异常点,跳过该数据,执行步骤b,否则执行步骤e.4;

步骤e.4:判断当前点是否为第一点,如果是,执行步骤e.8,否则执行步骤e.5;

步骤e.5:读取同一航班数据中前一个时间点时间t0,对地速度v0;

步骤e.6:计算对地速度变化率vr=(v-v0)/(v*(t-t0)),对地速度变化率定义为单位时间内对地速度相比自身速度的变化大小;

步骤e.7:判断当前点对地速度变化率大于vrmax=0.5,如果是,当前点为对地速度变化异常点,跳过该数据,执行步骤b,否则执行步骤e.8;

步骤e.8:当前点adsbdatainfo数据为时间有效点,将其作为结果输出。

本步骤完成了ads-b对地速度异常处理,解决了ads-b航迹中对地速度为空,对地速度超过极限值和对地速度变化太大等问题,得到了符合航空器机械性能的ads-b航迹数据。

图8所示为本发明中经纬度异常处理的流程图(步骤f)。

步骤f.1:读取当前adsbdatainfo对象中经度lon,纬度lat;

步骤f.2:判断当前点所在航迹连续标识c,如果是0,执行步骤f.3,如果是1,执行步骤f.4,否则执行步骤f.5;

步骤f.3:设定累计有效点数n=1,执行步骤f.9;

步骤f.4:设定累计有效点数n=2;执行步骤f.9;

步骤f.5:读取同一航班数据中前一个时间点的经度lon1,纬度lat1,同时读取同一航班数据中前二个时间点的经度lon2,纬度lat2;

步骤f.6:判断3个有效点经度方向是否一致,如果是,执行f.9,否则执行f.7;

步骤f.7:判断3个有效点纬度方向是否一致,如果是,执行f.9,否则执行f.8;

步骤f.8:设定航迹连续标识c=0,跳过该数据,执行步骤b;

步骤f.9:当前点adsbdatainfo数据为时间有效点,将其作为结果输出;

本步骤完成了ads-b经纬度异常处理,解决了ads-b航迹中多个数据中心同时接收某航空器数据而导致的经纬度“转圈”等问题,得到了符合航空器飞行特征的ads-b航迹数据。

以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1