Yukon 中点云数据的存储及可视化方法

作者:黄宁

本文介绍了点云数据在Yukon中的存储及可视化方法,基于LOPoCS (用Python编写的点云数据服务器)工具实现点云数据入库,切片及可视化。

说明

本次使用操作系统为 Centos7.6 版本

总体结构图

总体结构图

环境准备

安装软件源和软件

  1. 安装软件源

    sudo yum install -y epel-release
    sudo yum install -y centos-release-scl-rh
    sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  2. 安装 gcc g++

    sudo yum install -y devtoolset-10-gcc-c++ devtoolset-10-gcc
    
  3. 安装 readline-devel

    sudo yum install -y readline-devel
    
  4. 安装 zlib-devel

    sudo yum install -y zlib-devel
    
  5. 安装 libxml2-devel

    sudo yum install -y libxml2-devel
    
  6. 安装 cmake3

     yum install -y cmake3
    
  7. 安装 gdal31-devel

    yum install -y gdal31-devel
    
  8. 安装 geos310-devel

    yum install geos310-devel
    
  9. 安装 geotiff

    yum install -y libgeotiff17-devel
    
  10. 安装 libcurl-devel

    yum install -y libcurl-devel
    
  11. 安装 openssl11-devel openssl11-libs

    yum install -y openssl11-devel  openssl11-libs
    

    同时删除 /usr/lib64/libssl.so 文件,重新创建一个软连接指向 libssl.so.1.1.1k

  12. 安装编译可能会用到的其他软件

    sudo yum groupinstall "Development Tools" 
    

PostgreSQL 13.6 (以下简称 PG)安装

我们从 [官网](PostgreSQL: File Browser)下载 PG 13.6 的源码包,下载链接.

  1. 解压文件

    tar -xf postgresql-13.6.tar.gz
    
  2. 进入目录并配置

    cd postgresql-13.6 && ./configure --prefix=/opt/pg13 
    
  3. 编译

    make -j
    
  4. 安装

    make install
    
  5. 添加 postgres 用户

    useradd postgres
    
  6. /opt/pg13 目录所有权改为 postgres

    chown -R postgres:postgres /opt/pg13
    
  7. 切换到 postgres 用户

    su postgres
    
  8. 创建数据库存储目录

    mkdir -p /opt/pg13/data
    
  9. 修改 /home/postgres/.bashrc 文件,添加如下内容

    export PATH=$PATH:/opt/pg13/bin
    export PGDATA=/opt/pg13/data
    

    使其生效

    source /home/postgres/.bashrc
    
  10. 数据库初始化

    initdb
    
  11. 启动数据库并连接

     pg_ctl start
    psql
    

到此数据库已经全部安装完成

Yukon 1.0 安装

  1. 下载安装包

    wget https://gitee.com/isupermap/yukon4pgsql/attach_files/1108783/download/Yukon-1.0-postgres13-CentOS_x64.tar.gz
    
  2. 安装 boost

    yum install boost
    
  3. 安装 Yukon

    #在 root 用户下 解压安装包,导出 pg_config 和 PGDATA 环境变量,这两个环境变量,我们在 /home/postgres/.bashrc 定义,直接导出即可
    sh install -i 
    

pgPointCloud 安装

  1. 下载源码

    git clone https://github.com/pgpointcloud/pointcloud.git
    
  2. 进入 pointcloud 目录,生成 configure

    cd pointcloud && ./autogen.sh
    
  3. configure

    ./configure
    
  4. 编译安装

    make && make install
    
  5. 连接到数据库,安装 pointcloud 扩展

    create extension pointcloud;
    

PDAL 安装

  1. 下载源码

    wget https://github.com/PDAL/PDAL/releases/download/2.4.1/PDAL-2.4.1-src.tar.gz
    
  2. 解压文件

    tar -xf PDAL-2.4.1-src.tar.gz
    
  3. 导出环境变量

    export CMAKE_INCLUDE_PATH=/opt/pg13/include:/usr/gdal31/include:/usr/libgeotiff17/include:/usr/include/openssl11/
    export CMAKE_LIBRARY_PATH=/opt/pg13/lib:/usr/gdal31/lib:/usr/libgeotiff17/lib
    
  4. 使用 g++ 10 编译器

    source /opt/rh/devtoolset-10/enable
    
  5. 进入 pdal 目录,创建编译目录

    cd PDAL-2.4.1-src && mkdir build
    
  6. 进入 build 目录,执行 cmake3 命令

    cmake3 .. -DBUILD_PLUGIN_PGPOINTCLOUD=ON
    
  7. 开始编译,安装

    make  && make install
    

LOPOCS 安装

