描述
项目描述
keplergl_quickvis
概述
Uber的开源kepler.gl是一个优秀的基于浏览器的平台,用于交互式可视化地理空间数据。《keplergl》Python包的包含的文档几乎完全针对Jupyter内部使用,需要一些工作才能弄清楚如何在非Jupyter Python环境中使用它。
keplergl_quickvis
是一个简单的包装器,可以快速将您的地理空间对象从Python导入到浏览器中的kepler.gl。它就像
keplergl_quickvis --style=outdoors data.geojson
从命令行,或者从Python
from keplergl_quickvis import Visualize
Visualize(data)
特性
- 一行数据可视化
- 自动将Shapely对象转换为GeoJSON
- 无需配置
安装
Mapbox API密钥:为了显示Mapbox托管地图,您需要提供Mapbox API密钥。前往Mapbox.com获取API密钥。
包安装:
pip install keplergl_quickvis
此包依赖于geojson
,shapely
和geopandas
。如果您通过pip安装此包时遇到错误,可能更容易首先通过Conda安装依赖项,然后安装此包。例如。
conda install geojson shapely geopandas -c conda-forge
pip install keplergl_quickvis
用法
CLI
CLI安装在名为keplergl_quickvis
的名称下
export MAPBOX_API_KEY=...
keplergl_quickvis --style=outdoors data.geojson
keplergl_quickvis --style=dark data1.geojson shapefile.shp geodatabase.gdb
您可以为GeoPandas/GDAL可读取的任何矢量格式提供数据。
输入--help
以查看命令行帮助菜单
> keplergl_quickvis --help
Usage: keplergl_quickvis [OPTIONS] FILES...
Interactively view geospatial data using kepler.gl
Options:
--api_key TEXT Mapbox API Key. Must be provided on the command line or
exist in the MAPBOX_API_KEY environment variable.
--style TEXT Mapbox style. Accepted values are: streets, outdoors, light,
dark, satellite, satellite-streets, or a custom style URL.
[default: streets]
--help Show this message and exit.
Python API
最简单用法
import geopandas as gpd
from keplergl_quickvis import Visualize
# Create your geospatial objects
gdf = gpd.GeoDataFrame(...)
# Visualize one or multiple objects at a time
Visualize(gdf, api_key=MAPBOX_API_KEY)
Visualize([gdf, shapely_object, geojson_string], api_key=MAPBOX_API_KEY)
关于您地图中对象的更多详细信息
from keplergl_quickvis import Visualize
vis = Visualize(api_key=MAPBOX_API_KEY)
vis.add_data(data=data, names='name of layer')
vis.add_data(data=data2, names='name of layer')
html_path = vis.render(open_browser=True, read_only=False)
可视化
Visualize(data=None, names=None, read_only=False, api_key=None, style=None)
-
data
(可以是None
、单个数据对象或数据对象的列表)数据对象可以是来自GeoPandas库的GeoDataFrame,来自Shapely库的任何几何对象,来自GeoJSON库的任何对象,或者任何GeoJSON字符串或字典。如果DataFrame具有
Latitude
和Longitude
列,您还可以提供CSV文件作为字符串或Pandas DataFrame。有关受支持数据格式的完整文档,请参阅此处。您可以选择单个数据对象或包含多个允许数据对象的迭代器。
如果数据不是
None
,则Visualize(data)将执行所有步骤,包括将数据渲染为HTML文件并在新浏览器标签页中打开。 -
names
(可以是None
、字符串或字符串列表)这定义了Kepler.gl中每个图层的显示名称。如果
None
,则图层将命名为data_0
、data_1
等。如果data
是单个对象,则names
应为字符串;如果data
是可迭代对象,则names
应为字符串迭代器。 -
read_only
(布尔值
):如果True
,则隐藏侧面板以禁用地图自定义 -
api_key
(字符串
):Mapbox API密钥。访问Mapbox.com获取API密钥。如果未提供,则必须设置环境变量MAPBOX_API_KEY
,或者style_url
必须指向不使用Mapbox地图瓦片的style.json
文件。 -
style
(字符串
):要使用的底图样式。标准Mapbox选项包括streets
outdoors
light
dark
satellite
satellite-streets
默认为
streets
。您还可以提供自定义样式的路径。从Mapbox Studio创建的自定义样式应具有以mapbox://
开始的URL。否则,使用第三方地图瓦片的自定义样式应是一个符合Mapbox样式规范的JSON文件的URL。
Visualize.add_data()
Visualize.add_data(data, names=None):
-
data
(可以是单个数据对象或数据对象列表)数据对象可以是来自GeoPandas库的GeoDataFrame,来自Shapely库的任何几何对象,来自GeoJSON库的任何对象,或者任何GeoJSON字符串或字典。如果DataFrame具有
Latitude
和Longitude
列,您还可以提供CSV文件作为字符串或Pandas DataFrame。有关受支持数据格式的完整文档,请参阅此处。您可以选择单个数据对象或包含多个允许数据对象的迭代器。
-
names
(可以是None
、字符串或字符串列表)这定义了Kepler.gl中每个图层的显示名称。如果
None
,则图层将命名为data_0
、data_1
等。如果data
是单个对象,则names
应为字符串;如果data
是可迭代对象,则names
应为字符串迭代器。
Visualize.render()
Visualize.render(open_browser=True, read_only=False)
read_only
(布尔值
):如果True
,则隐藏侧面板以禁用地图自定义open_browser
(布尔值
):如果True
,则在默认浏览器中打开保存的HTML文件
故障排除
地图未显示的最常见原因包括
- 缺少Mapbox API密钥:为了显示托管在Mapbox上的地图,您需要从Mapbox获取API密钥并传递API密钥
- 数据投影:Kepler.gl仅适用于投影到标准WGS84(纬度、经度)坐标的数据。如果您的数据在投影坐标系中,请首先将数据重新投影到WGS84(EPSG 4326),然后重试。CLI尝试自动重新投影到EPSG 4326,但Python库不这样做。
如果您的数据似乎在地图上方“浮动”,这可能是由于您的输入数据具有Z坐标,因此kepler.gl在三维空间中显示它们。
变更日志
0.1.0 (2019-12-05)
- 首次发布于PyPI。
0.2.0 (2019-12-09)
- 自动尝试重新投影到EPSG 4326
项目详情
keplergl_quickvis-0.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 61f18745accf2bd8f7e04cd92cc93f0228d0236808fe5c9a0033afaa04c6828f |
|
MD5 | 712c6e2cad1dff68b56cd7055c654670 |
|
BLAKE2b-256 | 9720dd52510fb2453ac82b9def2dcd1b883fc033728247797d04da5d8fc92c6e |