首页 文章详情

纯Python构建上海疫情风险地图探索应用

大邓和他的Python | 367 2022-04-12 00:19 0 0 0
UniSMS (合一短信)


据“百度疫情实时大数据报告”2022年3月27日19点实时数据显示,上海较昨日新增确诊51例,新增无症状2633例,形势严峻。

不少在上海的朋友们也尤为关注其所在地周边的疫情确诊情况,涌现了一些小程序帮助我们通过地图查看周边的疫情情况。

而今天的文章,费老师我就来带大家学习如何使用纯Python,轻轻松松开发一款可自由探索地图上疫情风险点分布的应用,数据来源:https://tienzhao.github.io/covid-shanghai/shanghai.html,感谢交流群李日新同学的分享。

使用效果如下面的视频所示:

而要完成这样一款交互式地图应用的开发,过程其实非常简单,主要使用到Dashdash-leafletgeopandas以及由我开源的feffery-antd-components等框架,下面我们分步骤介绍具体开发过程:

1 环境搭建

作为一款具有地图空间分析功能的应用,我们除了常规的dash+fac开发套件之外,还需要安装geopandas实现一些必须的空间分析,推荐使用conda进行虚拟环境的准备,参考命令如下:

conda create -n covid-shanghai python=3.7 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main -y
conda activate covid-shanghai
conda install geopandas=0.10.2 -c https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud/conda-forge -y
pip uninstall rtree -y
pip install rtree dash feffery-antd-components dash-leaflet dash_extensions -i https://pypi.douban.com/simple/

全部执行完成后我们的应用运行环境就准备好了~

2 界面搭建

应用界面的搭建非常简单,其中地图使用到dash-leaflet中的地图功能,悬浮于地图区域右上方的信息面板使用到我的开源组件库feffery-antd-components中的AntdText()AntdSpace()AntdAlert()等功能,具体见本文源码(【玩转dash】公众号后台回复【上海疫情】获取全部源码)。

3 地图交互功能的实现

在这个应用中,我们需要实现的交互功能主要包含了监听地图缩放事件监听地图范围以及根据缩放级别和范围计算得到合法范围内的疫情点并渲染到地图上

因此我们在构建我们的dash应用回调函数时,将dl.Map()zoombounds属性作为回调函数的输入,判断当zoom>=15时,从原始疫情点数据中利用geopandaswithin()空间关系,来找到当前地图范围内所有疫情点并处理后传到地图上进行渲染,并向右上角信息框中更新当前范围内疫情点数量。

以上过程你可以在本文源码中详细学习(【玩转dash】公众号后台回复【上海疫情】获取全部源码)。


以上就是这个应用的主要组成部分,

代码链接:https://pan.baidu.com/s/1QQJPZipqbowVNYuiVeWijw 提取码:dash


解压密码:dash



精选文章

Python语法入门(含视频代码)

视频专栏课 | Python网络爬虫与文本分析

读完本文你就了解什么是文本分析

综述:文本分析在市场营销研究中的应用

使用文本相似度可以识别变化的时间点

PNAS | 文本网络分析&文化桥梁Python代码实现

PyPlutchik库 | 可视化文本的情绪轮(情绪指纹)

tomotopy | 速度最快的LDA主题模型

人文社科类Python免费教程列表

量化历史语言学-贝叶斯语言谱系分析

Python与文化分析入门

在会计研究中使用Python进行文本分析

文本分析方法在《管理世界》(2021.5)中的应用

SciencePlots | 科研样式绘图库

Wow~70G上市公司定期报告数据集

YelpDaset: 酒店管理类数据集10+G  

极简浏览器启动页StartPage分享

doccano|为机器学习建模做数据标注

使用WeasyPrint自动生成pdf报告文件

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter