云栖大会全空间数据库Session

简介: Ganos三维引擎针对三维数据管理提出创新解决方案,旨在解决传统技术栈中的数据分散与冗余问题。该引擎提供表面网格模型、体网格模型及实景模型三种存储结构,支持高效三维空间计算与大规模模型渲染。其ST_SnapToPolygon和ST_Loft函数可实现地形与路网无缝贴合,显著提升三维建模效率与精度。通过SQL操作,Ganos可在数秒内完成复杂三维模型生成与处理,适用于交通仿真等多种应用场景,推动数字孪生技术的“视算一体”发展。

关于Ganos三维引擎
三维数据管理是当前时空领域的热点,以数字孪生为代表的一系列三维空间系统应运而生,推动各类管理业务逐步走向精细。这种背景下,三维数据采集类别越发多样,采集精度越发提升,业务背后的三维空间计算效率与大规模三维模型渲染效率也逐步成为空间信息系统的痛点。
为了解决传统空间技术栈中“文件管、瓦片看、客户端算”所带来的数据资产分散、数据冗余及技术架构复杂问题,Ganos提出了基于大规模元胞网格构建视算一体能力的方案。存储方面,Ganos三维引擎提供了表面网格模型(SFMesh)、体网格模型(VOMesh)与实景模型(Scene)三种存储结构,其中表面网格模型用于存储带有语义的类BIM的精细化三维模型,体网格模型用于存储地质体等匀质/非匀质“场”类三维模型,3D实景模型用于存储倾斜摄影、精白模等用于渲染的三维模型;计算方面,Ganos提供了多种三维空间计算函数,并且将PolarDB弹性并行查询能力(ePQ)拓展到三维计算中,在多个数字孪生应用中实测全空间复杂分析计算效率相较于传统方案有50倍以上的提升;渲染方面,作为数据库产品,Ganos并不直接提供渲染引擎,但依托矢量快显的构建经验,Ganos将快显能力延伸至了三维数据,除了库内提供模型简化、纹理材质处理外,还提供了三维存储结构统一动态构建三维瓦片的方式直接对接渲染引擎提供可视化服务。
关于三种三维存储结构的差异,可以参考系列文章的第一篇:《Ganos三维引擎系列(一):倾斜摄影数据管理与可视化功能解析》
基于Ganos三维引擎的路网地形处理能力
业务需求
在交通领域需要构建车流相关的仿真应用,往往需要先采集高精路网数据,之后形成高速公路的孪生底板做为支撑。但我们会发现,高精路网与可以公开获取到的地形数据(DEM)往往有较大的精度差距,这样会造成路网悬浮在地形上空或者穿插在地形下方,造成使用不便。一般情况下,需要将这两份数据导入三维建模软件,之后会手动编辑三角网的方式,让它们可以贴合,这个过程往往需要大量的时间与人力成本。
随着数字孪生在各领域的应用纵深,如何快速的融合各类数据达到业务要求成为普遍研究的问题,高速孪生中地形与路网快速贴合能力的建设正是其中之一。
功能介绍
地形与路网贴合能力主要依赖ST_SnapToPolygon和ST_Loft两个函数实现,其中:
• ST_SnapToPolygon函数主要用于Polygon3D对象与SFMesh对象的贴合
• ST_Loft函数主要用于通过三维截面与方向生成隧道
1、ST_SnapToPolygon
对于给定的地形(SFMesh)和道路面(Polygon3D),处理道路两侧的地形顶点,使其平滑衔接到道路表面。
语法
sfmesh ST_SnapToPolygon(sfmesh sfmesh, geometry geom, f8 zlowd, f8 zupd, f8 buffer, i4 times);
参数
参数名称
描述
sfmesh
地形mesh对象
geom
道路面对象(Polygon3D)
zlowd
道路面沿 Z 方向处理时,路面下方的最大距离,取值范围(0, +\infin)
地形部分到路面距离大于 zlowd 的不处理,对应现实中的桥梁地形
zupd
道路面沿 Z 方向处理时,路面上方的最大距离,取值范围(0, +\infin)
地形部分到路面距离大于 zupd 的不处理,对应现实中的隧道地形
buffer
平滑贴合处理的缓冲区距离,取值范围(0, +\infin)
buffer 取值越大,对路侧地形的处理影响范围越大,建议 buffer 值小于道路宽度的 5 倍,生成效果比较理想
times
平滑处理的次数,次数越多效果越好。
默认值:20,建议取值范围在[5, 20]之间。
示意图
示例
SELECT BOX3D(ST_SnapToPolygon(
ST_3DIntersection(ST_3DMakeSphere(1.0, 4), 'BOX3D(-1 -1 0, 1 1 1)'::box3d),
'POLYGON((-5 -0.1 0.5, 5 -0.1 0.5, 5 0.1 0.5, -5 0.1 0.5, -5 -0.1 0.5))',

0.5, 0.5, 0.5, 10));

BOX3D(-1 -1 0,1 1 0.782785594463348)
2、ST_Loft
将截面沿三维路径进行放样/挤出,生成闭合的三维体。
语法
• meshgeom ST_Loft(geometry geom2d, geometry line3d, int4 chamfer);
参数
参数名称
描述
geom2d
geometry 对象,仅支持 Polygon2D 类型
line3d
geometry 对象,支持 LineString3D 类型
chamfer
倒角平滑的分段数,取值范围(2, 10)
描述
将二维Polygon沿着三维路径进行放样/挤出, 三维路径的拐角处采用圆弧贝塞尔曲线进行倒角平滑。
chamfer 数值越大越平滑,产生的 meshgeom 顶点也越多。
示意
将一个带洞的二维多边形沿三维路径放样,chamfer 参数为 4 。
示例
SELECT ST_AsText(ST_Loft(
'POLYGON((0 0, 1 0, 1 1, 0 0), (0.5 0.5, 0.6 0.5, 0.6 0.6, 0.5 0.5))',

'LINESTRING(0 0 0, 10 0 0, 10 10 0, 10 10 10)', 5));

