所有文章 > 正文

知识疫图背后的故事:如何将新冠疫情搬上地图

作者: AITimer-何文莉

时间: 2020-05-29 15:34

如何将全球的疫情状况呈现在地图上是整个疫图项目的核心问题之一。

在前两期AI TIME知识疫图专题中,我们已经初步了解了知识疫图这一集冠状病毒各种数据整合、大数据智能预测、知识图谱构建于一体的新冠综合服务平台。作为整合了知识、挖掘、预测、数据、服务多项内容的信息平台,知识疫图的一大亮点是将疫情数据、趋势预测、风险评估、热点事件等各类新冠肺炎信息都可视化于地图上,为用户提供了一个快速、直观、高效了解疫情发展的渠道。

据此在知识疫图的开发过程中,如何将全球的疫情状况呈现在地图上成为了整个疫图项目的核心问题之一。本次疫情知识智能服务技术实践系列第3期,来自清华大学计算机系硕士二年级的殷达就和大家分享知识疫图是如何将疫情搬上地图的。

疫情地图主要分为数据处理和地图展示两大板块,相较于其他的一些疫情地图项目,知识疫图不仅在数据可视化方面从时间、空间两个维度尽可能地做到细粒度,而且涵盖了国内外新冠疫情多项不同数据的层级展现。在疫情地图实现过程中,主要包括了疫情数据的采集与整合、地理数据的使用、地图绘制三大流程,接下来将一一介绍。

疫情数据的采集与整合

要想打造好疫情地图,基础工作是疫情数据的采集与整合。在疫情数据的收集过程中,知识疫图整理了丁香园、WHO、约翰·霍普金斯大学、必应等国内外多个平台的数据源,这些数据对于不同地区疫情有不同力度、不同准确度的描述。多样的数据源,不仅可以使数据更细粒度,而且保证了数据的完整性和准确性。

如图一所示,针对不同数据源的更新特点,知识疫图运用了不同的采集方式,并将采集到的数据集合于一个数据库中,通过整合程序进行监控,整理对齐以便后续前端使用。图二是其中整合程序包含的具体工作,示例了其对数据对照、合并、补充、纠正四个方面的处理。数据整合后的数据库由于数据过大,不利于传输,对此研究人员采用了如图三的数据压缩方式,大大削减了字段不必要的开销。

图一 知识疫图数据采集过程

 图二 整合程序

图三 数据压缩方式

地图数据的使用

除了疫情数据,疫情地图项目中地理数据也尤为重要。地理数据主要有Geojson(图四)、Topojson(图五)、Shapefile等几种通用格式。Geojson将地理形状定义为点、线、面等不同的类型,不同类型有各自地理特征的描述,其的优点在于可读性强,但对数据的描述存在冗余。Topojson 针对Geojson的这一缺陷做了相应改进,减少了数据的重复性。

图四 Geojson格式

图五 Toposon格式

在地理数据的来源上,知识疫图国内和国外分别采集了阿里云、Natural Earth两大数据源。在收集到数据之后,进行地区字段的匹配如Beijing–China|Beijing–北京市,繁体简体转换,中英文对照等地区ID重组工作。虽然Natural Earth有数据完整性等优点,但其数据还存在一些细节需要修正(如图六)。中国地区的修正,主要指九段线、南海诸岛、台湾省、藏南地区等边界线和描述的处理。其他世界地区的数据调整包括(1)区域的重新规划比如意大利、法国等国家,需要以国家-大区-省方式重新合并和调整;(2)更粒度的数据处理比如英国苏格兰、北爱尔兰需要细化出像英格兰一样郡级的数据。

图六 数据修正示例

地图绘制

