基于爬虫的地震数据分析及可视化
20年6月22日 · 刘贺源 2366 人阅读
摘要:
地震是一个非常普遍的地质现象,随着现代科学技术的发展,地震能够被现代的仪器越来越精确的测量出来,并给出各个维度的数据。通过计算机对这些数据的处理,可以大幅度的提高对这些数据整理利用的效率,更高效更快捷的获得更准确的信息。计算机与传统学科交叉,必将碰撞出许多不一样的火花。
本程序爬取了一年来全球的地震数据,通过数据的筛选和分析,实现可视化,让数据与图像结合起来,对地震的概况和相关知识有一个更清晰直观的认识。同时可以讲理论与技术相结合,巩固知识,深化理解。
一,研究目标
爬取地震网的信息,根据一年以来地震的各个尺度数据来对地震情况进行一个总结概括,同时和已经学过的专业课知识进行对照补充,相互学习,此外也想通过自己的数据分析,对地震的成因和发生地点形成一定的统计规律,达到科学与自然相结合,为人类服务的目的。
二,总体设计
1,程序模块图
三,程序模块详细设计
1.首先爬取数据,对数据进行筛选和处理;
2.分类储存在Llevel等各个列表中,将月份和日期相对应,形成字典;
3.设计GUI界面
3.1由于下拉框联动,单独设计了Getmonth函数来获取下拉框内容,以便后续设计;
3.2设置对应的函数,实现下拉框联动获取数据,图表的绘画,经纬度的打点,地震带的大规模绘制等等;
4.调试程序,将按钮标签等与函数一一对应,调试参数获得较理想的界面。
四,数据可视化和结论
根据之前学过的专业课知识,震源是指地下发生地震的地方,中是震源在地面上的垂直投影,从震中到震源的距离叫震源深度,根据震源深度可将地震划分为浅源地震,中源地震和深源地震。
地球上大多数地震都属于浅源地震,约占地震总数的73%,释放的能量占总能量的85%。
世界范围内的大地震带总共有四条,环太平洋地震带,地中海喜马拉雅地震带,大洋中脊地震带和大陆裂谷地震带。本次统计规律在地图上显示后近一年来。地震带确实符合这个分布规律。
五,亮点
1,实现了较理想的模块化,结构更清晰,主程序更简洁。模块化的设计使得代码间的逻辑更通顺,增加代码的可读性。
2,引入了pyecharts库用于世界地图的绘制,根据经纬度在地图上完成点的选取,同时在光标移动到点的时候可以显示震中地理位置的名称和震级,根据震级不同程度来调整点的大小和颜色。
3,自动生成了同路径下的html数据,用webbrowser实现自动弹出,使交互界面友好易操作。
4,将所得数据与上课时学过的知识进行对照,相互补充,相互印证,既证明了所得数据的准确性,又给科学理论提供了更有力的证据。
六,反思
1,在月份和日期的选择上处理的不够好,期望是做一个像日历一样的可翻页选择日期的控件。但由于时间原因还没有实现,现在的联动下拉框代码冗杂,并且功能不是十分清楚,交互界面不够非常友好。
2,爬虫的经纬度是用正负来区分东西南北,在显示的时候为了对应人脑的记忆采用了if语句来判断处理,有点复杂,希望能改进。
3,结论原本设想把数据归类,按照一定的经纬度范围计算出地震带的大致区域,但地震带并不是水平垂直分布的,形状不规则并且难以通过数字化界定,难以实现。
4,原本的选题并不是这个,离ddl一周的时候才发现撞题了T_T火速换了一个勉强完成,希望下次能早早看清需求,准备更充分,完成一个更好的大作业。
Python3Turtle