MESHGEOM(PATCH(POLYGON Z ((0 -0.333333333333333 0.666666666666667,0 0.666666666666667 -0.333333333333333,0 -0.333333333333333 -0.333333333333333 ...
Ganos 三维数据管理分析的技术优势
相比于传统的技术方案,Ganos提供的方案特点在于:
• 使用SQL即可实现三维数据的处理工作,经实测,数秒即可完成百公里路网与地形的贴合
• 提供了隧道等复杂三维模型的生成能力,可以帮助客户增加场景的丰富程度
• 生成的模型存储在数据库中,可以支撑后续仿真场景中的更多空间查询与计算
功能使用案例

  1. 创建扩展
    create extension ganos_geometry cascade;
    create extension ganos_sfmesh cascade;
    create extension ganos_importer cascade ;
  2. 数据入库
    使用 MeshLab 生成一份随机地形,效果如下
    效果图:

编写SQL入库:
• 编写 import.sql 文件,将OBJOBJOBJ替换成您自己的地形文件内容
-- !!需要自己将 $OBJ$ 替换成 地形文件的文本内容!!
SELECT ST_ImportOBJ('test_obj'::text, '$OBJ$'::bytea, '1');
• 执行 import.sql 文件,并验证是否成功
\i import.sql
-------------- (t表示导入成功,其他表示失败)
t
SELECT ST_3DArea(obj_data) from test_obj;
-------------------- (能够正确计算出面积,表示数据入库成功)
1097.9653735595505
(1 row)

  1. 查看库内数据
    • 方式1:文本方式查看
    select id, st_astext(obj_data::meshgeom) from test_obj;

1 | MESHGEOM(PATCH(INDEXSURFACE Z (VERTEX(0 0 3.519342,1 0 3.48787,2 0 3.488642,3 0 3.541854,4 0 3.65655
3,5 0 3.819599,6 0 3.998203,7 0 4.186495,8 0 4.405378,9 0 4.687479,10 0 5.066125,11 0 5.567331,12 0 5.4357
6,13 0 5.192973,14 0 5.011576,15 0 4.914459,16 0 4 ......
• 方式2:导出成 gltf 查看
-- 保存查询结果为 t.gltf 文本文件
select st_asgltf(obj_data::meshgeom) from test_obj;
• 方式3:使用 PolarAdmin 进行查看 (可以通过访问Ganos官网,扫描页面下方的二维码加群获取技术支持)

  1. 路网地形贴合
    //代码效果参考:http://www.mwgw.cn
    //代码效果参考:https://www.h3cw.com
    //代码效果参考:https://www.weibow.com
    //代码效果参考:https://www.vipwb.com
    //代码效果参考:https://www.uagu.cn
    //代码效果参考:https://www.257342.com
    • 道路数据:POLYGON((10 0 5, 12 0 5, 12 30 5, 10 30 5, 10 0 5))
    • 地形和道路的位置关系如下图所示,可以看出道路部分在地面以下,部分悬空在地面上方
    • 将地形贴合到上述的道路面,生成一条id 为2 的新纪录
    INSERT INTO test_obj
    SELECT 2, '2', ST_SnapToPolygon(obj_data, 'POLYGON((10 0 5, 12 0 5, 12 30 5, 10 30 5, 10 0 5))', 10, 10, 5) from test_obj where obj_id = '1';
    • 导出处理结果为gltf,和道路叠加查看,可以看出地形已经平滑的贴合到路面上了
    select st_asgltf(obj_data::meshgeom) from test_obj where obj_id = '2';

  2. 案例展示
    以下为Ganos贴合的川渝高速某路段数据,业务为:30m分辨率地形贴合双向高速路网
    数据量:
    • 单向道路长度 8012 m
    • 地形顶点数量:60584 个
    • 地形贴合处理耗时:2.15 秒
    处理流程:
    • 使用 ST_SnapToPolygon 将地形贴合到每一条道路的表面,导出gltf加载到 Blender;
    • 在超出ST_SnapToPolygon贴合阈值且地形高于路面的部分,使用 ST_Loft 生成隧道涵洞,导出gltf加载到 Blender;
    • 对于地形低于路面且超出ST_SnapToPolygon贴合阈值部分,可以使用Blender自带的的建模工具生成圆柱型桥墩,也可以使用Ganos的ST_Buffer函数构造一个圆形底面,再使用ST_Loft 挤压出桥墩,在Blender里修正即可;
    • 使用 Blender 修剪出隧道口,检查并修正路侧地形;
    总结
    Ganos作为全球首个库内原生提供多种三维数据存储分析能力的空间数据库,已经将狭义的空间数据拓展至“空天地、室内外、地上下、动静态”等全空间范畴,从数据库系统最底层为物理世界数字化提供时空处理框架。本文介绍的地形与路网贴合能力,证明了Ganos有能力支撑三维空间计算在各领域中的专业应用,未来Ganos还将提供更多高效的库内三维空间分析能力,推动各行业数字孪生应用真正走向“视算一体”

相关文章
|
10天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
6天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2506 14
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
6天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1520 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
8天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
532 13
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18837 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17524 13
Apache Paimon V0.9最新进展
|
8天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
459 48
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
356 4
叮咚!您有一份六大必做安全操作清单,请查收
|
2天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。