从病毒地图起步!现在你就可以做个空间数据科学家

这两周,我们的日子又不好过了。工作、出差的不便还在其次;恰逢暑假,多少家长要焦虑万分,只是因为带着孩子旅游,却滞留在中高风险的城市而无法保证开学前14天回到居住地。疫情反反复复的,是一只不大不小的灰犀牛,就在那里,晃来晃去。塔勒布这个人也许你听说过,什么是灰犀牛,什么是黑天鹅我猜你也知道,但托普勒是谁,大概率你会很陌生。传染性疾病最能例证地理学第一定律了——20世纪60年代末,地理学家、地图学家沃尔特·托普勒提出了地理学第一定律:“一切事物都是相关的,但近处的事物比远方的事物更相关。”(“All things are related, but nearby things are more related than distant things.”)这种认为彼此接近的东西比彼此远离的东西更相似的想法,不仅是你的大脑中天生就具有的认知,而且对我这样的地理空间数据工作者来说是更是最为基础的思维。

即便没有任何GIS(Geographic Information System地理信息系统)、Geospatial(地理空间科学)的概念,可能你也知道当年斯诺(Snow)医生通过绘制伦敦水井与霍乱爆发致死人数的关系地图,来预测霍乱并不是地狱使者释放出来的杀手,而是饮用水中看不见的小恶魔。斯诺不是GISer(地理信息工作者),但他清楚的知道离哪个感染的水井近,就与患病危险关系大。虽然托普勒的厉害在于他能将这一现象总结成抽象的概念,而我们作为空间数据从业者,更愿意将GIS鼻祖的殊荣授予斯诺。

1850年约翰·斯诺的伦敦霍乱病例地图,原图源自Wikimedia Commons

斯诺的地图展示了空间数据科学中最流行和最知名的分析模式之一:热点分析。空间热点是指某事物在其内部的集中度远高于该区域外部的地理区域。斯诺的故事,让我油然起敬,不仅在于一个才活了45岁的流行病学家能绘制柱状图(死亡人口的数量)与街道图结合的专题地图,更重要的在于他用几乎是天生的空间数据科学理念来发现有趣的、有用的、用多源数据集汇总的规律和模式。

现代地图软件的普适化使得制作斯诺霍乱地图十分之简单。给你数据,在极海的平台上,你分分钟就可以制作出来。在这一刻,你就是一个初始的空间数据科学家了!如果你还是一个热情的充满好奇心的数据爱好者,联系我们的小助手,发给你一份截至2021年8月3号南京市政府公布的这轮疫情确诊数据,试一试,是不是你也能在你的朋友圈发布一份有你独到样式的地图成果。

用现代SaaS制图软件制作斯诺霍乱地图。来自:极海极客分享
用一份Excel文件,几分钟就可以制作新冠疫情地图。上图来自:极海极客分享

做地图是GIS从业者的基本功,也是GIS软件的基础能力。虽然说现在大型GIS软件,无论是昂贵的ArcGIS还是免费的QGIS,里面都包含了非常多的分析工具和功能,但对于空间数据科学家来说,这些软件被刻板的定义为“桌面制图软件”,换句话说,这些软件最大的意义是一种制作地图的工具,空间数据科学家们需要创建代码来灵活的实现Ta们心中的数据系列化操作。有些时候,GISer和Geospatialist的任务差异看起来很细小而微妙,但空间数据科学确实也需要一套新的工具甚至是新的思维方式。

比如极海在为咨询公司、投资公司的分析师们实现对连锁店位置的分析时,需要编写代码来实现大量的数据处理,从数据库中调用数据并借助空间数据库的能力进行计算,在本地或在云端进行机器学习的训练。在这个过程中,GIS技能仍然是必需的,但极海小伙伴们,作为地理空间数据科学家的一员,还需要许多其它技能才能取得成功。一些技能显而易见,而另一些技能鲜为人知。

极海数据分析师将喜茶所有门店的“好朋友”都找到,并且用好朋友来预测下一个喜茶店的“好位置”,这需要用”空间数据科学代码“来快速自动化的实现

对于现代疾控中心的空间数据科学家来说,Ta们可不只是做一个新时代的斯诺,仅仅把流行病的分布图做出来就万事大吉了。Ta们的目标不仅是能预测疾病如何在人类之间传播,也要预测疾病是如何“向”人类传播的。比如疾控专家估计,现有的所有人类传染病中有60%是人畜共患病——它们在动物和人之间传播。很多疾控专家在研究动物,尤其是蝙蝠,找出来并分析蝙蝠与人类密切接触的地点,识别出它们携带的有可能感染人类的病毒。Ta们希望有一天能够在流行病开始之前预防它们,而空间统计工具和分析将是承担这项任务的关键。

