跳转到主要内容

BabylonJS小部件

项目描述

TileDB-PyBabylonJS

codecov Build Status

TileDB-PyBabylonJS库是一个地理空间数据可视化Python库,可以交互式地将TileDB数组与Babylon.js在Jupyter笔记本小部件中可视化。

该软件包正在开发中,目前包含点云可视化功能,可选择从 TileDB 数组中流式传输所有数据或定义一个边界框以加载数组的一部分

安装

该项目可在 PyPI 上获取,并可以使用 pip 进行安装

pip install pybabylonjs

如果您正在使用 Jupyter Notebook 5.2 或更早版本,您可能还需要启用 nbextension

jupyter nbextension enable --py [--sys-prefix|--user|--system] pybabylonjs

开发安装

创建并激活一个开发环境

conda create -n pybabylonjs-dev -c conda-forge nodejs yarn python tree scipy 'pyarrow>2' numpy pandas tiledb-py jupyter-packaging jupyterlab

conda activate pybabylonjs-dev

pip install opencv-python

分叉或克隆仓库并转到主目录。安装 TileDB-PyBabylonJS Python 包,该包还将构建 TypeScript 包

pip install -e ".[test, examples]"

在开发扩展时,您需要手动使用笔记本/实验室前端启用扩展。对于 jupyter lab,这是通过以下命令完成的

jupyter labextension install @jupyter-widgets/jupyterlab-manager
yarn run build
jupyter labextension develop . --overwrite

对于经典笔记本,您需要运行

jupyter nbextension install --sys-prefix --symlink --overwrite --py pybabylonjs
jupyter nbextension enable --sys-prefix --py pybabylonjs

请注意,Windows 上不支持 --symlink 标志,因此每次您重建扩展时都必须运行 install 命令。对于某些安装,您可能还需要使用另一个标志而不是 --sys-prefix

如何查看您的更改

TypeScript

可视化 TypeScript 代码可在 TileDB-Viz 仓库中找到。在 TileDB-Viz 中进行更改后,使用以下命令构建包

yarn build

然后,要查看 TileDB-PyBabylonJS 中的这些更改,请运行

yarn add file:/path/to/TileDB-Viz/packages/core

yarn build

然后重启笔记本内核。

Python

当您对 Python 代码进行更改时,请重新构建包并重启笔记本内核以查看您的更改。

使用方法

以下可视化示例的 Jupyter 笔记本提供在 示例文件夹

注册 TileDB 账户 并通过指定数据切片的边界框来显示来自 TileDB 云稀疏数组的点云可视化

from pybabylonjs import Show as show

bbox = {
    'X': [636800, 637200],
    'Y': [852800, 853100],
    'Z': [406.14, 615.26]
}

lidar_array = "autzen-classified"

show.point_cloud(source="cloud",
                 uri = "tiledb://TileDB-Inc/autzen_classified_tiledb",
                 token=token,
                 bbox = bbox,
                 point_size = 3,
                 rgb_max = 65535,
                 camera_up = 25,
                 camera_location = 2,
                 camera_zoom = [2,2,2],
                 point_type = 'fixed_screen_size',
                 width=1000,
                 height=600)

或从一组数组中流式传输所有数据

show.point_cloud(streaming=True,
                 uri="tiledb://TileDB-Inc/bristol",
                 token=token, 
                 point_size = 4,
                 wheel_precision = 0.2,
                 color_scheme = 'dark',
                 width = 1200,
                 height = 800,             
                 rgb_max = 255,
                 point_budget = 3500000,
                 camera_location = 8,
                 camera_zoom = [1, 1, 2],
                 camera_up = 50, 
                 move_speed = 8,
                 point_type = 'fixed_world_size')

参数

可以为点云可视化设置以下参数

  • camera_location 是相对于点云中心的 arcRotateCamera 的位置。1: 南,2: 东南,3: 东,4: 东北,5: 北,6: 北西,7: 西,8: 西南和 9: 从点云中心上方向下看
  • camera_up 是 freeCamera 初始位置的高度
  • camera_zoom 使用 [1,1,1] 为默认位置,将相机位置相对于点云中心进行缩放,[2,2,2] 是 X、Y 和 Z 方向上距离中心两倍远的距离
  • color_scheme 是初始背景颜色:dark(默认),lightblue
  • data 是当 source = dict 时包含点云数据的字典。此字典需要包含位置 XYZ 以及每个点的 RGB 颜色 RedGreenBlue
  • height 是显示窗口的高度(以像素为单位)
  • point_size 是点的大小
  • point_type 是交互式点大小类型
    • fixed_screen_size(默认):每个点在像素大小上是恒定的,无论其与相机的距离如何
    • fixed_world_space:每个点在世界空间中具有恒定的大小。此值应根据世界空间中点之间的间距相应设置
    • adaptive_world_space:与下面的示例中的 fixed_world_space 相同。但在流式传输点云数据时,点的尺寸取决于每个点局部加载的 LOD。相同 LOD 的所有块中的点密度应相同,并且每个 LOD 的点密度应加倍。
  • source 是数据源(默认为 cloud,也可以是 localdict)。
  • use_sps=True 使用 固态粒子系统 以 3D 块的形式显示点。
  • use_shader=True 添加 EDL 着色。
  • edl_strength 是着色的强度。
  • wheel_precision 控制鼠标滚轮缩放的快慢。
  • width 是显示窗口的宽度(以像素为单位)。

点云导航

有两种不同的相机可用于导航点云:arcRotateCamera 和 freeCamera。使用 c 键在它们之间切换。初始相机始终是 arcRotateCamera。

arcRotateCamera

  • 使用鼠标滚轮放大和缩小。
  • 按住鼠标左键拖动以旋转。
  • 参数 wheel_precision 控制使用鼠标滚轮缩放的快慢。
  • 可以使用 camera_locationcamera_zoom 改变相机位置和点云中心的距离。
  • 使用 vcamera_locations 之间旋转。
  • 使用 b 在深色和浅色背景之间切换。

freeCamera

  • 向前移动:按 Wup
  • 向后移动:按 Sdown
  • 向上移动:按 E
  • 向下移动:按 Q
  • 向左移动:按 Aleft
  • 向右移动:按 Dright
  • 按住鼠标左键拖动以旋转。
  • 初始相机位置是点云的中心,可以通过参数 camera_up 改变位置的高度。
  • 可以通过参数 move_speed 改变相机速度。
  • 使用 b 在深色和浅色背景之间切换。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源分发

此版本没有可用的源分发文件。请参阅有关 生成分发存档 的教程。

构建分发

pybabylonjs-1.6.0-py2.py3-none-any.whl (10.3 MB 查看哈希)

上传时间 Python 2 Python 3

由...