前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐一款低代码炫酷的地理空间数据可视化工具

推荐一款低代码炫酷的地理空间数据可视化工具

作者头像
数人之道
发布2022-02-14 11:34:25
1.9K0
发布2022-02-14 11:34:25
举报
文章被收录于专栏:数据技术数据技术

数人之道原创文章,转载请联系我们

在开源的地理空间信息数据可视化工具中,大部分都需要一定的编程基础和技巧才能使用。而今天要介绍的这款工具,不需要任何编程基础,即可实现地理空间数据的可视化,而且效果十分炫酷。

这款名叫 kepler.gl 的开源工具,是基于 Uber 的大数据可视化开源项目 deck.gl 创建的,依托于 WebGL 强大的图形渲染能力,可以在浏览器端以多种形式轻松地展示大规模的数据集。

通过 kepler.gl 面向 Python 开放的接口包 keplergl,我们可以在 Jupyter Notebook/Lab 中通过编写简单的 Python 代码的方式传入多种格式的数据,在其嵌入 Notebook/Lab 的交互窗口中使用其内建的多种丰富的空间数据可视化功能。也可以直接使用其官网上的 demo 工具,导入数据后直接配置可视化效果。

/ 在官网上使用 /

此使用方法无需编写任何代码,即可实现地理空间数据可视化!

直接访问以下官网网站地址:

https://kepler.gl/demo

上传数据文件(支持的格式为 CSV, Json, GeoJSON)后即可在线进行地理空间数据可视化配置及输出(下面会详细介绍各项功能的配置操作)。

/ 在 Jupyter 中使用 /

此方法需要在 anaconda 中安装 Python 的 keplergl 模块库,并通过 Jupyter Notebook/Lab 的交互窗口进行使用。

1

使用前准备

使用前需要安装 keplergl 的 Python 库及其相关的依赖包。

1.1

安装 keplergl 模块

在 Anaconda Prompt 工具中输入以下命令安装 keplergl 模块,相关依赖包会自动下载并安装:

代码语言:javascript
复制
conda install -c conda-forge keplergl

由于依赖包相当多,安装需要等待一段时间。

1.2

安装 jupyter labextension

若使用 JupyterLab,还需要安装一个扩展插件,在 Anaconda Prompt 工具中输入以下命令进行安装:

代码语言:javascript
复制
jupyter labextension install @jupyter-widgets/jupyterlab-manager keplergl-jupyter

安装完成后,重启 Anaconda,再打开 JupyterLab 即可使用。

2

初始化地图窗体

实例化一个 KeplerGl() 对象,查看初始化的地图对象操作窗口。

【参数介绍】

KeplerGl() 的参数:

  • height:int 型,展示的地图窗体的高度,默认为 400px
  • data:dict 型,传入地图中的字典型数据集
  • config:dict 型,地图参数配置信息
  • show_docs:bool 型,设置是否显示用户指引文档的地址,默认为 True, 即显示

【代码】

代码语言:javascript
复制
from keplergl import KeplerGl

# 加载初始化地图窗体
map_a = KeplerGl(height=800, show_docs=False)
map_a

【结果】

出现 kepler.gl 的初始化地图操作窗口,点击左上角的小箭头可以展开一个功能丰富的配置面板:

图2-1:kepler.gl 的初始化地图窗体

这个功能面板就是用来进行可视化配置的,下面会对其进行详细介绍。

3

加载地理数据文件

kepler.gl 支持 4 种数据格式,分别是:CSV, GeoJSON, DataFrame, GeoDataFrame. 其中部分地理数据可视化类型只支持 GeoJSON 格式的数据。

kepler.gl 会对 csv 格式的文件的字段类型进行推断,因此一定要在代表经纬度信息的字段名称中加上对应的 lat、lng 部分,格式有三种:

  • <name>_lat, <name>_lng
  • <name>_lat, <name>_lon
  • <name>_latitude, <name>_longitude

其中 <name> 是自选的变量名称。若不按此格式命名经纬度字段名称,导入数据后不能自动识别为可能的图形对象,需要手动进行选择。

我们使用在《汤加火山喷发后,分析全球火山分布,发现最多火山的地区在这里!》中下载的火山数据集 csv 文件,通过 Pandas 模块读取数据并存入 DataFrame 中,然后利用 keplergl 库的 add_data() 方法将数据信息加载到地图图层中。

【参数介绍】

add_data() 的参数:

  • data:传入地图中的数据集,可以是 CSV, GeoJSON, DataFrame
  • name:数据集传入图层中显示的名称

【代码】

代码语言:javascript
复制
import pandas as pd

# 读入数据文件
df = pd.read_csv("volcano_keplergl.csv",encoding='ANSI')

# 创建新的地图窗体,并加载地理数据
map_b = KeplerGl(height=800, show_docs=False)
map_b.add_data(data=df, name="volcano")

map_b

【结果】

图3-1:加载地理数据信息到 kepler.gl 地图中

地理数据信息加载到地图中后,会默认选择最合适的数据图层可视化类型展示其地理位置。

4

地理空间数据可视化配置

与 pyecharts, matplotlib, folium 等可视化库的配置方式不同,在 kepler.gl 中不需要编写颜色、图标、样式、触发事件等参数配置代码,只需要在页面上的功能面板中进行可视化配置操作即可,配置的参数可以复用,真正实现低代码的使用方式。

