CesiumLab地理信息基础数据处理平台 各类数据类型介绍、发布数据介绍

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:CesiumforUnreal专栏
  • 💥 标题:CesiumLab地理信息基础数据处理平台 各类数据类型介绍、发布数据介绍
  • ❣️ 寄语:好好努力,发挥自己的极限!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎大家留言讨论。

0 引言

随着项目的深入,总是会和各种各样的数据打交道,例如GIS数据、人工模型数据、BIM数据、倾斜数据、点云数据等。本文以CesiumLab地理信息基础数据处理平台为切入点,介绍各个数据的基本概念。

1 CesiumLab

CesiumLab 是一个基于 WebGL 技术的 3D 地理信息系统(GIS)平台。它主要用于在浏览器中呈现和分析地理空间数据。CesiumLab 的功能包括:

  1. 三维地图渲染:CesiumLab 支持高质量的三维地图渲染,包括地形、卫星图像和城市建筑模型。

  2. 空间数据分析:该平台提供了多种工具来分析地理空间数据,例如测量距离、面积,以及进行视域分析等。

  3. 时间动态模拟:CesiumLab 支持时间轴功能,可以模拟和展示数据随时间的变化,如卫星轨迹、交通流等。

  4. 数据集成和兼容性:该平台能够整合来自不同来源的地理空间数据,并且兼容多种数据格式。

  5. 交互式体验:用户可以交互式地浏览和探索三维地图,包括旋转、缩放和飞行到不同的位置。

  6. 定制开发:CesiumLab 提供了丰富的 API,支持开发者根据自己的需求定制和扩展功能。

  7. 在线和离线使用:CesiumLab 可以在线使用,也支持离线环境下的数据浏览和分析。

CesiumLab 适用于城市规划、环境监测、地理教育、灾害管理等多种应用场景。通过提供高效的三维地理信息可视化和分析工具,CesiumLab 帮助用户更好地理解和利用地理空间数据。

在这里插入图片描述
本文使用的主要功能就是两大类:数据处理、发布服务。

2 数据处理模块

数据处理的目的是把各种来源、各种格式的输入数据,处理为三维 GIS 上能够渐进加载的切片文件格式。整个过程是一个输入到输出的过程,我们先讨论输出的切片格式。

2.1 输出格式:切片文件格式

切片文件又称瓦片文件;

数据处理的目的是把各种来源、各种格式的输入数据,处理为三维 GIS 上能够渐进加载的切片文件格式。整个过程是一个输入到输出的过程,我们先讨论输出的切片格式。
切片文件格式在地理信息系统(GIS)、在线地图服务和三维建模中非常重要。这些切片通常包含影像切片、地形切片和模型切片。每种切片类型服务于特定的目的:

  1. 影像切片(Image Tiles):

    • 目的: 影像切片是从卫星图像、航拍图像或其他地图图像中创建的。它们将大型图像分割成小块的瓦片,这样可以根据用户的视图区域和缩放级别动态加载相应的瓦片。
    • 使用场景: 在线地图服务(如 Google Maps 或 OpenStreetMap)广泛使用影像切片来提供平滑的用户体验,允许用户平缓地缩放和平移地图,而不必一次性加载整个大型图像。
  2. 地形切片(Terrain Tiles):

    • 目的: 地形切片包含地形高度信息,用于创建三维地形模型。这些切片允许地图以三维形式展示地形的起伏。
    • 使用场景: 在地理信息系统、游戏、模拟以及任何需要真实地表现地球表面的应用中都很常见。例如,飞行模拟器中的真实地形或在城市规划中模拟洪水影响。
  3. 模型切片(Model Tiles):

    • 目的: 模型切片用于表示建筑物、桥梁、纪念碑等三维对象。这些切片可以包含复杂的三维模型和相关纹理信息。
    • 使用场景: 用于三维城市建模、建筑可视化和增强现实应用。模型切片使得用户能够在三维空间中探索复杂的建筑结构。

