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

news2024/11/28 11:54:33

目录

  • 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.coloradmin.cn/o/1318596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

http状态码(一)400报错

一 400报错汇总 ① 综述 一、4xx状态码报错说明: 客户端行为导致的报错二、通用的4xxHTTP报错1) 4002) 4013) 4034) 4045) 405 --> 不允许方法,可能跨域或者nginx限制请求方法6) 4087) 4138) 419三、ngin自身定义的4xx报错495、496、497、498、4…

【JAVA-Day65】Java内部类深度解析

Java内部类深度解析 《Java内部类深度解析》摘要引言一、理解内部类1. 内部类的基本概念和语法1.1 什么是内部类?1.2 内部类的语法结构1.3 内部类的基本概念 2. 不同类型的内部类详解2.1 成员内部类2.2 静态内部类2.3 局部内部类2.4 匿名内部类 二、内部类与普通类的…

K - 近邻算法

1、算法介绍 KNN(K Near Neighbor):k个最近的邻居,即每个样本都可以用它最接近的k个邻居来代表。KNN算法属于监督学习方式的分类算法,我的理解就是计算某给点到每个点的距离作为相似度的反馈。 简单来讲,KN…

算法-----全排列

目录 前言 代码 思路 我的其他博客 前言 全排列是一种组合数学的概念,它表示将一组元素按照一定顺序进行排列的所有可能情况。在计算机编程中,通常使用递归来实现全排列。以下是使用Java语言实现全排列的详细解释: 代码 public class Pe…

YOLOv8改进:ASF-YOLO助力小目标,提取多尺度特征| 2023年12月最新成果

🚀🚀🚀本文改进: ASF-YOLO一种新的特征融合网络架构,该网络由两个主要的组件网络组成,可以为小目标分割提供互补的信息:(1)SSFF模块,它结合了来自多尺度图像的全局或高级语义信息;(2)TFE模块,它可以捕获小目标的局部精细细节等 🚀🚀🚀YOLOv8改进专栏:http://…

邮件服务下载安装详细步骤、汉化、配置

Foxmail for Mac 下载地址:Download - hMailServer - Free open source email server for Microsoft Windows 教程地址 hMailServer安装使用教程 - 诸子流 - 博客园 (cnblogs.com) 设置密码为:dzqdb123 设置好端口 添加账号密码 (9条消息) hMailServer 配置DKIM…

软件测试找了两个月了,简历投了10万多次,找不到工作怎么办?

是行情不好吗?我觉得不是,为什么别人可以找到,而你找了两个月还找不到。 只能说明一个原因,你学的东西和企业需要有些差距。 现在,软件测试已经不是过去那样只会点点点就可以找到一个合适的工作。 首先因为大环境原…

人工智能导论复习资料

题型 1、简答题(5题) 2、设计题 3、综合题 4、论述题(10分) 考点 第一章 1、人工智能的定义、发展; 2、人工智能的学派、认知观及其间的关系; 3、人工智能要素及系统分类; 4、人工智能的研究、…

基于springboot实现的健身房管理系统

一、系统架构 前端:html | js | css | jquery | bootstrap 后端:springboot | springdata-jdbc 环境:jdk1.7 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理员-首页 03. 管理员-会员卡查询 04. 管理员-会员管理…

下午好~ 我的论文【遥感】(第一期)

写在前面:下午浑浑噩噩,泡杯茶,读篇论文吧 首先说明,时间有限没有那么精力一一回复了,对不起各位了TAT 文章目录 遥感Bi-Dilation-formerCNN-GNN-FusionMulti-hierarchical cross transformerCoupled CNNs 遥感 Bi-D…

Linux驱动开发学习笔记4《设备树下的LED驱动实验》

目录 一、设备树LED驱动原理 二、硬件原理图分析 三、实验程序编写 1.修改设备树文件 2.LED 灯驱动程序编写 3.编写测试APP 四、运行测试 1. 编译驱动程序和测试APP (1) 编译驱动程序 (2) 编译测试APP ​ 2.运行测试 一、…

离线无网络环境下配置Python/Anaconda环境踩过的坑

一、前言 如果你同样需要在无网络环境下安装Python环境,这篇博客是一个很好的参考,由于内网没有网络,因此不能使用conda install/pip install等在线下载安装方式,经过个人尝试,推荐以下两种方法。 二、离线安装python…

YOLOv3-YOLOv8的一些总结

0 写在前面 这个文档主要总结YOLO系列的创新点,以YOLOv3为baseline。参考(抄)了不少博客,就自己看看吧。有些模型的trick不感兴趣就没写进来,核心的都写了。 YOLO系列的网络都由四个部分组成:Input、Backbone、Neck、Prediction…

拖拽属性 draggable

H5 新增的属性 draggable,它能够给与一切的 html 元素拖动的效果。 拖拽元素 属性为 draggable"true" 的元素,可拖动,且拖动时鼠标变为禁用图标 ps: 直接写 draggable 可能无效 ondragstart 开始拖拽时触发(按下鼠标…

单机架构到分布式架构的演变

目录 1.单机架构 2.应用数据分离架构 3.应用服务集群架构 4.读写分离 / 主从分离架构 5.引入缓存 —— 冷热分离架构 6.垂直分库 7.业务拆分 —— 微服务 8.容器化引入——容器编排架构 总结 1.单机架构 初期,我们需要利用我们精干的技术团队,快…

【算法Hot100系列】盛最多水的容器

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【LeetCode】数组精选17题——双指针、滑动窗口、前缀和

目录 快慢指针: 1. 移动零(简单) 2. 复写零(简单) 对撞指针: 1. 两数之和 II - 输入有序数组(中等) 2. 三数之和(中等) 3. 有效三角形的个数&#xff…

【员工工资册】————大一期末答辩近满分作业分享

前言 大家好吖,欢迎来到 YY 滴项目系列 ,热烈欢迎! 本章主要内容面向接触过C语言的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! PS:以下内容是部分展示&am…

全球汽车行业的数字化转型:产品和后端的渐进之旅

如何管理汽车行业的数字化转型?在我们本篇文章中了解更多有关如何设定长期目标的信息。 正在改变汽车行业的26个数字化主题 最近一篇关于汽车行业数字化转型的论文确定了26个数字技术主题(论文详情请点击阅读原文),分为三个主要集群: 1)驾驶…

RabbitMQ手动应答与持久化

1.SleepUtil线程睡眠工具类 package com.hong.utils;/*** Description: 线程睡眠工具类* Author: hong* Date: 2023-12-16 23:10* Version: 1.0**/ public class SleepUtil {public static void sleep(int second) {try {Thread.sleep(1000*second);} catch (InterruptedExcep…