跳转到主要内容

描述

项目描述

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)

Example gif

功能

  • 一行数据可视化
  • 自动将Shapely对象转换为GeoJSON
  • 支持管道GeoJSON输入
  • 无需配置

安装

Mapbox API密钥:为了显示托管在Mapbox上的地图,您需要提供一个Mapbox API密钥。请访问Mapbox.com获取API密钥。

包安装:

pip install keplergl_cli

此包依赖于geojsonshapelygeopandas。如果您通过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的strdict。您也可以提供一个CSV文件作为字符串或Pandas DataFrame,如果DataFrame具有LatitudeLongitude列。关于接受的数据格式的完整文档在这里

    您可以提供一个单个数据对象,或者一个包含多个允许的数据对象的迭代器。

    如果数据不是None,那么Visualize(data)将执行所有步骤,包括将数据渲染到HTML文件并在新浏览器标签页中打开。

  • names(可以是None、字符串或字符串列表)

    这定义了Kepler.gl中每个图层显示的名称。如果None,图层将被命名为data_0data_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具有LatitudeLongitude列。关于接受的数据格式的完整文档在这里

    您可以提供一个单个数据对象,或者一个包含多个允许的数据对象的迭代器。

  • names(可以是None、字符串或字符串列表)

    这定义了Kepler.gl中每个图层显示的名称。如果None,图层将被命名为data_0data_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 (13.6 kB 查看哈希值)

上传时间

由支持