下面介绍部分常用功能的配置操作。

4.1

Layers(图层)功能

数据展示的图层, 位于底层地图图层之上。用以设置导入数据后,数据图层显示的样式。多套数据可通过图层叠加显示,也可以自行创建新图层。

数据图层有多达 40+ 种配色方案可供选择(每种配色方案会根据所选择的 steps 数量进行相应调整),也可以自定义配置;可设置配色的基准字段(这里设置为 region)、透明度:

图4-1-1:设置 kepler.gl 数据图层配色方案

可针对每个数据图层配置其可视化的类型,不同类型可设置的内容不尽相同。例如标点型可以设置标记点半径大小、轮廓线条颜色等;路径型可以设置路径线条粗细、海拔比例等:

图4-1-2:设置 kepler.gl 数据图层可视化类型

Arc 和 Line 路径型可视化可在地图上显示路径信息,前提是需要有两组经纬度坐标数据,即起点坐标和终点坐标:

图4-1-3:kepler.gl 地图上显示路径信息

部分可视化类型(如 Hexbin, Cluster)还可以通过高度(海拔)数据,绘制出 3D 数据地图:

图4-1-4:kepler.gl 绘制 3D 数据地图示例一

图4-1-5:kepler.gl 绘制 3D 数据地图示例二

图4-1-6:kepler.gl 绘制 3D 数据地图示例三

图4-1-7:kepler.gl 绘制 3D 数据地图示例四

【实战】

在原火山数据集中加入第二组经纬度数据,实现路径信息展示功能。

图4-1-8:kepler.gl 显示路径信息实战

由于加入的第二组终点坐标数据是随机生成的,因此路径比较凌乱、无规则,大家可以使用更加真实的数据来实现路径展示。

4.2

Filters (过滤器)功能

用以过滤图层中的数据。

数值型数据,可选择数值范围;字符串型数据,可通过选择对应值筛选;时间型数据,可添加时间轴,配合路径信息,还可以实现时间轮播路径动画。

图4-2-1:kepler.gl 图层数据过滤

图4-2-2:kepler.gl 实现时间轮播路径动画

【实战】

在原火山数据集中加入第二组经纬度数据的基础上,再加入时间信息,通过时间过滤条件,实现时间轮播路径动画功能。

图4-2-3:kepler.gl 数据图层加入时间过滤条件

图4-2-4:kepler.gl 实现时间轮播路径动画实战

在数据图层中加入时间类型字段的过滤条件后,图层会自动生成轮播时间轴,点击播放按钮即可按时间轴顺序生成路径信息进行轮播。可应用在出行、物流、航线等大数据展示中。

4.3

Interaction(交互)功能

设置触发事件的交互数据信息。

可设置悬停在目标上显示的数据信息内容,设置是否显示经纬度坐标信息,设置是否允许通过地理编码器进行地点搜索等。

图4-3-1:设置 kepler.gl 触发事件交互信息

这里设置了悬停显示火山名称、类型、最后一次喷发年份、所属国家、地区及经纬度坐标信息,允许通过地理编码器进行地点搜索。

4.4

Base map(底图)功能

设置底层地图样式及底层地图的图层顺序和图层内容。

目前有五种地图样式可供选择,也可以指定外部或自定义的地图样式;可设置地图图层的显示内容及顺序。另外 3D 地图还可以设置建筑物的颜色。

图4-4-1:kepler.gl 底层地图样式及图层设置

每个功能中还有很多丰富好玩的配置,大家可以自行探索。

5

获取地图配置信息

通过 .config 可获取当前地图中的所有配置信息,并以 json 格式返回结果。提取出来的 config 参数,可以在初始化另一个新窗体时直接传入其图层中,以复用到其他地理数据上。

【代码】

代码语言:javascript
复制
# 显示图层配置信息
map_b.config

# 初始化新窗体,并导入数据及 map_b 的配置信息
map_c = KeplerGl(height=800, data={"volcano_new": df}, config=map_b.config, show_docs=False)
map_c

【结果】

图5-1:输出 kepler.gl 图层配置参数信息

图5-2:将数据及图层配置信息复用至新图层中

火山数据集及 map_b 的图层配置参数信息成功导入到新的图层中。

6

导出地图文件进行可视化配置

通过 kepler.gl 的 .save_to_html() 方法,可将地理空间数据可视化结果生成 html 文件,进行进一步的配置和使用。

【参数介绍】

.save_to_html() 的参数:

  • data:dict 型,地理数据,若为空则使用当前地图中的地理数据
  • config:dict 型,地图配置信息,若为空则使用地图中当前的配置
  • file_name:str 型,导出的文件名称,默认为 keplergl_map.html
  • read_only:bool 型,设置导出的文件是否隐藏配置面板,默认为 Fasle,即支持配置

【代码】

代码语言:javascript
复制
# 导出地理空间数据可视化地图文件
map_c.save_to_html(file_name="volcano_keplergl_map.html")

【结果】

图6-1:导出的 kepler.gl 地图文件

接下来关闭 Jupyter,在工作目录下找到已经导出的 html 文件直接打开,然后就可以在浏览器里进行地(愉)理(悦)数(欢)据(快)的可视化操(玩)作(耍)了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数人之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档