目录
一.项目背景
1.有力支持疫情防控知识传播
2.迅速锁定“涉疫”人员流动轨迹
3.开展疫情发展态势预测与溯源
4.一图胜过千言万语!!!
二.研究过程(项目技术的利用)
1.总述
2.所用技术介绍
2.1Python
2.2PythonWeb
2.3网络爬虫
2.4数据库
3.所用技术详介
3.1Python基础
3.2PythonWeb
3.3网络爬虫
3.4数据库
4.技术关键
4.1网络爬虫
4.2PythonWeb
4.3数据库
三.成果展示
1.HTML前端页面
2.CSS
3.js文件
4.controller.js
5.app.py、util.py
6.爬虫.py、rt_util.py
9.项目成果展示
四.创意设计
1.数据库数据实时更新
2.获取请求,返回响应
3.将爬取数据写入数据库
4.添加加载动画
5.数据库更新成功则加载动画消失
6.加载动画样式
7.全国新增趋势图表样式修改
8.发送请求
9.加载页面展示
10.加载后页面展示
五.研究结论
1.疫情数据图
1.1便利性
1.2参照性
1.3方向性
1.4话题性
2.系统实时性意义
六.源码和PPT
现在,国家放开政策,在防控新型冠状病毒感染的肺炎疫情斗争中,各级政府、医疗机构、科研部门和科技企业迅速行动,把大数据、人工智能等技术应用到疫情监测分析、人员管控、医疗救治、复工复产等各个方面,发挥了作用,为疫情防控工作提供了支撑。
借助于移动互联网和智能手机,人们可以随时随地获取最新疫情动态、科学防疫知识等各种数据。
通过集成电信运营商、互联网公司、交通部门等单位的 信息,大数据可以分析出人员流动轨迹。
分析展示 发病热力分布和密切接触者的风险热力分布,还可以进行疫情峰值拐点等大态势研判。
疫情常态化的当下社会,更需要疫情监测地图。它更加清晰明了的将有价值的信息展现在用户大众的视野中,可有效的帮助大众做好防护,了解疫情发展情况。因此,疫情监测的数据可视化地图展示就显得更为重要,这也促使着疫情可视化的发展,也促进了数据可视化的发展,使人类迈向大数据时代!
首先通过爬虫获取到疫情实时数据并导入数据库,再运用PythonWeb技术将数据库中数据生成一目了然的各类分析图和词云图,最后展示成实时监控系统。
python具有简单易学、面向对象、可移植性、解释性以及开源等多方面的优点和特点。
pythonweb易于使用和阅读,且具有异步编码、较少限制编程方法、快速开发等优点和特点。
网络爬虫具有获取数据快、提取大规模数据、性价比高、可实时性等特点和优点。
mysql数据库具有整体数据结构化、数据共享高冗余低易扩充、数据独立性高等特点和优点。
基本数据类型、变量。输入输出、常用的运算符、流程控制语句、循环、函数、列表、模块、字典、元组等。
CS架构、html、JavaScript、echarts、 flask框架
导入urllib.request、bs4等相关爬虫所需外部库、对爬取数据的解析、获取页面标签等
pymysql库的导入、创建数据库的连接以及测试连接是否成功、python实现对数据库表中内容的增删改查。
关键:获取大量数据、处理缺失值、实时爬取。
关键:划分模块、分别渲染、传输并生成。
关键:库表规划、连接传输、存储提取.
在“疫情监测系统”下,扩展为“实时疫情监测系统”,每次访问页面将实时爬取数据。增添了加载页面,当数据库更新成功后加载动画自动消失并展示echarts图像。其中图像类型有所修改。
index.html对前端页面div划分模块。
main.css、style.css划分模块载入前端index.html中。
最主要的是controller.js以及引入相关echarts封装成的js文件。
发送ajax请求,获取相应模块数据。
对前端页面中划分的模块进行渲染以及传输数据。
爬虫以及实时更新数据库所需代码。
7.数据库的实时更新
@app.route("/get_mysql",methods=["post","get"])
def get_mysql():
mysql=util.get_mysql()
if mysql==1:
answer="数据库更新成功"
return answer
8.时间的实时更新
@app.route("/get_sys_time",methods=["post","get"])
def get_sys_time():
dt = time.strftime("%Y-%m-%d %X")#系统时间
#将系统时间字符串相应给前端
return dt
在“疫情监测系统”下,拓展为“实时疫情监控系统”:
1.数据库的实时更新,每访问页面,数据库数据全部更新
2.前端添加加载页面,数据库更新成功加载动画消失
3.全国新增趋势图表样式修改
//发送ajax请求,获取数据库中的数据
function getmysql(){
$.ajax({
//发送请求的url地址,
url: "/get_mysql",
type:"post",
success:function (data) {
$("#update").text(data);
$(".container").css("opacity","0");
},
error:function (){
console.log("获取mysql数据获取失败")
}
})
}
@app.route("/get_mysql",methods=["post","get"])
def get_mysql():
mysql=util.get_mysql()
if mysql==1:
answer="数据库更新成功"
return answer
# 从数据库获取mysql中的数据
def get_mysql():
pc.get_history()
pc.get_details()
pc.get_history()
mysql=1
return mysql
success:function (data) {
$("#update").text(data);
$(".container").css("opacity","0");
}
/* 设置背景颜色,自行选取五个颜色即可 */
.container .point:nth-child(1) {
background: #7ef9ff;
}
.container .point:nth-child(2) {
background: #89cff0;
}
.container .point:nth-child(3) {
background: #4682b4;
}
.container .point:nth-child(4) {
background: #0f52ba;
//发送ajax请求,获取left2中的数据
function getLeft2Data(){
$.ajax({
//发送请求的url地址,
url: "/get_left2",
type:"post",
success:function (data) {
ec_left21_Option.xAxis[0].data=data["ds"]
ec_left21_Option.series[0].data=data["confirm_add"]
ec_left21_Option.series[1].data=data["dead_add"]
// // 最后一定要重新设置一下
ec_left21.setOption(ec_left21_Option)
},
error:function (){
console.log("获取left2数据获取失败")
}
})
}
通过观察全国疫情实时监测追踪系统,可以了解到全国疫情情况、各省市疫情严重程度以及疫情当下大家所关心的话题。系统清晰地为人们展示了全国和各省市每时每刻的疫情,便利了出行导向,利用大数据为人类现如今生活指引前行。
全国整体所有疫情数据一目了然,数据实时更新,十分便利。
各省疫情情况可参照柱状图和全国地图进行对比参照。
数据地图为出远行的人们提供了准确的数据情况。
词云图展示疫情当下人们所关注的话题。
2.1有效支持科学判断
以生动形象的展示方式呈现在观众面前,在经过整体的数据汇总、分析后,大众能快速从大数据展示中,得出初步的判断,从而加速决策者的处理效率。
2.2信息的有效传递
数据信息所面向的不仅是决策者,也能向大众进行授权展示,我们可以通过疫情实时大数据系统了解到全国各地的感染人数,从而判断出严重和非严重区域,以此了解疫情的变化。
2.3加速指令执行
将各项信息进行汇总、处理,以形象的展示形式,呈现给大众,在此之中,能加速用户指令的执行,实现高效、快速的应用。
全国疫情实时监测系统