本站所列毕业设计(论文)资料均属于原创者所有,初衷是为大家在毕业设计(论文)过程中参考和学习交流之用。

毕业设计我帮你

气象数据可视化分析

www.bysj580.com / 2017-05-02
气象数据可视化分析
一、本课题研究的意义、研究内容和研究进展情况
天气状况影响着人们的衣食住行,然而传统的气象数据多以表格、文本等单纯的表现形式为主,对于公众来说抽象难懂,缺乏直观性。历史气象数据的统计与分析对于普通大众并不能方便地查询到,在网上最多只能查询到最近几年的历史天气数据,并且部分能提供气象数据可视化的网站以商用为主。对于普通大众来说,并没有一个很好地利用历史气象数据和展示这些数据的平台。
针对这一问题,本课题拟开发一个web平台来对这些数据进行采集和统计,以及可视化表达。
 
二、本课题研究内容和拟解决的主要问题
1.采集数据
数据主要来自中国气象数据网(http://data.cma.cn/),针对网页上的内容并且数据较多,拟编写爬虫程序来对数据进行采集。

一个通用的网络爬虫的框架如图1所示。
爬取流程如下:
1) 读取URL
2) 提交验证数据模拟登陆
3) 获取网页源代码
4) 解析html文本
5) 提取所需信息并保存
6) 进行下一次抓取
1. 处理分析数据
目前天气预报包括天气形势预报和气象要素预报两部分,前者对天气系统(高压、低压、槽脊、锋面等等)的移动、强度变化和生成、消亡的预报;后者是对气温、气压、湿度、能见度、风、云江水等等气象要素和天气现象的预报。两者密其相关,天气形势是预报气象要素的基本依据。
预报时效包括短时预报、短期预报、中期预报和长期预报。通常称时效在几个小时内的预报为短时预报,时效1~3天的预报为短期预报,时效为3~10天的预报为中期预报,时效10天以上的月、季年预报为长期预报,也有人把一年以上的预报成为超长期预报。时效越短的预报,要求预报的越准确。
目前气象台使用的天气预报方法,大体分为三类,即天气图法、数值预报法和数理预报法等。天气图法和数值预报法主要用于短期预报,近年来也在向中期预报方向延伸。数理统计预报法主要用于长期预报,近年来也向短期预报方面发展。在实际预报工作中三种方法是相互结合、相互补充使用的。
本课题主要基于历史气象数据来对绍兴的气象状况作分析与预测,仅需借助随机过程中著名的马尔可夫链模型来对历史数据进行处理。以某日天气的状态转移数据为例,建立了天气情况预测模型,并借助该模型应用马尔可夫链的遍历性,对未来天气的变化趋势作出了预测分析。它的重要特征是无后效性和遍历性。
马尔可夫链(Markov Chain):描述了一种状态序列,其每个状态值取决于前面有限个状态。马尔可夫链是具有马尔可夫性质的随机变量的一个数列。这些变量的范围,即它们所有可能取值的集合,被称为“状态空间”,而的值则是在时间n的状态。如果对于过去状态的条件概率分布仅是的一个函数,则
P (|) = P (|)   ⑴
这里x为过程中的某个状态。上面这个恒等式可以被看作是马尔可夫性质(Markov性)。
公式⑴的条件概率P ()为马尔科夫链的转移概率。
当马尔科夫链的转移概率只与状态有关,而与n无关时,称马尔科夫链是时齐的,并记= P (|)(n)。
P = =                ⑵
公式⑵为转移概率矩阵。
根据C-K(Chapman-kolmogorov)方程
即           ⑶
可得到m步转移概率矩阵。在气象预测中,就是通过不同天气之间的转移情况来得出天气状况发生的概率。
基于python的生态环境,本课题利用numpy这个第三方库来对矩阵进行处理。
2. 网页前端数据交互式展示
展示需要相比传统的用表格或文档展现数据的方式,数据可视化能将数据以更加直观的方式展现出来。使数据更加客观、更具说服力。在各类报表和说明性文件中,用直观的图表展现数据,显得简洁、可靠。在可视化图表工具的表现形式方面,图表类型表现的更加多样化,丰富化。除了传统的饼图、柱状图、折线图等常见图形,还有气泡图、面积图、省份地图、词云、瀑布图、漏斗图等酷炫图表,甚至还有GIS地图。这些种类繁多的图形能满足不同的展示和分析需求。
在数据可视化方面, D3.js无疑是此中翘楚,是在世界范围内最受广泛认可的前端可视化工具,Github上的排名就是有利的佐证。它有三点特性:高自由性、代码简洁、有研究的趣味性。作为一种完全开源的技术,它不追求作图的速度,有很多为高端开发者考虑的地方,使其成为了一项“值得深入学习”的技术。
Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。Bokeh允许你通过简单的指令就可以快速创建复杂的统计图,Bokeh提供到各种媒体,如HTML,Notebook文档和服务器的输出我们也可以将Bokeh可视化嵌入flask和django程序,Bokeh可以转换写在其它库(如matplotlib, seaborn和ggplot)中的可视化Bokeh能灵活地将交互式应用、布局和不同样式选择用于可视化。
虽然与D3.js相比,Bokeh的可视化选项相对较少,但是作为python的第三方库,可以提供方便的API来供后台使用。故本课题采用Bokeh来实现数据的可视化。