下载源码
git clone https://github.com/Oslandia/lopocs.git
安装
  1. 安装 virtualenv

     pip3 install virtualenv
    
  2. 安装 python3-devel

    yum install python-devel
    
  3. 安装 pgmorton

    # 下载 pgmorton
    git clone https://github.com/Oslandia/pgmorton.git
    # 进入 pgmorton 目录
    # 创建 build 目录
    mkdir build
    # 进入 build 目录,然后 cmake3 编译
    cd build
    cmake3 ..
    make
    make install
    
    # 连接数据库创建扩展 
    psql 
    create extension morton;
    
  4. 进入 lopocs 目录安装 python 依赖包

    # 激活虚拟环境
    virtualenv -p /usr/bin/python3 venv
    source venv/bin/activate
    # 安装 numpy
    pip3 install 'numpy==1.14.3'
    # 安装其他 
    pip install -e .
    pip3 install --upgrade Werkzeug==0.16.0
    
    
  5. 复制 conf/lopocs.sample.yml 文件为 conf/lopocs.yml 修改其中的参数,其中数据库的名字为 lopocs 后边我们会创建这个数据库

    flask:
        DEBUG: False
        PG_HOST: 127.0.0.1
        PG_NAME: lopocs
        PG_PORT: 5432
        PG_USER: supermap
        PG_PASSWORD: supermap
        CACHE_DIR: /home/postgres/cache
    
  6. 创建数据库及其扩展

    createdb lopocs
    psql -d lopocs -c 'create extension postgis'
    psql -d lopocs -c 'create extension pointcloud'
    psql -d lopocs -c 'create extension pointcloud_postgis'
    psql -d lopocs -c 'create extension morton'
    
  7. 检查是否安装成功

    # lopocs check 查看输出
    lopocs check
    
    # 输出如下
    Pdal ... 2.4.1
    Pdal plugin pgpointcloud ... ok
    PostgreSQL ... 13.6
    PostGIS extension ... 3.1.2dev
    PgPointcloud extension ... 1.2.2
    PgPointcloud-PostGIS extension ... 1.2.2
    

显示

  1. 修改 lopocs 代码,显示 demo 案例

    # 将 cli.py 中的 266-278 替换如下
    
     offset_x = summary['bounds']['minx'] + (summary['bounds']['maxx'] - summary['bounds']['minx']) / 2
     offset_y = summary['bounds']['miny'] + (summary['bounds']['maxy'] - summary['bounds']['miny']) / 2
     offset_z = summary['bounds']['minz'] + (summary['bounds']['maxz'] - summary['bounds']['minz']) / 2
    
    # 将 cli.py 中的 289-290 替换如下
     xmin, ymin, zmin = transform(pini, pout, summary['bounds']['minx'], summary['bounds']['miny'], summary['bounds']['minz'])
     xmax, ymax, zmax = transform(pini, pout, summary['bounds']['maxx'], summary['bounds']['maxy'], summary['bounds']['maxz'])
     
    # 将 database.py 中 193 行修改如下
    
    cls.pool = ThreadedConnectionPool(1, 50, query_con)
    
    
  2. 导入 demo 数据

    # 在 lopocs 创建 demos 目录
    mkdir demos
    # 导入 demo 数据,导入时间较长,需要等待一会
    lopocs demo --server-url "http:192.168.90.127:5000" --work-dir demos/ --sample lyon --cesium
    
    #启动服务
    lopocs serve
    
    # 导入完成后,可以在 demos 目录下有一个 cesium-lyon.html 文件,在浏览器中打开就可以看到点云数据
    

数据库中的点云数据:
点云数据

浏览器请求 3D Tiles 数据数据流

浏览器截图如下:
浏览器显示

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Marvell Yukon 88E8057 PCI-E网卡驱动是一种用于支持Marvell Yukon 88E8057型号网卡的驱动程序。驱动程序通过与操作系统交互,控制网卡的功能和性能,以便在计算机系统中实现网络连接。 Marvell Yukon 88E8057是一款高性能的PCI-E网卡,具有千兆以太网功能。为了使网卡能够在计算机中正常工作,我们需要安装适合Marvell Yukon 88E8057网卡的驱动程序。 驱动程序可以与操作系统(如Windows、Linux等)兼容,并且为网卡提供必要的指令和资源来实现网络连接。安装正确的驱动程序可以确保网卡的稳定性和性能,以及与其他设备和网络的兼容性。 要安装Marvell Yukon 88E8057 PCI-E网卡驱动,首先需要寻找适合该型号网卡的驱动程序。可以通过访问Marvell的官方网站或者在驱动程序下载网站上搜索来获取该驱动程序。然后,下载并安装该驱动程序到计算机系统中。 安装驱动程序的具体步骤可能会根据操作系统和驱动程序版本而有所不同。通常情况下,安装驱动程序涉及到运行安装程序,并按照提示进行操作。安装程序会将驱动程序文件复制到适当的位置,并将其与操作系统进行关联。 安装完成后,计算机系统应该能够识别和使用Marvell Yukon 88E8057 PCI-E网卡。通过网络管理界面或操作系统的网络设置,可以配置网卡的相关参数,例如IP地址、网关和DNS服务器等。然后,可以通过该网卡实现网络连接和数据传输。 总之,Marvell Yukon 88E8057 PCI-E网卡驱动是一种用于支持该型号网卡的软件程序,安装正确的驱动程序可以使网卡与操作系统和网络正常通信,实现网络连接和数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值