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版本。