禁航分析软件诞生记从1.0到3.0 ——冥冥思索后的灵光一现

禁航分析软件诞生记从1.0到3.0 ——冥冥思索后的灵光一现_第1张图片

2017年7月5日 晚  夜班


当晚,签派室收到某情报区明日早晨有禁航的通告,需要对航班进行调整和控制。

师傅给我耐心讲解了此禁航分析和推点的方法,希望我能初次体验下禁航分析的知识,同时评估下禁航的影响和师傅的结果能否一致。

笔者拿到任务理顺下思路:

1.在航班生产系统中查询通告影响的城市对;

2.根据通告时间大概判定航班是否影响;

3.若有影响,在通告后面写下航班号;

4.使用交叉相减的方法计算推点(即为飞机飞到禁航开始点时禁航已结束为最早时间,飞机飞到禁航结束点时禁航刚开始为最晚时间)

当时的笔者使用了EXCEl表格填写记录数据,目的是数据看着规整;

当时的笔者三四字代码记忆并不好,碰到记不住的还查询了机场数据;

当时的笔者对公司所飞的城市对并不掌握,不确定通告影响的城市对公司是否在飞,

所以评估速度非常缓慢。

所幸,笔者所评估过的通告结果和师傅一致,证明笔者理清了禁航分析的基本方法,

上文笔者的思路将会在后文的EXCEL软件中慢慢得以体现。

2017年7月6日 下午  休息


下了班的笔者,就睡不着觉了,脑子里转的都是:

通告的四字码,查三字码,查生产系统的航班;

交叉相减的方法正是excel计算数据的优势。

这些特点正是excel的优势,笔者决定用excel解决上面的方法。

笔者的excel的函数早已遗忘多年,现在能记得住也就sum,if,count等简单的函数了,

笔者认为这个不是困难,最大的困难就是:

你不知道你自己什么不会;

你不能清楚的描述自己的问题。

Excel的函数,笔者开始描述问题,百度度娘,

循着昨晚的原始分析的方法,

1.第一步:四字代码查机场数据,找三字码

这个问题,就是将通告的ZBAAZWWW001(比如)转化为PEKURC。

询问度娘,就是问题一:如何从身份证号码中提取生日;

就是问题二:单元格如何通过另一个表格的数据库转化为另个内容:即ZBAA怎样变成PEK,这肯定需要一个三四字代码表支撑。

2.第二三步:查航班生产系统的航班在通告时间内是否执飞;

这个问题非常纠结,从昨晚的分析方法,是要在每个通告后面写出来影响的航班;

从excel角度,是每个单元格后面对应多个单元格;

然而excel只能解决一对一的问题,比如第一步的ZBAA转为PEK;

原始思维方法的使用陷入苦局和瓶颈,一对多的问题怎么解决。

笔者苦苦思索,这条路走不通咱们就换个思路,

从数学角度,就是集合里的元素对应,包含与被包含的问题;

目前是一对多,反过来不就是多对一;

跳出来原始思维的路线,转变成,

航班的起飞落地的六个字母在通告的六个字母中是否存在,存在即为影响,不存在就不影响。

此时,笔者的禁航分析1.0版本已经完成。

它的本质就是利用excel函数的特点,元素的一对一或者一对多的方法,航班所飞起落机场6字母对应通告6字母,然后对应通告8字母的思路。

2017年7月6日  晚上 休息


笔者为禁航1.0版本可以极大缩短分析时间,只用10分钟不到而高兴不已。

当晚将文章发给了经理,希望能得到运行经验丰富的经理的指导。经理很耐心读完了文章,指出了以下问题:

1.软件如何体现航班时刻和通告时间的匹配,人工筛选航班时刻,如何根据时间筛除,导入所需今日航班?

2.软件梳理了影响航班,那么推点时间如何计算?

第二问题,因为笔者没写,比较容易,所以问题集中在第一个。

软件1.0版本之所以忽略了时间分析,是由于昨晚分析的禁航通告是在机场的进离场上,时间只用卡在起飞时间在禁航之前即可。

经理告诉我,禁航也可能在航路上,比如某国外航路上禁航。

笔者思路被打开,开始混乱,冷静下来明白了出在时间匹配的问题,

于是,笔者问了经理自己不懂的症结:

如何手工经验判定一个航班是否受禁航时间的影响?