在所有这些情况下,切片文件的主要目的是提高性能和用户体验。通过只加载用户视图区域内的数据,切片技术显著减少了所需加载的数据量,从而提高了应用的响应速度和效率。此外,切片还使得在不同的缩放级别下管理和存储大量的地理空间数据变得更加容易。


对于 Cesium 引擎 和 CesiumLab 工具,模型切片就是 3dtiles 格式

3D Tiles 是一种用于流式传输大规模异构三维地理空间数据集(如城市、建筑物、树木、地形等)的开源规范。这种格式特别适用于网页和虚拟现实应用程序。3D Tiles 规范定义了几种不同的内容格式,每种格式针对特定类型的数据和用例进行了优化:

  1. B3DM (Batched 3D Model):

    • 用途: 用于包含一个或多个三维模型的批处理数据,这些模型通常是建筑物或其他人造结构。
    • 特点: B3DM 文件包括模型几何体和样式信息,支持批处理,使得多个模型可以被有效地一起加载和渲染。
  2. I3DM (Instanced 3D Model):

    • 用途: 用于表示大量重复的三维对象,如树木路灯或其他小型结构。
    • 特点: I3DM 格式利用实例化技术,其中同一个模型的多个实例可以使用不同的位置、缩放和旋转参数进行渲染,从而提高渲染效率。
  3. PNTS (Point Cloud):

    • 用途: 用于表示点云数据,这些数据通常来自激光扫描摄影测量
    • 特点: PNTS 文件包含大量的点,每个点有其位置、颜色和可能的其他属性,用于表示复杂的自然地形或城市景观。
  4. CMPT (Composite):

    • 用途: 用于在单个瓦片中组合多种不同类型的3D Tiles。
    • 特点: CMPT 格式允许将不同格式的瓦片(如 B3DM 和 I3DM)组合到一个文件中,从而可以在一个请求中加载多种类型的数据。

3D Tiles 通过这些格式为大规模三维地理空间数据集的有效流式传输和渲染提供了强大的支持。通过适当选择和使用这些不同的瓦片格式,可以在保持高性能的同时呈现复杂的三维场景。

2.2 输入格式

说清楚了输出格式,我们再来讨论输入数据。用一个流行的词语来描述输入:多源异构,多种来源,多种差异化数据结构,所以实际输入是比较复杂的,比如有常规 GIS 的栅格矢量,有现在流行的实景倾斜模型,有传统的手工模型,也有当下火热的 BIM 或者 CIM 模型,还有一些特殊,比如点云数据地质数据、体数据、场数据、流数据等等。

CesiumLab 做为一个基础软件,目前无法涵盖所有数据类型,它定位解决各个行业或者各种三维项目都会用到的数据类型的切片化。所以我们把基础数据输入分为如下五大类:传统GIS数据、人工模型、BIM模型、倾斜实景数据、点云数据。

2.2.1 传统GIS数据

传统 GIS 数据,按照组织分为两大类:栅格矢量,栅格数据通过逐点的属性值来描述数据,比如地形高程栅格,或者遥感影像栅格,对于栅格三维中有两种方式去可视化。
在这里插入图片描述

  1. 栅格数据

    • 第一种栅格就是地形高程数据(dem),此类数据三维可视化用来显示地形起伏高低,地形数据的常见格式有 dem,tif 等。其他非常见格式的高程数据可以使用 arcgis 进行格式转换,转到 dem 或者 tif 来进行地形切片
    • 除了高程之外,其他的栅格数据一般都是处理成影像切片来可视化。
  2. 矢量数据

    • 除了栅格之外,还有一类传统 GIS 数据,通过点、线、面等几何对象来描述地理实体,这就是矢量。矢量的三维可视化问题比较复杂,根据三维的渲染方式可以分为以下几种:
    • 第一种是栅格化展示和绘制,借助二维 GIS 服务器的矢量渲染出图能力,矢量可以在服务端生成图片,三维上加载方式就类似栅格的影像切片,二维 GIS 相关的标准服务,比如WMTS,WMS 等可以直接接入到三维中。这块的产品也比较多,比如 Esri 的 arcgis server,超图的 iserver,开源的 geoserver 等。
    • 第二种是矢量化展示和绘制,比如 Cesium 里的 geojson 、czml 等绘制的图标、文字、折线、多边形等。
    • 第三种是模型化展示和绘制,比如建筑物轮廓,我们可以根据建筑高度拉成白模去可视化,比如用来描述森林位置或者城市附属物(路灯,垃圾桶)等点位的可以用实例化模型去展示
    • 这三种方式各有利弊,我三年前整理的一张图,到今天依然适用:

