用户名
密码
(30天内有效)
注册
注册
首页 > 案例资料 >

如何用NetLogo+手机数据模拟城市中的传染病传播?

我要收藏
2021-02-20

传染病在城市中的传播过程非常复杂,影响因素众多,不仅包括病毒本身的特性,更有其传播的自然和人工环境。因此为了对病毒的传播和影响进行估计,以制定相应的防疫策略,擅长处理复杂过程的计算机模拟方法常被采用。


在新冠疫情期间,我们也开发了一个传染病传播模拟模型,其特点是将手机数据所反映的人们的基本生活行为(居住、工作、通勤)作为基础资料,以较真实地模拟病毒藉由人们特定的时空交互而传播的过程。模型开发基于NetLogo多代理人(Multi-agent)编程环境。


不过跟绝大多数传染病模拟模型一样,要准确模拟病毒传播是极其困难的;但它们可以在一定的精度下,得到具有稳健规律的定量或定性结果,从而为防疫实践提供方向性的建议和启发。这也是本模型开发的目标。


本篇简要介绍本模型开发的基本与核心原理。



步骤1:输入地理信息

用NetLogo的地理信息扩展包(gis extension)导入对象地域的shp文件,完成地理环境的设定。



步骤2:输入个人信息

采用手机数据,获取一定样本个人的居住地和工作地(通勤目的地),分别输出每个人的居住地和工作地的坐标。在NetLogo中导入每个人的信息,生成一个代理人,初始位置位于其居住地,根据坐标确定,其同时拥有工作地位置的坐标。经过以上两步,模拟空间环境呈现类似下图,其中每个灰点代表一个人:


1613813865791122.png



步骤3:模拟基本生活行为

模型模拟每个人每天的基本生活行为,即居住、工作和通勤。模拟从第一天的0:00开始,例如,某代理人初始状态在家中;到8:00从家出门,向工作地移动;9:00到达工作地,开始上班直至18:00下班,开始返程通勤,到达家中直至24:00一天结束。第二天循环以上过程。



步骤4:模拟病毒传播

模拟开始前,在若干地点设定若干个病患,作为病毒传播的起点。在每个模拟回合中,当病患与常人接触,该常人有一定的概率被感染。接触在此定义为病患与常人在一个模拟回合内处于同一个栅格(下图)。病毒据此机制在人群中传播,当病患占总人数的比例达到设定阈值时,模拟停止。


1613813911353263.png


可见这是一个相当简化的病毒传播模型,与实际的复杂传播机制相去甚远;不过其简单带来的稳健性足以用来探讨一些一般规律性的问题。 


模拟的可视化效果类似下图,不过这不是必要的,模拟过程记录了每个代理人感染的时间和地点,传染的时间、地点和人数,这些数据才是分析的主要对象。


1613814374765573.png


下面以上海浦东为例进行应用,探讨这一方法的潜在用途。


2020年11月,在上海浦东的浦东机场等地屡次发现本土新冠病例。


1613814398788988.jpg


人们不禁担忧:这些人在哪住,在哪上班,坐没坐地铁,会在我附近经过吗? 


好在上海优秀的防疫工作迅速有效地控制住了疫情的传播。 


不过,如果某个病毒有更好的潜伏能力,当感染者尚未出现症状时,病毒已经可能得以传播和扩散。这时,一旦发现病例,除了对病例发现地实施强力管控,还需要在哪些潜在传播地区开展重点防护以及活动规避,这是我们想回答的主要问题。



模拟始于浦东的病毒传播

从智慧足迹核心洞察平台输出结果中(基于中国联通手机数据),随机抽取了5万常住人口子样本输入模拟平台,作为基本生活行为模拟的本底。在模拟开始,设定实际确诊的6个病例的发现地为病源点;进行20次模拟,以获得稳健的结果。每次模拟在受感染人口比例达到90%的时候停止,历经30天左右。注意这并不代表真实的传播时间,只是为了便于分析病毒传播的时间和空间规律而预设的时间跨度。


在前期,较多居住在浦东接近市中心的人迅速被感染,而后开始在浦西扩散,因为浦西有着更高的居住人口密度、就业人口密度和活动强度。


1613814423431074.gif


每个高亮的栅格为感染者的居住地。传播早期主要发生在浦东,中后期在浦西的传播更深、更广。



 锁定早期感染者

最先被感染的这批人,可能住在哪里?


