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

目录

  • 0 引言
  • 1 CesiumLab
  • 2 数据处理模块
    • 2.1 输出格式:切片文件格式
    • 2.2 输入格式
      • 2.2.1 传统GIS数据
      • 2.2.2 人工模型
      • 2.2.3 BIM模型
      • 2.2.4 倾斜实景数据
      • 2.2.5 点云数据
  • 3 发布服务功能
    • 3.1 拓展:其他平台发布服务功能

请添加图片描述

  • 🙋‍♂️ 作者:海码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 服务器,管理和发布空间数据,然后通过网页或其他应用程序访问这些数据。选择哪个工具取决于您的具体需求、数据类型和技术熟悉度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/219372.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

件夹和文件比较软件VisualDiffer mac功能介绍

VisualDiffer mac是一款运行在MacOS上的文件夹和文件快速比较工具。VisualDiffer可以对不同文件夹中文件或文档做出比较或者比较两个文件的路径。还可以通过UNIS diff命令快速、标准和可靠的比较出各类不同的文件夹和文件结果,使用不同的颜色直观地显示。 VisualDif…

Element 介绍

Element 介绍 Vue 快速入门 Vue 常见组件 表格 分页组件 其他自己去看吧 链接: 其他组件

基于linux系统的Tomcat+Mysql+Jdk环境搭建(二)jdk1.8 linux 上传到MobaXterm 工具的已有session里

【JDK安装】 1.首先下载一个JDK版本 官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载1.8版本,用红框标注出来了: 也许有的同学看到没有1.8版本,你可以随便下载一个linux的…

保姆级:Windows Server 2012上安装.NET Framework 3.5

📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​ 🌟在这里,我要推荐给大家我的专栏《Windows》。🎯🎯 🚀无论你是编程小白,还是有…

MySQL笔记-第10章_创建和管理表

视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第10章_创建和管理表1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使…

在Node.js中MongoDB排序的方法

本文主要介绍在Node.js中MongoDB排序的方法。 目录 Node.js中MongoDB排序使用原生的mongodb驱动程序进行排序使用Mongoose库中的排序 Node.js中MongoDB排序 在Node.js中使用MongoDB进行排序,可以使用原生的mongodb驱动程序或者Mongoose库。 使用原生的mongodb驱动…

spring6 基于xml自动装配

目录结构 代码 UserContronller.java package bean.auto.controller;import bean.auto.service.UserService; import bean.auto.service.UserServiceImpl;public class UserContronller {private UserService userService;public void setUserService(UserService userServ…

多条件三元表达式如何写?

在某些业务需求情况下,如何书写多条件三元表达式?(例如,父组件传值给子组件,子组件根据不同的值去响应不同的颜色变化该如何实现?) 父组件: 父组件传testData的值给子组件&#xff…

C++类与对象 (上)

目录 前言: 类和对象的理解 类的引入 类的定义与使用方式 访问限定符 类的两种定义方式 成员变量的命名规则 类的作用域 类的实例化 类对象模型 计算类对象的大小 类对象的存储方式 this指针 前言: C语言是面向过程的,关注的是过…

Day10 Liunx高级系统设计11-数据库2

DQL:数据查询语言 查询全表 select * from 表名; 查询指定列 select 列名 1, 列名 2,… from 表名 ; 条件查询 select * from 表名 where 条件 ; 注意: 条件查询就是在查询时给出 WHERE 子句,在 WHERE 子句中可以使用如下运算符及关键 字&#…

Zabbix监控系统部署与管理

目录 zabbix介绍 zabbix构成 zabbix进程 环境 zabbix-server节点部署 安装zabbix服务 安装与配置数据库 修改zabbix-PHP时区 登录网页安装 ​编辑数据库Access denied故障 zabbix-agent节点部署 zabbix web管理 中文乱码问题 zabbix介绍 zabbix是⼀个基于 Web 界…

【计算机网络】—— 详解码元,传输速率的计算|网络奇缘系列|计算机网络

🌈个人主页: Aileen_0v0🔥系列专栏: 一见倾心,再见倾城 --- 计算机网络~💫个人格言:"没有罗马,那就自己创造罗马~" 目录 码元 速率和波特 思考1 思考2 思考3 带宽(Bandwidth) 📝总结 码元…

十七、如何将MapReduce程序提交到YARN运行

1、启动某个节点的某一个用户 hadoopnode1:~$ jps 13025 Jps hadoopnode1:~$ yarn --daemon start resourcemanager hadoopnode1:~$ jps 13170 ResourceManager 13253 Jps hadoopnode1:~$ yarn --daemon start nodemanager hadoopnode1:~$ jps 13170 ResourceManager 15062 Jp…

Python开源项目周排行 2023年第40周

Python 趋势周报,按周浏览往期 GitHub,Gitee 等最热门的Python开源项目,入选的项目主要参考GitHub Trending,部分参考了Gitee和其他。排名不分先后,都是当周相对热门的项目。 入选公式=70%GitHub Trending20%Gitee10%其他 关注微…

Mapreduce小试牛刀(1)

1.与hdfs一样,mapreduce基于hadoop框架,所以我们首先要启动hadoop服务器 --------------------------------------------------------------------------------------------------------------------------------- 2.修改hadoop-env.sh位置JAVA_HOME配…

ubuntu安装详细步骤

一,先下载vmware 1,第一步打开上面链接 下载网址 : https://www.vmware.com/products/workstation-pro/wo rkstation-pro-evaluation.html 许可证 JU090-6039P-08409-8J0QH-2YR7F ZF3R0-FHED2-M80TY-8QYGC-NPKYF FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6 ZC3T…

StatusBar、NavigationBar窗口显示在Activity下面之aosp14窗口类bug线索征集

背景: hi,粉丝朋友们: 从上次帮助国际学员解决了一个分屏有黑屏的bug后,相关blog和解决方法 https://blog.csdn.net/learnframework/article/details/134708393 解决方法看b站视频: https://www.bilibili.com/video/B…

scala表达式

1.8 表达式(重点) # 语句(statement):一段可执行的代码# 表达式(expression):一段可以被求值的代码,在Scala中一切都是表达式 - 表达式一般是一个语句块,可包含一条或者多条语句,多条语句使用“…

基于YOLOv8深度学习的路面标志线检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

Java EE 网络之网络初识

文章目录 1. 网络发展史1.1 独立模式1.2 网络互连1.3 局域网 LAN1.4 广域网 WAN 2. 网络通信基础2.1 IP 地址2.2 端口号2.3 认识协议2.4 五元组2.5 协议分层2.5.1 什么是协议分层2.5.2 分层的作用2.5.3 OSI七层协议2.5.4 TCP/IP五层协议2.5.5 网络设备所在分层 2.6 分装和分用 …