5分钟了解清楚【osgb】格式的倾斜摄影数据metadata.xml有几种规范

news/2024/5/5 12:16:02/文章来源:https://blog.csdn.net/xiaopeixiaojun/article/details/137563328

数据格式同样都是osgb,不同软件生产的,建模是参数不一样,还是有很大区别的。尤其在应用阶段。

本文从建模软件、数据组织结构、metadata.xml(投影信息)、应用几个方面进行了经验性总结。不论您是初步开始建模,还是倾斜模型的应用方都可以有个了解,便于和业主或承建方能快速对清楚诉求。

1.大疆智图生产的osgb​

不同的数据范围、体积、分块方式略有差异,下图是一份常见的大疆智图生产的osgb的文件结构

瓦片文件夹内部结构:

几个特性:

  • 默认成果由terra_osgbs文件夹包裹
  • 瓦片文件夹Block开头
  • 瓦片文件夹内部有文件夹同名osgb文件及不同level的名称文件组成
  • 配套metadata.xml文件

2.ContextCapture(Smart3D)生产的osgb:​

不同的数据范围、体积、分块方式略有差异,下图是一份常见的ContextCapture(Smart3D)生产的osgb的文件结构

瓦片内文件结构

几个特性:

  • 默认成果由Data文件夹+metadata.xml组成
  • 瓦片文件夹Tile_开头
  • 瓦片文件夹内部有文件夹同名osgb文件及不同level的名称文件组成
  • 配套metadata.xml文件

3.metadata.xml是什么?​

metadata.xml是一个xml格式文件,主要用于定义投影,根据不同投影类型的定义,共计有6中常见的结构(随着生产软件的升级,并非绝对),这里进行罗列展示

3.1EPSG模式metadata.xml​

EPSG代表标准的投影定义 注:图新当前对4326-wgs84经纬度不支持,4490-国家2000经纬度不支持

<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4547</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>550901.32348177815,3360977.338184359,58.849999999403899</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.2EPSG带+模式metadata.xml​

EPSG代号代表投影,+号后面是高程基准的EPSG定义。

<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4544+5773</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>622346.24540907482,4315810.9692699434,1156.2578820004351</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.3ENU模式metadata.xml​

也叫东北天,相当于坐标原点给一个经纬度坐标,其他位置都是相对坐标原点的平面坐标

<?xml version="1.0" encoding="utf-8"?>
<ModelMetadata version="1"><!--Spatial Reference System--><SRS>ENU:38.318253169999998,117.86893173</SRS><!--Origin in Spatial Reference System--><SRSOrigin>0,0,106.90241103</SRSOrigin><Texture><ColorSource>Visible</ColorSource></Texture>
</ModelMetadata>

3.4LOCAl模式metadata.xml​

比较少见,也叫“任意坐标系”、“地方坐标系”模式,出现情况: 如果数据有控制点,控制点并未定义椭球参数、分带模式、中央经线、假东、假北等参数的情况下。没有和地理关系的对照。 目前只发现大疆智图生产的数据有这样的定义

<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4544+5773</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>622346.24540907482,4315810.9692699434,1156.2578820004351</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.5无SRS模式metadata.xml​

比较少见,xml内没有SRS标签 主要是CC生产,控制点未设置投影类型,如3.4大疆智图生产的LOCAL模式。这个模式比较头疼,CC未写入原点坐标,只能在CC中查看原点坐标。 拿到这样数据的用户,是没办法在其他软件中正常进行地理定位的。

<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>EPSG:4544+5773</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>622346.24540907482,4315810.9692699434,1156.2578820004351</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

3.6prj字符串模式metadata.xml​

比较少见,大疆智图生产过程中,如果选择了外部的prj文件,并且prj文件内没有epsg的定义,会直接写入prj字符串到SRS。 注意!!!:如果在标准的prj中修改了假东、假北、椭球参数等参数,大疆会使用这些参数进行建模,但是生产出的medata.xml文件是EPSG的模式。 其他软件如果按照EPSG解析就会出错。

<ModelMetadata version="1">
<!-- Spatial Reference System -->
<SRS>PROJCS["",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China_2000",SPHEROID["CGCS2000",6378137,298.257222101,AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",117],PARAMETER["scale_factor",1],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","4549"]]</SRS>
<!-- Origin in Spatial Reference System -->
<SRSOrigin>564373,4198255,0</SRSOrigin>
<Texture>
<ColorSource>Visible</ColorSource>
</Texture>
</ModelMetadata>

