关于Ganos
Ganos是阿里云数据库产品事业部联合阿里云飞天数据库与存储实验室联合共同研发的新一代云原生位置智能引擎,它将时空数据处理能力融入了云原生关系型数据库PolarDB、云原生多模数据库Lindorm、云原生数据仓库AnalyticDB和云数据库RDS PG等核心产品中。Ganos目前拥有几何、栅格、轨迹、表面网格、体网格、3D实景、点云、路径、地理网格、快显十大核心引擎,为数据库构建了面向新型多模多态时空数据的存储、查询、分析、服务等一体化能力。
本文介绍的地理网格引擎能力,依托阿里云云原生关系型数据库PolarDB、云原生数据仓库AnalyticDB和云数据库RDS建设输出。
关于Ganos地理网格引擎
地理网格是一种再现地球表面的多边形网格单元集合,可以用于表示地物在地理空间中的位置信息,融合其他各类时空数据。地理网格计算一般由粗到细,逐级地分割地球表面,将地球曲面用一定大小的多边形网格进行近似模拟,其目标是将地理空间的定位和地理特征的描述一体化,并将误差范围控制在网格单元的范围内。每个网格单元都会进行编码,网格与编码是一一对应的。三维地理网格不只考虑经纬度,还把高度维纳入剖分和编码范围。
Ganos地理网格引擎目前涵盖GeoSOT和H3两种地理网格。GeoSOT是我国提出的一套地球空间剖分理论,并在此基础上发展出的一种离散化、多尺度区域位置标识体系。H3是Uber研发的一种覆盖全球表面的二维地理网格,采用的基本网格是正六边形。利用Ganos地理网格的函数可以将不同的空间范围转换为网格编码,可以求出网格编码的空间范围、层级和父子网格。Ganos支持退化网格计算(如下图),即充分利用网格的层级关系,用更精简的网格组合对空间范围进行表达。此外,Ganos自研地理网格索引,可用于高效查询网格码以及加速聚合计算。
Ganos地理网格支持无人机路径规划能力实践
业务需求
随着新能源技术的迅猛发展,低空经济已经逐步成为新的战略性新兴产业。低空经济是以各种有人驾驶和无人驾驶航空器的各类低空飞行活动为牵引,辐射带动相关领域融合发展的综合性经济形态,它的应用场景丰富,既包括传统通用航空业态,又融合了以无人机为支撑的低空生产服务方式,在工业、农业、服务业等领域都有广泛应用,对构建现代产业体系具有重要作用,发展空间极为广阔。2024年,深圳率先发布《深圳经济特区低空经济产业促进条例》,为低空经济起飞铺就法治跑道;上海多年来积极打造华东无人机基地,目前华东无人机基地已先后成为国家级特色产业集群、上海市无人机特色园区、中国民航首批无人驾驶航空试验区、虹桥国际开放枢纽“华东无人机空港”等。
不同于传统的地表活动,低空活动具有立体性、区域性、融合性等特点,这些特点对于如何安全引导低空活动的顺利开展带来了一系列需要解决的技术问题。
- 立体性:主要体现为“活动空间上的立体性”,低空空域是指垂直范围原则为真高1000米以下,可根据不同地区特点和实际需要,具体划设高度范围的空域为活动空间,将经济活动由地面向空中延伸、由“平面经济”向“立体经济”转变,表现为一种三维空间的立体经济形态;
- 区域性:主要体现为“作用范围上的区域性”。与航空运输经济、高铁经济等大规模、大范围、一体化特征的经济形式不同,基于小飞机、小航线、小企业的低空经济具有小规模、小范围、分散性特点,具有明显的地域性和区域性特征;
- 融合性:主要体现为“运行模式上的融合性”。与航空运输以及铁路、公路、水运等交通运输经济不同,低空经济的主要作用除了交通运输,更多的是行业服务,体现为“行业+航空”的模式,为该行业提供空中解决途径或辅助手段,以提升工作效率、降低成本、增强获得感等;
通过低空活动的特点我们可以发现,低空区域是没有路网的,在三维空间下如何保障低空设备的安全通过与到达、如何合理的划分低空区域的活跃周期与飞行器的活动规划是低空经济可以顺利落地并保障区域性活跃与安全的重要工作;
功能介绍
Ganos地理网格引擎提供了基于网格的路径规划能力,可以使用DEM、DSM、倾斜摄影等数据构建复杂环境下的无人机路径规划应用场景,相关能力简介如下:
ST_SetCost
用于给障碍物设置通行开销,障碍物可以是实体比如地面、建筑物,也可以是空间范围比如雷达扫描范围、风场空间。使用时首先要将障碍物的空间范围转换为网格数组,再进行通行开销设置。
ST_3DGridPath
无人机路径规划的最核心函数,根据用户提供的起始点终止点以及通行的开销数据,计算出最优的三维网格路径。支持不同的路径算法比如A*和DIjkstra,不同的移动方式比如是否允许斜向飞行,以及不同的距离计算方法比如曼哈顿和欧几里得。
同时,Ganos地理网格引擎还提供了ST_MatchGridLevel(依据给定的DES/DSM计算合适的用于路径规划的网格级别)、ST_CostUnion(合并所有障碍物通行开销到一个统一的开销数组,作为最终规划路线的输入)等能力应对更为复杂的业务场景需求。
以上函数的详细使用请参见Ganos手册,手册计划2024年3月下旬上线。
最佳实践
我们以某个园区的倾斜摄影数据为例,演示三维路径规划在实际场景中的应用。
数据概况
测试数据形如:
数据入库与处理
1. 网格路径规划功能依赖的扩展需要在使用前创建:
CREATE EXTENSION IF NOT EXISTS ganos_geomgrid CASCADE;
CREATE EXTENSION IF NOT EXISTS ganos_utility CASCADE;
2. 该数据存储于 OSS 中,使用 ST_ImportOSGB 将其导入(导入函数的详细介绍可以参考这里):
SELECT
ST_ImportOSGB(
'test_oblique',
'OSS://YOUR_OSS_AK:YOUR_OSS_SK@OSS_REGION/YOUR_BUCKET/YOUR_OSGB_PATH',
'{"parallel":16,"project":"building"}');
3. 将某一级别的瓦块整体转换为单一 GLB 格式,存入临时表 temp_glb 中,以 SfMesh 类型作为中间类型:
SELECT
ST_ImportGLB(
'temp_glb',
ST_AsGLB(ST_Combine(tile)),
'temp_glb_1',
'{"ignore_texture":t