星期一的早上,我在办公区鸟瞰窗外,目光所到之处,用顾城的那首“你看天时很近,看我时很远”倒是格外的应景。作为一名父亲,看着工位上3M的口罩,想想此刻还在熟睡的孩子,多少有些无奈——又是PM25指数200+的一天。这么大的中国,如何给孩子找一方净土,让孩子能够健康快乐的成长。正是带着这样的一个想法,我查询了几个我比较关注的城市的PM值,比如北京,成都,杭州,深圳,厦门等地方,都不理想,一种赶尽杀绝的节奏,难道在中国只能做君子,自强不吸?同时,我个人发现一个情况,我的手机是华为荣耀6plus,天气数据显示来自中国天气网,PM25指数相比AQI(Air Quality Index)上的要偏低。比如我所在的城市成都,此刻手机上显示PM25指数为162,而AQI上显示为212,对比如下:
这个过程中,体现了我对数据的三点需要:实时性,准确性和易对比。首先数据必须是准确的,及时的,这样最有价值,这两点不难理解。易对比的涵义则比较宽泛,并没有一个绝对的标准。首先数据量上要丰富,这样客观上才有有代表性,其次可视化上要便于理解,比如数据都有自己的大小和位置,如何形象高效的展现这些信息,怎样把数字更好的转化为易于人类感官理解的形式,最后就是一个抽象的过程,提炼有价值的数据,降低过多数据带来的噪音。当然,我在做这个小应用的时候并没有考虑这么多,只是做完后自己的总结知新,看似有用,实则完全为了提升逼格。
带着这些疑问,我个人认为,AQI的数据是全球各个监测站的数据,更原始一些,更具有代表性和权威性,在中国呆久了,如果不对政府提供的数据有怀疑,只能证明自己too young too naive了。所以很自然的觉得AQI的数据在准确性和实时性上是目前的最佳选择。而且我知道某网站上是有实时的全球的AQI数据,反编译代码获取里面请求数据的方法应该可行。所以,从技术上是可以搞定数据需求的。
有了数据,可视化上如何展示呢,如何找到一种直观,简单的形式来?作为一个GIS行业的码农Coder(以前我并不介意码农这个称呼,但工作时间越久,发现真的大部分程序员只配做码农,所以本着谦让的态度,还是把这个称号让给他们吧),当然要在地图上展示了。这是某网站上的一个展示效果,也是我的参照物,这里通过地图来解决对经纬度的理解,通过数字和颜色来解决对PM指数的感官体验:
但从细节处,我觉得还可以做到更好,第一,地图本身就是对地球的一次抽象,因此这个抽象过程中,在数据的形象和对比上是存在损失的,第二,该网站的技术较为传统,数据都是以HTML标签的形式来展现,在数据较大的情况下存在性能的瓶颈,第三,如下图,按照AQI的标准来做的颜色区分,但这个Level是区间分段的方式,而不是单值的一一映射的关系。比如PM值300和500是有差别的,但却对应同一个颜色,可以更好的体现这种差别。
延伸阅读
学习是年轻人改变自己的最好方式