跳转到主要内容

描述

项目描述

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)

Example gif

特性

  • 一行数据可视化
  • 自动将Shapely对象转换为GeoJSON
  • 无需配置

安装

Mapbox API密钥:为了显示Mapbox托管地图,您需要提供Mapbox API密钥。前往Mapbox.com获取API密钥。

包安装:

pip install keplergl_quickvis

此包依赖于geojsonshapelygeopandas。如果您通过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具有LatitudeLongitude列,您还可以提供CSV文件作为字符串或Pandas DataFrame。有关受支持数据格式的完整文档,请参阅此处

    您可以选择单个数据对象或包含多个允许数据对象的迭代器。

    如果数据不是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字符串或字典。如果DataFrame具有LatitudeLongitude列,您还可以提供CSV文件作为字符串或Pandas DataFrame。有关受支持数据格式的完整文档,请参阅此处

    您可以选择单个数据对象或包含多个允许数据对象的迭代器。

  • 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.1.0 (2019-12-05)

  • 首次发布于PyPI。

0.2.0 (2019-12-09)

  • 自动尝试重新投影到EPSG 4326

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

keplergl_quickvis-0.2.0.tar.gz (11.8 kB 查看哈希值)

上传时间:

由以下提供支持