4.osgb是什么,为什么选择osgb?​

此处不做深入介绍,大概知道osgb的一些特性

4.1osgb是什么?​

osgb是OpenSceneGraph(做三维渲染引擎的)开源组织维护的一个二进制流类型的数据结构,由国内的王锐首次提出、定义并维护至今。

如果要做osgb文件流本身的读取、写入可参考相关规范。

普通的应用开发者,只需要关注osgb文件的组织结构即可,知道如何优化解决自身业务问题即可,支持该类型数据的三维渲染引擎都有解析方法。

osgb的核心是瓦片切分,lod(层次细节模型)构建。

LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

4.2为什么选择osgb?​

建模软件生成的数据格式为什么选择osgb?

  • osgb是开源协议,不涉及版权问题
  • osgb的lod有分页机制,调度灵活
  • osgb是二进制流文件,提交小

5.osgb倾斜摄影的一些说明​

图新地球加载osgb数据非常灵活、简单,也是第一批支持osgb格式倾斜模型的三维GIS平台。

5.1lfp文件​

用户在导入osgb到图新地球桌面端时,会根据xml的解析,自动生成一个lfp格式的索引文件。后面无需重复解析,并可灵活修改数据的位置。

lfp是图新自己定义的一个xml文件。是图新地球桌面端图层管理的基本单元。

5.2lob文件​

图新在使用osgb文件时,尤其前期做web加载解析时发现,osgb还有较大优化空间,尤其是当前数据生产厂商生成的osgb文件,在web传输、解析下可以做进一步优化扩展。 图新定义了自己的倾斜模型文件协议lob(当前并未开源,主要自己使用)

5.3合并根节点​

图新可以在现有osgb瓦片(CC和大疆智图生产的数据均支持)的基础上向上抽析,一直到只有一个根节点。可以加快数据的调度显示速度。

CC后来已经可以生成合并根节点的数据,只是对电脑性能要求更高

大疆智图生成的数据,根目录下有一个名称为Block.osgb或者Model.osgb,加载这个文件,会自动索引所有的数据。只是这个文件只是做了索引或者对每一个瓦片的首个文件做了合并,并未重新抽析。导致Model.osgb文件经常超过100M,web下基本无法应用。 遇到此情况可直接删除。

5.4【和3dTiles的关系】​

当前市面上出现了不少osgb转3dtiles的工具,主要解决cesium等开源渲染引擎加载osgb格式的倾斜模型。

3dtiles同样是一个优秀的开源数据协议。

如果你是一个开发者,发现转换后,cesium加载数据卡顿,可尝试上面介绍的【合并根节点】,先对osgb进行根节点合并再转换。可有效提升数据的组织调度效率。

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

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

相关文章

【QT+QGIS跨平台编译】175:【QGIS_App跨平台编译】—【错误处理:未定义的class APP_EXPORT】

点击查看专栏目录 文章目录 一、未定义的class APP_EXPORT二、错误处理 一、未定义的class APP_EXPORT 报错信息&#xff1a; 二、错误处理 第18行增加&#xff1a; #include "qgis_app.h"

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《新型电力系统多阶段输-储协同分布鲁棒规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Adobe After Effects 2024 v24.3 macOS 视频合成及特效制作软件 兼容 M1/M2/M3

Adobe After Effects 是一款适用于视频合成及特效制作软件,是制作动态影像设计不可或缺的辅助工具,是视频后期合成处理的专业非线性编辑软件。 macOS 12.0及以上版本可用 应用介绍 Adobe After Effects简称 AE 是一款适用于视频合成及特效制作软件,是制作动态影像设计不可或缺…

计算分数和-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第48讲。 计算分数和&#…

STM32 H7系列学习笔记

必备的API知识 第 1 步&#xff1a;系统上电复位&#xff0c;进入启动文件 startup_stm32h743xx.s&#xff0c;在这个文件里面执行复位中断服务程序。 在复位中断服务程序里面执行函数 SystemInit&#xff0c;在system_stm32h7xx.c 里面。*之后是调用编译器封装好的函数&…

Kubesphere 在 devops 部署项目的时候下载 maven 依赖卡住

