描述
项目描述
keplergl_cli
这是一个用于在Kepler.gl中快速查看地理空间数据的命令行界面(CLI)和Python API。
概述
Uber的开源kepler.gl是一个优秀的基于浏览器的平台,用于交互式可视化地理空间数据。Python包keplergl
的包含的文档几乎全部针对Jupyter内的使用,而将其用于非Jupyter Python环境则需要一些工作。
此包是一个简单的包装器,可快速将数据导入kepler.gl。从命令行来看,使用起来非常简单
export MAPBOX_API_KEY=...
keplergl data1.geojson data2.shp data3.gdb
cat data.geojson | keplergl
来自Python
from keplergl_cli import Visualize
Visualize(data)
功能
- 一行数据可视化
- 自动将Shapely对象转换为GeoJSON
- 支持管道GeoJSON输入
- 无需配置
安装
Mapbox API密钥:为了显示托管在Mapbox上的地图,您需要提供一个Mapbox API密钥。请访问Mapbox.com获取API密钥。
包安装:
pip install keplergl_cli
此包依赖于geojson
,shapely
和geopandas
。如果您通过pip安装此包时遇到错误,可能先通过Conda安装依赖项,然后再安装此包会更简单。例如。
conda install geojson shapely geopandas -c conda-forge
pip install keplergl_cli
用法
CLI
CLI安装在名为kepler
的名称下
export MAPBOX_API_KEY=...
kepler --style=outdoors data.geojson
kepler --style=dark data1.geojson shapefile.shp geodatabase.gdb -l layer1 -l layer2
cat data.geojson | kepler
您可以将export MAPBOX_API_KEY
添加到您的.bashrc
或.zshrc
中,以避免每次都运行该步骤。
您可以提供任何GeoPandas/GDAL可读取的矢量格式的文件路径。或者,您也可以提供GeoJSON或以换行符分隔的GeoJSON,输入到stdin。
使用--help
查看CLI的帮助菜单
> kepler --help
Usage: kepler [OPTIONS] FILES...
Interactively view geospatial data using kepler.gl
Options:
-l, --layer TEXT Layer names. If not provided, will display all layers
--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_cli 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_cli 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的
str
或dict
。您也可以提供一个CSV文件作为字符串或Pandas DataFrame,如果DataFrame具有Latitude
和Longitude
列。关于接受的数据格式的完整文档在这里。您可以提供一个单个数据对象,或者一个包含多个允许的数据对象的迭代器。
如果数据不是
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字符串或字典。您也可以提供一个CSV文件作为字符串或Pandas DataFrame,如果DataFrame具有
Latitude
和Longitude
列。关于接受的数据格式的完整文档在这里。您可以提供一个单个数据对象,或者一个包含多个允许的数据对象的迭代器。
-
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.3.3 (2022-06-27)
- 撤销使用
__geo_interface__
0.3.2 (2022-06-27)
- 尽可能使用
__geo_interface__
- 尊重
open_browser=False
- 修复地图中心定位问题
0.3.1 (2020-02-26)
- 修复 stdin 问题
0.3.0 (2020-02-26)
- 支持 stdin 上的 GeoJSON
- 将
keplergl_quickvis
重命名为keplergl_cli
- 将 CLI 入口点重命名为
kepler
- CLI 选项,用于从文件显示哪些图层
0.2.0 (2019-12-09)
- 自动尝试重新投影到 EPSG 4326
0.1.0 (2019-12-05)
- 首次发布于 PyPI。
项目详情
keplergl_cli-0.3.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6e79cf741b8f73961a127659b230a1977bd62c2e5e322033d41bda2e6ad7bbd3 |
|
MD5 | b5d04ce0db62e59e34d0d71170ea79d2 |
|
BLAKE2b-256 | d1ba7a18650151d4caee336cc6cdb1a7b002295d639469e318bfe21b7c67b0c8 |