- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
拓展知识
1.1 地理可视化
5.5 节中介绍了常见的数据可视化手段,包括绘制折线图、直方图、饼图等,其用图表化
的方式展现数据之间的联系以及数据变动的趋势。这些可视化手段展示形式简单,易于绘制和
理解,但是无法将数据与实际物理世界进行关联、参照、对比,不能给予用户地理上的直观印
象,因此无法全面地呈现具有地理属性的数据,如对比不同地理位置的城市数据。事实上,不
管我们是否意识到,当前时代的社会经济活动已经愈来愈依赖于地理数据,不仅日常生活中会
生产各类基于地理的数据,日新月异的太空技术和卫星遥感技术也导致更广泛层面的地理数据
的大量涌现,包括不间断的全球各区气温监测、地表温度和湿度监测、各类气体变化、各类地
理实体特征记录等。这些数据具有强烈的时空与地理特性,因此其与地理信息的结合呈现将提
供多维、宏观、动态、立体视角,即数据的地理可视化。
目前,常见的基于 Python 的地理可视化工具有 PyViz/HoloViz 、Folium 、Plotly/Ploty
Express 、IpyLeaflet 、Geopandas 等。本书采用Folium 工具 (版本为0.11.0 ),其具有便利性好、
功能强大、界面美观等特点,被广泛地应用于各类地理可视化项目。
使用Folium 实现地理可视化的一般步骤如下所示。
(1) 依据数据特点,确定相关联的地理范围。
(2) 依据数据的具体地理位置,确定对应的地理区域和地图对象名字。
(3) 依据数据特点,确定数据的地理呈现方式,并将其标注到对应的地理对象。
(4) 确定和用户的交互方式,如支持缩放、支持地图对象点击和查询、支持动态展示等。
接下来,以绘制美国各州的气温对比为例,循序渐进的介绍上述使用Folium 的4 个步骤。
1.1.1 实现地理可视化
最简单的Folium 使用方法只需要一行代码,如 【例6-31 】所示。
使用Foliumn 绘制纽约市地图。
import folium
folium.Map(location=[40.692141, -74.064270], zoom_start=10, tiles=Stamen Toner)
folium.Map() 的 location 参数指定地图中心点的纬度和经度值 (即纽约市中心点的地理位
置),如果省略location 参数则显示世界地图。zoom_start 参数指定默认的放大倍率,值越小,
则显示的地图范围越大。tiles 参数指定地图显示的样式,可选的参数值包括 OpenStreetmap 、
1 / 13
Stamen Terrain、Stamen Watercolor 等。folium 的地图数据存储在远程服务器上,读取和显示地
图需要一定的运行时间,其长短取决于网络的连接速度。
New York 市地图
图6-19 所示地图只展示了街景图,如果想增添其他图层需提供对应GeoJSON 数据,并使
用geojson()进行加载,如 【例6-32 】。
绘制美国 (United States )各州地图,并标注州界。
import json
m = folium.Map([43, -100], zoom_start=4,tiles=Stamen Toner)
json_f ile = .\\json\\us-states.json
with open(json_file) as f:
geo_json_data = json.loads(f.read())
folium.GeoJson(geo_json_data).add_to(m)
m
本例先利用json.loads() 读取存储所有州界数据的JS 对象标注 (JavaScript Object Notation ,
JSON )文件,再使用folium.GeoJson()将州界添加到地图。JSON 是一种轻量级的数据交换格式,
采用键值对的语法形式,采用纯文本格式存储数据,因此具有较好的移植性,支持不同平台、
系统、编程语言之间的数据交换。GeoJSON 为JSON 在地理领域的应用,指定各种地理对象的
记录格式。GeoJSON 支持点(Point )、
文档评论(0)