Kubesphere 在 devops 部署项目的时候下载 maven 依赖卡住 我下载 下面这段 maven 依赖一直卡住&#xff1a; <build><plugins><plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>…

LeetCode 80—— 删除有序数组中的重复项 II

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 让 index指向删除重复元素后数组的新长度&#xff1b;让 st_idx 指向重复元素的起始位置&#xff0c;而 i 指向重复元素的结束位置&#xff0c;duplicate_num代表重复元素的个数&#xff1b;一段重复元素结束后&am…

Java Web-分层解耦

三层架构 当我们所有代码都写在一起时&#xff0c;代码的复用性差&#xff0c;并且难以维护。就像我们要修改一下服务端获取数据的方式&#xff0c;从文本文档获取改为到数据库中获取&#xff0c;就难以修改&#xff0c;而使用三层架构能很好的解决这个问题。 controller: 控…

PHP 中的 $2y$10,PHP 字符串加密函数 password_hash

PHP 用户密码加密函数 password_hash 自PHP5.5.0之后&#xff0c;新增加了密码散列算法函数(password_hash)&#xff0c;password_hash() 使用足够强度的单向散列算法创建密码的散列 Hash。 password_hash() 兼容 crypt()。 所以&#xff0c; crypt() 创建的密码散列也可用于 …

flask 访问404

当你的项目有自己的蓝图&#xff0c;有添加自己的前缀&#xff0c;也注册了蓝图。 在访问的路由那里也使用了自己的蓝图&#xff0c;如下图 然后你访问的地址也没问题&#xff0c;但是不管怎么样访问就是返回404&#xff0c;这个时候不要怀疑你上面的哪里配置错误&#xff0c;…

【网站项目】校园二手交易平台小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

外包干了25天,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…

【mT5多语言翻译】之五——训练:中央日志、训练可视化、PEFT微调

请参考本系列目录&#xff1a;【mT5多语言翻译】之一——实战项目总览 [1] 模型训练与验证 在上一篇实战博客中&#xff0c;我们讲解了访问数据集中每个batch数据的方法。接下来我们介绍如何训练mT5模型进行多语言翻译微调。 首先加载模型&#xff0c;并把模型设置为训练状态&a…

网络安全指南:安全访问 Facebook 的技巧

在当今数字化时代&#xff0c;网络安全问题越来越受到人们的关注。尤其是在社交媒体平台上&#xff0c;如 Facebook 这样的巨头&#xff0c;用户的个人信息和隐私更容易受到威胁。为了保护自己的在线安全&#xff0c;我们需要采取一些措施来确保在使用 Facebook 时能够安全可靠…

C语言进阶|顺序表

✈顺序表的概念及结构 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串.. 线性表在逻辑上是线性结构&#xff0c;也就说是连…

大话设计模式——23.备忘录模式(Memento Pattern)

简介 又称快照模式&#xff0c;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并且该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态 UML图 应用场景 允许用户取消不确定或者错误的操作&#xff0c;能够恢复到原先的状态游戏存档、…

深度学习架构(CNN、RNN、GAN、Transformers、编码器-解码器架构)的友好介绍。

一、说明 本博客旨在对涉及卷积神经网络 &#xff08;CNN&#xff09;、递归神经网络 &#xff08;RNN&#xff09;、生成对抗网络 &#xff08;GAN&#xff09;、转换器和编码器-解码器架构的深度学习架构进行友好介绍。让我们开始吧&#xff01;&#xff01; 二、卷积神经网络…

【动手学深度学习】15_汉诺塔问题

注&#xff1a; 本系列仅为个人学习笔记&#xff0c;学习内容为《算法小讲堂》&#xff08;视频传送门&#xff09;&#xff0c;通俗易懂适合编程入门小白&#xff0c;需要具备python语言基础&#xff0c;本人小白&#xff0c;如内容有误感谢您的批评指正 汉诺塔&#xff08;To…

c/c++ |游戏后端开发之skynet

作者眼中的skynet 有一点要说明的是&#xff0c;云风至始也没有公开说skynet专门为游戏开发&#xff0c;换句话&#xff0c;skynet 引擎也可以用于web 开发 贴贴我的笔记 skynet 核心解决什么问题 愿景&#xff1a;游戏服务器能够充分利用多核优势&#xff0c;将不同的业务放在…

【随笔】Git 高级篇 -- 本地栈式提交 rebase | cherry-pick(十七)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…