在这里插入图片描述
一般的矢量都可以通过 lab 自带的开源 shp 工具集,把 shp 转 geojson 格式去加载。
建筑矢量面可以通过通用模型切片处理为白模。
描述实体点的数据,比如树木点位、灯杆位置等可以用 i3dm 工具处理为实例化模型。

2.2.2 人工模型

人工模型数据(或者手工模型数据)是三维 GIS 行业发展的最早的需求来源,通过3dsmax,maya 等建模工具人工建模的数据。我们这里只罗列上面四个建模工具,其实建模工具远多于四个,手工模型格式可以多达 50 多种。这里我给大家解释几个概念。

2.2.3 BIM模型

BIM 模型和手工模型最大的区别在于几点:1,建模目标不同,手工模型的目的是为了可视化,就是为了看的见,看不见的东西能省则省。BIM 完全是按照一些工程标准去创建的比如路面可能有多个层代表了不同的物理层。手工模型的纹理贴图量可能很大,BIM 的贴图相对简单。2,手工模型一般没有属性信息,但是 BIM 模型有大量属性。

基于这些差异,虽然有些 BIM 工具可以导出 fbx 等模型的交换格式,但是还是推荐按照我们的流程来。

第一种是导出 clm 格式(clm 格式定义),clm 是我们自定义的中间格式,它内部存储了我们切片需要的所有可视化数据(几何体、材质纹理、属性信息、模型结构)等。目前我们做了 revit2020 的插件和 microstation connect editon 的插件。以前的 catia v5-2016 插件因为我们实在难以找到更新的 catia 开发资料,也没有技术支持,我们无法再更新,只能暂停,并且从 lab3 里剔除。

第二种格式 ifc 格式,ifc 号称是 bim 的标准格式,但事实上 ifc 的标准也是古老而复杂,各家 bim 工具对于 ifc 的支持都不是尽善尽美。另外我们读取和解析 ifc 也是一个比较头疼的问题,容易产生构件丢失的问题,一般最好不要优先考虑 ifc 的方式,而应该是 clm 方式。

对于 BIM 模型切片,目前也是通过我们的通用模型切片进行的。

2.2.4 倾斜实景数据

倾斜实景数据一般是来自照片进行三维重建得到的,目前能做这个格式的软件也比较多了,例如 contextcapture 以及国内的 smart3d,大疆等。这些软件产生的结果有很多格式,由于历史原因吧,目前大部分产生的结果依然是 osgb,倾斜数据的特点是总量大,自带 LOD,这类数据我们通过倾斜模型切片工具进行处理。非 osgb 格式的数据目前不支持处理

2.2.5 点云数据

点云数据的格式有很多种,比如 xyz,las,csv 等,但是 las 是相对标准的一种格式。点云数据最初是来自激光扫描设备,受限于采集方式,只能用来展示一些小型数据。随着技术发展,现在倾斜摄影也可以直接获取点云,点云的数据可以呈现大范围的。就我们实践来看,点云主要还是应用在电力领域,虽然它有行业属性,但是点云数据本身是不带行业属性的,所以我们依然是放到 Cesiumlab 来完成切片过程。目前仅支持 las,其他类型的,可以尝试用 cloudcompare 这个开源软件转化下格式。

3 发布服务功能