地理空间数据科学与其它数据科学一样,正在迅猛发展。从我的观察,只能从事GIS桌面的工作已经不足以在就业市场中成为佼佼者。我不是说GIS软件没有用,而是说想要有追求的你,还得多掌握些其它技能,而这一点都不难!如果要我说从GISer进化到地理空间数据科学家需要具备什么值得推荐的技术本领(对,别忘了,是进化,强烈建议你还是要掌握GIS桌面软件的操作),从极海小伙伴的成长经历上看,可以参考如下:

一、编程语言

毫无疑问,无论是对空间数据科学家还是GIS工作者来说,编程是一项基本技能。今天,几乎所有的GIS桌面软件都集成了Python和R语言,虽然你可以在桌面GIS中调用Python,但你也需要在桌面软件之外使用你选择的编程语言。如果您选择Python,请试试你最喜欢的集成开发环境(IDE)——流行的IDE包括VS Code和PyCharm。此外,如果了解Jupyter Notebook环境,那更好——它是数据科学使用最广泛的工具之一。对于R用户,也有类似的工作环境,如R Studio,当然Jupyter Notebook也支持R语言。

二、SQL

作为一名GISer,你很可能已经遇到过SQL。如果你是SQL专家,那就可以比较容易的进阶到空间SQL。虽然R和Python编程对老程序员来说,在某种程度上算是新技能,但SQL绝对算的上是老技术。对于GISer来说,学习SQL以及关系数据库会大大受益。同样,你可以使用你最喜欢的GIS桌面软件开始你的学习之旅。PostGIS可能是使用最广泛的空间关系数据库,我认为它已经是一种代表新一代事实标准的空间SQL,被许多数据技术厂商所采用,甚至还包括Google的BigQuery GIS。不过你也留意一下SpatiaLite,这是一种轻量级空间SQL,非常轻便,占用资源极少。

三、代码管理

写代码真不是一件容易的事儿!你可能有许多同名的文件,只是有不同的数字后缀而已。版本控制能解除跟踪每个程序代码文件的负担,这在处理你自己的项目时很有帮助,而且对于与他人的协作帮助性更大。随着大数据科学家们趋向于配合攻坚,这使得一些开发操作,如Git和版本控制,已经是一项基本技能,但我发现很多程序员在这方面的技能却是缺失的。其实大多数IDE都集成了源代码版本管理并包含对Git的支持,稍稍实践一下即可掌握。

四、云

数据科学,特别是空间数据科学的未来一定是在云端。因此,下一代空间数据科学家需要具备云计算的实用知识。不仅大数据集使得云计算的使用必不可少,空间数据分析的可扩展性和即时性也需要用到云的能力。在Google上或者亚马逊上有不少免费的沙箱和开源工具,使得你可以学习和实践如何使用云运行大数据地理空间分析和计算,可惜的是,你要有些科学上网的本领。国内的云也可以去尝试,虽然说一开始会有点不适应,但从一种云平台上获取的任何技能都可以很容易地转移到另一种平台上。

五、人工智能或者机器学习

人工智能(AI)和机器学习(ML),特别是深度学习,正在颠覆传统GIS行业。丰富的卫星影像以及其它含有位置信息的非结构化数据使得人工智能和机器学习在地理信息中的应用倍受关注。作为一名空间数据科学家,未来是充满希望的,我们现在只触及了空间数据的计算机视觉和自然语言应用的皮毛。幸运的是,不用担心你的编程能力不够,今天我们有低代码的ML和AI工具供空间数据科学家使用,这降低了进入这个令人兴奋的新领域的门槛。你听说过Fastai吗?你完全可以轻松上手,使用计算机视觉和自然语言处理乃至迁移学习、增强学习为地理空间应用创建最先进的智能系统。

最后我很想强调一下软技能,我甚至认为软技能在职场上的通用价值更大,不仅可让你有别于其他空间数据科学家,而且还可以让你在职场上保证相当大的灵活度——你的选择权更多——它们也都具有很强的通用性,不管在哪个领域,都会让你的工作更得心应手。这里仅列出三条与数据科学息息相关的软技能:

  • 沟通技能:在数据科学领域,这一点变得更加重要,不仅因为你需要将新领域的知识解释给别人听,更为重要的是这个新领域需要组织内外许多合作伙伴的协作;
  • 讲故事能力:数据可视化和讲故事在任何数据科学中都扮演着重要的角色,没有数据故事,你的分析成果很难得到重视;
  • 数据敏锐性:对数据有良好的感觉,既需要发挥你在业务上的敏锐性,也需要敏锐的利用空间数据科学技能解决新老问题。

空间数据科学家的未来是光明的。在过去10年里,我亲身经历了地理信息系统技能组合的演变和迁移。你现在就可以参与进来,我再次强调这一点也不难,无非就是学习一门编程语言和空间SQL,增加你的分析知识,提升你的自动化处理空间数据的能力;借助Github和版本控制来共享、管理你的代码;去试试云上的资源,试试能不能将你的空间数据科学应用在云上发布出来;最后,人工智能和机器学习在地理空间领域已经有了确切的实践,并且具有广阔的应用前景,从低代码的尝试开始吧。

祝愿大家从GISer到空间数据科学的进化之旅,一切顺利!