三、研究思路、论文主体纲要
a) 研究思路
1. 查阅文献完成外文翻译。题名:on markov chain modeling to some weather data(马尔科夫链对于天气数据的建模)。
2. 阅读文献完成文献综述。详细叙述气象数据预测的意义和历史并确定处理历史气象数据所采用的模型,即马尔科夫链模型。
3. 完成开题报告并开题:课题的对于普通民众的意义,本课题拟解决的主要问题和主要内容。
4. 利用python及相关第三方库或者爬虫框架对中国气象数据网绍兴历史气象数据进行抓取,将数据存储在mongodb数据库以及CSV文件中。
5. 利用python pandas、numpy库来对数据处理成转移概率矩阵并进一步处理得出气象状况转移概率从而得出天气状况发生的概率。
6. 将存储在数据库中的数据交互式的呈现在网页上。
 
b) 论文主体纲要
1. 爬虫程序(python scrapy、requests)
2. 数据存储(mongodb)
3. 数据处理程序(python pandas、numpy)
4. 网站后台编写(python django/flask)
5. 网页前端数据交互可视化(html、js、css、Bokeh)
 
四、论文完成进度和计划
时间 任务
2016.11.11~11.25 指导教师给学生下达任务书
2016.11.26~2016.11.30 论文题目确定
2016.12.1~2017.2.1 完成外文翻译和文献综述
2017.2.1~2017.2.28 研读文献并完成开题报告
2017.3.1~2017.4.30 完成毕业论文的初稿, 交指导教师审阅
2017.5.1~2017.5.20 毕业论文修改并定稿
2017.5.21~2017.6.5 毕业论文送评阅人审阅,做好答辩的准备工作,参加答辩
2017.6.6~2017.6.8 根据答辩意见进一步完善论文和评定成绩
2017.6.9~2017.6.15 按要求上交毕业论文相关的纸质档案、上传定稿的全部电子文档
 
五、主要参考文献
[1] 周中华 张惠然 谢江. 基于 Python 的新浪微博数据爬虫[J]. 计算机应用, 2014, 34(11): 3131-3134.
[2] Mitchell R. Web scraping with Python: collecting data from the modern web[M]. O'Reilly Media,2015. 
[3] 麦金尼唐学韬. 利用Python进行数据分析[M]. 机械工业出版社, 2014.
[4] 武漫漫, 万弢. 马尔科夫链在天气预报中的应用[J]. 黑龙江科技信息, 2009 (30): 58-58.
[5] 吴根祥. 基于XML实现数据可视化交互式呈现[J]. 绍兴文理学院学报, 2005, 25(7):89-92.
[6] IgorMilovanovic, 米洛万诺维奇, 颛清山. Python数据可视化编程实战[M]. 人民邮电出版社, 2015.
[7] 赵聪. 可视化库D3.js的应用研究[J]. 信息技术与信息化, 2015(2):107-109.
[8] Wielfaert T. Introduction to data visualisation with D3.js[J].
[9] CaptainYaung, 马尔可夫链-Chapman-Kolmogorov方程及其n步转移概率矩阵[EB/OL]. http://blog.csdn.net/makenothing/article/details/41363971. 2014-11-21.
[10] 高发玲, 杜美华, 孙建英,等. Markov链在天气预测中的应用[J]. 齐齐哈尔大学学报(自然科学版), 2016(1):90-92.
[11] 小草莓, 什么是数据可视化?[EB/OL]. https://www.zhihu.com/question/26685414, 2016.

收缩