CesiumLab 的“发布服务”指的是将地理空间数据发布到 Web 服务器上,使其能够通过互联网被访问和使用。这项功能通常包含以下几个关键方面:

  1. 数据上传和转换:用户可以将自己的地理空间数据(如地形、影像、建筑模型等)上传到 CesiumLab 平台。这些数据可能需要经过格式转换和优化,以确保它们适合 Web 环境下的高效渲染和访问。

  2. 数据托管:上传的数据被存储在服务器上。这些服务器可以是公共的云服务,也可以是私有的服务器。

  3. 数据服务接口(API):CesiumLab 提供了一系列 API 接口,允许用户通过编程方式访问和操作这些数据。这些 API 可以被用于集成到用户自己的应用程序或网站中。

  4. 在线访问和共享:发布的数据可以通过互联网被访问,这意味着用户可以在不同的设备和地点访问这些数据,并且可以与他人共享。

  5. 安全性和权限管理:用户可以设置权限,控制谁可以访问这些数据。这是重要的,特别是对于敏感或私有的地理信息数据。

通过发布服务,CesiumLab 使得地理空间数据的分享和协作变得更加容易,同时也支持了复杂的三维地理信息系统(GIS)功能的网络应用开发。这对于需要在线协作、数据共享和远程访问 GIS 功能的用户尤其有用。

3.1 拓展:其他平台发布服务功能

可以使用其他开源工具来发布地理空间数据。这些工具通常用于创建和管理空间数据服务器,使得地理数据可以通过互联网被访问和利用。以下是一些流行的开源工具:

  1. GeoServer:GeoServer 是一个非常流行的开源服务器,用于共享和编辑地理空间数据。它支持多种标准的地理数据格式和服务接口,如 WMS(Web Map Service)、WFS(Web Feature Service)和 WCS(Web Coverage Service)。

  2. PostGIS/PostgreSQL:PostGIS 是 PostgreSQL 数据库的一个扩展,用于存储地理空间数据。PostGIS 与 GeoServer 配合使用,可以非常有效地管理和发布大量的空间数据。

  3. MapServer:MapServer 是一个开源的平台,用于发布空间数据和创建交互式地图应用程序。它支持多种数据格式和标准的服务协议。

  4. QGIS Server:QGIS Server 是基于 QGIS(一个桌面地理信息系统)的服务器版。它允许用户发布通过 QGIS 创建的地图和数据。

  5. OpenLayers/Leaflet:虽然 OpenLayers 和 Leaflet 本身不是用于数据发布的服务器软件,但它们是两个非常流行的开源 JavaScript 库,用于在网页上展示地理信息。它们可以与上述服务器软件(如 GeoServer)结合使用,以在网页上创建交互式地图。

使用这些工具,您可以设置自己的 GIS 服务器,管理和发布空间数据,然后通过网页或其他应用程序访问这些数据。选择哪个工具取决于您的具体需求、数据类型和技术熟悉度。

相关推荐

  1. golang中基础数据类型介绍

    2023-12-19 20:12:03       39 阅读
  2. Qt 数据类型介绍

    2023-12-19 20:12:03       22 阅读
  3. PLC数据类型介绍

    2023-12-19 20:12:03       21 阅读
  4. Doris:数组数据类型array使用介绍

    2023-12-19 20:12:03       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-19 20:12:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-19 20:12:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-19 20:12:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-19 20:12:03       20 阅读

热门阅读

  1. 18.XML

    18.XML

    2023-12-19 20:12:03      37 阅读
  2. SQL使用WITH ROLLUP子句计算每个分组的合计值

    2023-12-19 20:12:03       37 阅读
  3. 链表的相关代码-顺序表

    2023-12-19 20:12:03       41 阅读
  4. C 库函数 - asctime()

    2023-12-19 20:12:03       41 阅读
  5. 【神经网络】imshow展示图片报错

    2023-12-19 20:12:03       40 阅读
  6. Vim中取消高亮显示的文本

    2023-12-19 20:12:03       37 阅读