第463章 得来全不费功夫 (第3/3页)
脏数据清洗这活儿,相当让人头疼。
说白了就是北斗地面站从双星接收到的原始观测数据里,混着各种乱七八糟的东西——信号中断时候的无效帧、卫星仰角太低时记录的不稳定值、设备重启那一瞬间触发的错误码。这些东西不清干净,后面的平差解算根本跑不起来。
三组日常就是写各种规则脚本,一条一条地筛,把这个文件的异常行删掉,把那个字段的越界值置空。
活儿杂、量大、还枯燥。
一个批次跑下来少说大半天,中间还经常因为漏了某种异常类型报错中断。
韩学涛翻开余国平给他的那堆资料里中间某一本,停在其中一页。
那一页写的是北斗原始数据帧结构定义,里面有一个字段被加粗标了出来:数据质量标识码。规范里写得明明白白,这个码由星上自主判读生成,一共八位,每一位代表一个维度的健康状态。某位是1,就说明对应维度的数据不可用。
他盯着这一页看了大概两分钟,然后关掉文档,打开清洗脚本编辑器,把原本那几百行筛查逻辑全选、删除、清空。
重新写了一个主循环。
核心逻辑简单清晰:先读每个数据帧头部的质量标识码;质量码不是零的直接跳过,连后面的字段都懒得解析;质量码全是零的,整帧完整保留。出口处再加一行简单的统计输出,把每类质量码对应的帧数自动汇总成表。
总共就写了二十来行。
保存,运行。
进度条稳稳地往前走,速度比原先那个逐字段筛查的脚本快了不知道多少倍。韩学涛靠在椅背上,看着屏幕上的数字一个一个往上跳,顺手端起搪瓷缸喝了口水。
而那边李哥攥着U盘回了工位,坐下来第一件事不是干活,是发呆。
他盯着显示器,脑子里翻来覆去就一个念头:那个bug困扰了自己整整三年,结果人家翻了翻资料就解决了。三年通宵熬出来的东西,在别人那儿就是几行代码的事儿。
他本来想好了今天要调的一个思路,现在那个思路也变得模糊了。整个人像被抽空了似的,目光空空洞洞地望着屏幕上那个一闪一闪的光标。
就这么呆坐了半小时。
李哥终于动了动,使劲搓了把脸,从抽屉里摸出饭卡,起身去食堂小卖部买了两罐红牛。走回来坐定,拉开拉环,仰头灌了一大口。
目光无意间往旁边一瞥,正好看见韩学涛的屏幕上跳出一行字:数据清洗完成。
总计处理记录数:1847329条。有效保留:1526641条。异常剔除:320688条。清洗用时:00:27:43。
李哥嘴里的红牛还没咽下去,“噗”地一口全喷在自己键盘上。
“全量脏数据清洗?”他声音都变了调,红牛顺着下巴往下淌也顾不上擦,“你……半个小时就搞完了?”