图中的红色栅格是在模拟大约进行到1/5时,感染比例约0.98%,在20次模拟中有很大几率其中的居住者被感染的地点,包括虹桥镇、北蔡镇(接近花木街道)、川沙新镇、金桥等地附近,这些地区或有重要的交通枢纽,或高人口密度;多数位于浦东,少量位于浦西。


1613814451232205.jpg



识别易感地

那么这些人是在哪里被感染的呢?


模拟过程记录了他们的感染地点,用核密度的方式呈现:


1613814479681100.gif


最早发生感染的地点为浦东川沙新镇(机场)和周浦镇,是由初始病患在上班期间传播的;另外传染还发生在张江、漕河泾等地,都是重要的产业园区。


1613814503129069.jpg

早期感染地点的核密度分布


图中可见早期感染发生地主要集中在浦东新区的陆家嘴、北蔡、花木街道、浦东机场、张江、周浦镇;浦西所受影响还较小,但已在黄浦区,以及虹口、静安等与黄浦区接壤的区域有较少量的发生;比较特殊的是宝山的张庙街道,这基本是一个纯居民住宅区,位置离病源地相当远,却是浦西最为易感的地点。



追踪传播链

这些早期感染者是怎么被感染的呢?


挑选了一些典型的感染者,来看其病毒传播链。


陆家嘴

1613814534119871.jpg


居住在陆家嘴的早期感染者主要经过三种传播链被感染:一是张江病源点直接传播到陆家嘴(690);二是浦东机场病源点直接传播到陆家嘴及其附近区域(375),传播链短且迅速;三是周浦病源点经由浦西漕河泾传播再回传到陆家嘴。


浦西

1613814557822401.jpg

浦西的虹桥附近是最易发生感染的地点,一种传播链直接从浦东机场到虹桥(1745);另一种从病源点先传到浦东的就业集中区,再传往浦西中心区。


张庙

1613814578328892.jpg


之前说的宝山张庙是浦西的一个居住区,却也是传播早期的易感地点,其传播链主要有两种,一种是经浦东机场直接到张庙(257),另一种是从浦东经陆家嘴附近后传至张庙(919)。


最先发生的远距离传播

1613814600899004.jpg


在所有的模拟轮次中,最先发生的远距离传播链是“周浦病源点—虹桥—泗泾”。一个通勤经过周浦和虹桥的人首先在周浦的病源点被感染,然后在虹桥传染了这个住在泗泾、通勤经过虹桥的人。


最先发生的超远距离传播

1613814620948771.jpg


这条超远距离传播链经过5次传播,病毒先从张江病源点传播到张江高科园区,再传播到陆家嘴附近,最后被一位超长距离通勤者带到了上海西端的淀山湖。


对模拟大约进行到1/5时的所有轮次得到的1853条传播链进行统计,发现当在传播早期发现病例时,最有可能已经经过了3次传播,而多数传播链多于3次。


1613814641178283.jpg


从病毒经过传播距离来看(连续传播环节间的直线距离总和),在病源点附近被感染的可能性较大,而最有可能的传播距离是大约25km,平均为21.1km。


1613814665131802.jpg


可见,有较大可能病毒会通过重要的交通枢纽、就业中心、人口聚居地传播出去,将这些地方作为跳板,经过几次传播就可以扩散到更远的地方。


总结

在以上的模拟中,我们假定该病毒具有很强的潜伏力和持久力,在潜伏期可能已经传播开来;通过追溯早期感染者的感染地点和传播链,发现:


(1)交通枢纽、就业集中区、市中心是易感地和传播“跳板”,因此除了严控病例发现地外,这些易感地的防疫措施也需要加强,个人出行和活动最好避开;


(2)病毒的空间扩散模式基本上是自病源点由近及远的,早期传播发生于浦西的可能性较低,病毒在浦东的主要传播地还是陆家嘴、北蔡、张江等人口和就业集中区;


(3)但远距离、超远距离传播也同时存在,且传播链环节数并不多,特殊的通勤行为造成这样的结果,但它们也同样有赖于高强度人流集散地作为传播的中介;


(4)城市的特定空间结构、居民的职住关系、通勤行为对传染病传播产生重要的影响,手机数据能较为客观地反映这些特征,为病毒传播模拟提供了很好的本底环境。


以上模拟尚未考虑流动人口的活动。他们的行为不确定性高,对实际的疫情管控和模拟都是大挑战。



本站声明

本文仅代表作者观点,不代表城市数据派立场;
本文系作者授权城市数据派发表,未经许可,不得转载;
本网站上的所有内容均为虚拟服务,一经购买成功概不退款,请您理解。

点赞0