将收集到的疫情数据和地理数据整理对齐以后,下一步进行地图绘制。地图绘制主要以前端渲染展开,其方式有SVG绘制、国内的地图组件(百度地图、高德地图等)、国外的地图组件(Google Map、Mapbox)等。传统的SVG绘制简单快捷,但是存在放大缩小的局限性。地图组件可以做到不同层级的绘制,但需要大量的数据,此外国内外可能存在差异。综合考虑疫情地图项目的需求和各种绘制方式的特点,知识疫图选择了基于Mapbox的地图组件这一方式。图七是SVG绘制和Mapbox地图组件绘制后的对比,从图中可以看出两种方式在粒度上的差别,SVG绘制只能做到粗粒度的展示,但Mapbox地图组件可以较好地呈现更细粒度的数据。

图七 粗粒度vs.细粒度

借助Mapbox Studio进行前端渲染,将完整地图数据转换成区块数据,而区块级数据可以根据放缩大小完成不同程度的边界压缩。比如在图八世界地图的宏观界面时,Mapbox Studio会将细粒度数据压缩为可以满足需求的粗粒度数据,但当放大到某一具体区域时,会转变成此地区细粒度的数据。宏观时采用粗粒度数据,微观时减少细粒度数据的范围,灵活的转变方式可以很好地实现不同层级的数据呈现,并控制传输开销。

图八 Mapbox Studio宏观前端渲染

前端渲染有其内在逻辑和流程,以图九中国地理数据为例,数据源包含了区域等特征。基于数据源地图组件会分为不同的层,每层依据不同的渲染规则负责渲染不同的内容。

图九 中国地理数据前端渲染

除此之外,知识疫图的疫情地图前端渲染还包括了图十示例的事件,将各类新闻以地图标记的方式放置在疫情地图上,方便用户能够了解全世界在疫情之下各国发生的具体变化。

图十 事件渲染

答疑互动

以上就是本期疫情地图可视化技术实践的内容,感谢殷达的精彩分享,干货满满让人受益颇丰。最后为大家节选部分直播后微信群里的答疑互动,我们下期分享不见不散!

问:关于数据压缩,Json文件和Gzip压缩的优点和原理?

Gzip可以理解成对于传输的内容做了压缩,现在在网络传输上Gzip算是一种常用的压缩方法,其实就是把这个功能在后端启用起来,算是一个小技巧。Json文件主要是从Geojson到Topojson会有一个比较大的提升,简单地说Topojson减少了重复内容的开销,尤其是像地图边界线这种,经常不同国家会公用同一段边界线,在Geojson里就会需要对这段边界线声明多次,但是Topojson里一次就可以搞定。

问:在合并同一地区的不同表达时,会有不同语种带来的问题吗?还是说大部分的数据库都是以英语为主的呢?

会有不同语种的问题,主要以英文为主,像视频里提到的法国、意大利之类的地方,专门做了一些行政区的人工处理来解决语言问题。

问:疫情数据怎么做到多数据源的融合呢,数据源和地理位置的对齐有什么简单的方法么?

对齐方法其实没有特别好的办法。我们这里也是半自动的方法,先做简单的匹配,然后把没匹配到的数据挑出来,看原因是什么比如有的就是语种问题或者是简写之类的问题,然后再把这些特殊情况整合一下写成映射规则放回去再处理。

问:当天实时的增长数据是怎么处理的?相对昨日的新增有考虑到时区问题么?

时区问题我们的做法是除了当天的情况,其他时间都是以北京时间0点为分界线。当天我们对于昨日的新增是按照过去24小时来做的特殊处理,另外在地名映射上也会考虑到不同地区的重名情况,所以每个地区的id实际上会包含它的上级节点,比如北京的id就是 China|Beijing,这个对于地区匹配也有一定作用。

整理:何文莉

审稿:殷 达

点击左上 “下载报告” ,获取本次报告PPT

直播回放:https://b23.tv/JrhJQj

往期回顾:

疫情期间只能云开会?研究者们:真香

清华大学《人工智能之机器学习》报告,8个篇章203页,限时免费全文下载

以史为鉴:新冠大流行最终会被强制宣布结束吗?

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

二维码 扫码微信阅读
下载报告
推荐阅读 更多