经理告诉我,准确方法是:使用CFP查出飞行时间,交叉相减算出最早和最晚的时间,若班表时间在之间,航班即为受到影响。

同时我也明白了,excel对于时间不能精确匹配的原因是:它需要对所有航班拆包查看飞行时间,交叉相减判定。然而手工拆包所有航班,工作量如此之大,excel没有办法解决。

禁航分析1.0版本在时间匹配问题上被终止,因为一个软件首要的前提是准确,时间匹配解决不了,那么就得不到实用。

2017年7月8日  白班


经过上次的禁航分析,时间充裕,师傅给我细心讲了禁航知识:

禁航种类:全高度,部分高度,航路区域禁航等等;

禁航措施:有高度禁航的超控高度,有更改航路,有管制绕飞,有推点措施。

判定航班是否受禁航影响的方法。

这次讲解使我打开了禁航的知识,然而1.0版本的时间问题和实用性依然得不到解决,1.0版本就此搁置。

2017年7月18日 夜班早晨


笔者在某区域席位放行航班,隔壁席位在分析某区域多份禁航通告的影响,这让笔者更加觉得1.0版本只能解决单分通告的不实用性。

2017年7月28日 白班


离1.0版本过去了有20天左右,笔者自己都快遗忘。

经理发微信说,国外某区域航路有大面积禁航的影响,你抽空研究下,可以扩宽你的思路,

笔者抱着试试的态度,休息时向同事了解下分析内容:大概内容是一个国际航班由于航路优选,需要多个航路进行CFP,交叉相减。

2017年8月1日 晚


笔者进过师傅的知识讲解;,

笔者感受了着国内多份通告禁航,国际航路区域禁航的复杂性。

冥冥思索后的灵光一现

确定了禁航2.0版本的总原则:准确性、方便性、快速性。

2.0版本相比1.0体现在以下优势:

1.可以分析多份通告,了解一个航班是否受多份通告的影响;

2.将某些函数嵌套,缩减了函数的使用次数;

3.增加了计算推点的计算方法;

4.明确了此软件由于拆包CFP查飞行时间,来准确判定时间匹配的巨大工作量的不实用性。更改为在原数据导入和数据结果时,时间的两次筛选解决。

2017年8月2日  白 夜班


笔者带着2.0版本和经理当面座谈,笔者进一步明确了时间匹配的解决方法,同时也对于特殊航班,比如国际航班、远程航班、跨日航班次软件也不会出现遗漏问题。

经理提醒我,推点时间算出的最晚时间和最早时间在实际工作中,会在此处增加余量,来保证运行安全。

2017年8月6日  夜班


笔者带着2.0版本让班组长指点,班组长问了个问题:

这个软件怎么体现001和002航路的筛选。

可能无意的一个问题,这句话,我突然明白了此软件核心和思路:

从excel的数据分析功能角度,禁航分析就是将航班的元素去匹配通告的元素,查询是否存在。此处的元素指的是时间、城市对和航路代号。其中,城市对分析是此软件的核心,可以精确匹配;时间分析在航班数据的录入和第四步筛选结果的优化处理(可不操作)有所体现;航路代号分析默认001航路,不对此缩小范围。因此,此软件的作用是对于大数据时,可以快速缩小影响的航班范围,但不保证范围内的每个航班都受影响。

2017年8月14日 晚上


班组长希望明天的班组会让宣讲下此小软件,

笔者决定在方便性上进一步改善,造出了3.0版本,相比2.0:

1.三四字代码表进行隐藏,机场增加500个,不会出现#N/A;

2.函数进一步嵌套,同时函数下拉方法改为快捷的双击左键;

3.增加了筛选结果的航班,可以时间准确判定的方法;

4.影响的航班考虑了流控和直飞,增加了安全余量考虑;

5.Excel所用函数可以直接在excel表格的文本框中,直接复制使用。

此时,禁航分析3.0版本终于诞生!!!

后记:禁航分析软件,从1.0到3.0,思索了很久,得到了经理,班组长,师傅的大力帮助,开阔了思路,非常感谢。本文的目的记录一个小软件的诞生日记,记录自己思维的过程,纪念小时候科学家的梦想,可惜实现不了,嘿嘿。目前,此软件仍处在试使用阶段,使用的是EXCEL的基本函数,也希望得到IT大神的支持,能有N .0版本。

你可能感兴趣的:(禁航分析软件诞生记从1.0到3.0 ——冥冥思索后的灵光一现)