【《基于python的地震数据可视化系统设计》9500字(论文)】_第1页
【《基于python的地震数据可视化系统设计》9500字(论文)】_第2页
【《基于python的地震数据可视化系统设计》9500字(论文)】_第3页
【《基于python的地震数据可视化系统设计》9500字(论文)】_第4页
【《基于python的地震数据可视化系统设计》9500字(论文)】_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第1章绪论第4章爬虫程序设计本文以获取中国台网最近一年的地震数据为例,介绍数据抓取与分析的完整过程。如下图所示。爬虫分三步骤首先要选择数据源,利用request获取外部用户采集网页的文本数据,然后解析爬取中所需要的部分数据,包括震级,发震时刻,纬度,经度,深度以及参考位置。最后对解析完数据进行保存,以便后续对数据进行可视化和分析。图4程序设计过程图4.1抓取网页数据通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程,一般分为两种方式,一是抓取整张完整的页面数据,二是页面当中指定特定的局部页面。本设计属于第二种,首先要选择数据源,以中国地震台网网页为对像,在爬取网页信息之前先用谷歌浏览器打开该页面,检查页面指定url,对当前指定的网址url发起https或http的get请求,获取响应数据,当响应成功之后得到对应的所拿到的响应数据,通过页面数据与所拿到的数据进行比对验证是否为我们所要的信息,若是则就是展示在大家眼前的页面的原码数据。开始之前都要进行使用模块的安装,例如request,json模块。将搜索关键词设置为动态,才能获取更多搜索结果。本文关键词是获取最近一年的地震数据,进入谷歌开发者模式,如图(a),应处理url携带的参数,用param增加开始时间,结束时间到url中的参数,将参数封装在字典中,查看响应头信息可以看出是text/plain,响应数据为text文本数据,这时候就应该用response.text获取数据,获取得到的字符串json数据,用json.loads()对数据进行解码,将json对象转换为字典,对应的就是从网站爬取的各种信息。如图(b)。图4.1抓取网页数据过程图(a)图4.1抓取网页数据图(b)网页解析,对所获取的信息内容比较复杂多样,这时只需提取后面所要用的具体数据。这个过程中多翻几页之后发现网站的URL只有page发生变化,且根据key提取value解析所需要的部分信息,所以用手动解析,解析爬取中所需要的部分数据,包括震级,发震时刻,纬度,经度,深度以及参考位置,6个键值对,如下图。建datas列表来存储所解析的内容,利用append方法在列表末尾添加新的对象,对data.get提取后,一个一个追加内容拼凑起来形成一段具体内容完成内容解析工作。先对第一页进行解析,并保存数据到CSV文件,然后通过循环体完成多个页面的解析和保存工作。图4.1网页部分解析图(c)4.2数据保存数据保存方式有很多种,包括excel,csv,json,txt等形式。csv在这中间储存容量较大,通常所有记录都有完全相似的字段序列,是纯文本文件[9],不具备多种数据格式,易获取且可以被多个平台所使用。本文数据的保存需要定义一个函数,并设置表头,打开一个csv文件用于追加,如果文件已存在,则把新内容补充到已有内容之后。读取的数据,用解析函数把单条数据解析,从获得的json数据中得知总共有num页,爬取总页面的数目,每次结束一个页面爬取完成解析和写入工作,记录页码加1,开始下一页写入工作。每解析完一条数据将按维写入每一行并保存。利用循环体完成多条解析多行写入。直到所有获取信息被全部保存后退出程序。如下图,爬取所有的信息保存在datas.csv中。图4.2数据保存图4.3数据清洗对于直接获取原始数据存在很多问题,并不能直接用于可视化分析,所以要去除不要的,不合法,不合规的数据。对数值数据进行预处理操作,包括异常值处理、数据清洗、缺失数据补齐等。先对数据的读写,在用.info().describe().shape()方法对数据的探索与描述,得出总共有1731条数据,用.duplicated()方法确定是否有重复值。接着用.isnull()方法查看是否缺失值。最后处理异常值。如下图在这个过程中发现以下问题,75%深度值为20千米,最大值为640千米,经搜索出大于200千米深度后,得出深度越大震级越大,并没有出现不合理数据。最后处理完对文件进行持久性保存。图4.3数据清洗异常图4.4可视化分析4.4.1近一年中地震级别高低具体的次数分析以保存的文件进行数据分析,用柱状图可视化近一年中地震级别高低具体的次数,计算震级中发生的次数对其进行统计。调用pandas.read_csv()打开之前获取的数据,调用matplotlib.pyplot的bar()方法绘制条形图,设置柱状图的可视化视觉属性参数,包括标题标签,水平和垂直标签等,以x轴方向为发生的次数,以y轴方向为发生的震级绘制的柱状图。代码及柱状图如下图所示。图4.4.1地震级别高低具体的次数重要代码图(a)图4.4.1地震级别高低具体的次数可视化图(b)4.4.2近一年中地震高频地区分析用词云分析图可视化近一年地震高频地区,设计用groupby方法统计近一年同一个参考位置发生地震的次数,在此基础上对发生震级强度值进行降序排列。运用wordcloud.WordCloud()设置词云图的相关属性进行绘制,如下图所示。图4.4.2地震高频地区词云图图(b)4.4.3近一年中各省份发生地震具体的次数分析用网页的形式可视化统计近一年中各省份发生地震具体的次数,设计先创建地图对象,定义了中国省份列表,通过循环体完成数据统计,循环体主要负责两部分内容,一是遍历参考位置列,二是遍历中国省份如果参考位置的文本包含上面定义的省份,说明是这个省属于中国,该省数量加1,次数进行叠加。建列表存这些数据,则列表为各自省份相对应发生次数。使用推导式计算出map需要的列表,全局配置项可通过pyecharts.charts.Map.set_global_options方法设置,用视觉映射组件设置map参数,用于进行视觉编码,也就是将数据映射到视觉元素。.render()方法生成网页。代码及网页内容如下图所示。在整个映射过程中,除了可以查看可视化图形外,还可以通过在网页用户界面上进行实时交互。最常见的交互方式是通过鼠标进行人机交互,常见一系列的交互操作的触发行为,点击鼠标触发,鼠标移入或移出图片元素触发以及鼠标进入或离开视觉图片元素时触发等。同时还可以通过鼠标拖拽,缩放图片和高亮形式对可视化结果进行交互操作。当鼠标移入某个省份,鼠标下会显示该省份累计一年发生地震的次数,且该省份区域会高亮。图4.4.3各省份发生地震具体的次数重要代码图(a)图4.4.3各省份发生地震具体的次数可视化图(b)第5章总结本次实验主要使用的工具为pycharm软件和Python方法库。pycharm工具大部分专业程序员都使用它来完成编码工作,有效的提高了效率带来便捷,是一种PythonIDE。本文使用python语言获取网页信息,通过数据格式转换机制将获取的信息进行数据转换操作,然后进行数据解析并保存在CSV文件中,最后利用可视化技术进行数据属性到视觉图形属性的映射。本文主要以可视化近一年地震相关信息作为研究对象,可以得出以下结论。近一年中地震级别高低具体的次数分析得出,低级别地震占大多数,而且3.0级地震在近一年的发生的次数最多,前10名中都不会超过6级地震,大多数围绕在3级左右。3级地震一般也只是有感,不会造成严重破坏性,只会引起人们轻微恐慌。只有4.5级以上地震才可能造成破坏,目前是人类无法避免和控制的,但只要掌握一些技巧,也是可以从灾难中将伤害降到最低的。近一年中地震高频地区词云图分析可以得出,通过对可视化效果相关联的视觉属性参数设置,其中包括字体大小和颜色。出现字体越大,颜色越深的词语发生地震越高频震级越大。可以了解到中国在地震高频地区top10中占了9个位置。新疆,西藏发生地震的次数比较多,感受到地震离我们很近。近一年中各省份发生地震具体的次数分析得出,发生震级次数多显示更深的颜色。根据交互操作可以知道,新疆省份是发生地震次数最多的地方,中国东南部省份发生地震次数相对较少,新疆地震频率高,范围广,但新疆人少地多,造成的人和财产损失相较于我国东南部地区影响并不大,。本次实验设计仍然存在着许多的不足,如以下几个方面:(1)在爬取信息方面上,爬取信息网的信息有限,只能可视化部分内容,希望可以爬取更多的数据获取更多更有价值的信息。(2)在可视化方面上,可视化信息较为单一,只有3个模型,对于能够可视化的信息存在局限性。之后可以在原数据加入更多的数据,进行多样化的数据可视化。还可以对数据可视化成果进行设计,打造更美观的效果和体验。且以主观感受为设计样式,较为片面。后续可根据不同的信息需要,加入更多参数,进行设计不同的数据可视化图像或图表。参考文献[1]WuHejing,LiuFang,ZhaoLong,ShaoYabin,CuiRan.ApplicationResearchofCrawlerandDataAnalysisBasedonPython[J].InternationalJournalofAdvancedNetwork,MonitoringandControls,2020,5(2).[2]陆遥.数据可视化探索系统的设计和实现[D].浙江大学,2016.[3]杨利军,高军.图书馆个性化服务中的大数据可视化分析与应用研究[J].现代情报,2015,35(07):68-72.[4]李欣,胡成军.信息可视化技术及其军事应用[J].四川兵工学报,2009,30(10):132-133.[5]许茜,黄子杰,蔡晶,刘志臻,俞向梅,陈桂芬,陈林,葛亮,张钘铭.基于大数据研究的医学数据可视化[J].中国卫生统计,2017,34(02):347-349.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论