《阿里云产品四月刊》—Ganos H3 地理网格能力解析与最佳实践(1)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
全局流量管理 GTM,标准版 1个月
简介: 阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代

本文来源于阿里云社区电子书《阿里云产品四月刊》


Ganos H3 地理网格能力解析与最佳实践

关于 Ganos

Ganos  是阿里云数据库产品事业部联合阿里云飞天数据库与存储实验室联合共同研发的新一代云原生位置智能引擎,它将时空数据处理能力融入了云原生关系型数据库PolarDB、云原生多模数据库Lindorm、云原生数据仓库AnalyticDB 和云数据库RDS PG 等核心产品中。Ganos 目前拥有几何、栅格、轨迹、表面网格、体网格、3D  实景、点云、路径、地理网格、快显十大核心引擎,为数据库构建了面向新型多模多态时空数据  的存储、查询、分析、服务等一体化能力。

image.png

 

本文介绍的地理网格引擎能力,依托阿里云云原生关系型数据库 PolarDB 建设输出。

 

关于 Ganos H3 地理网格

地理网格是一种再现地球表面的多边形网格单元集合,可以用于表示地物在地理空间中  的位置信息,融合其他各类时空数据。

 

地理网格计算一般由粗到细,逐级地分割地球表面,将地球曲面用一定大小的多边形网  格进行近似模拟,其目标是将地理空间的定位和地理特征的描述一体化,并将误差范围

 

控制在网格单元的范围内。每个网格单元都会进行编码,网格与编码是一一对应的。三  维地理网格不只考虑经纬度,还把高度维纳入剖分和编码范围。

 

Ganos 地理网格引擎目前涵盖 GeoSOTH3 两种地理网格。GeoSOT 是我国提出的一套地球空间剖分理论,并在此基础上发展出的一种离散化、多尺度区域位置标识体系(关GeoSOT 网格的最佳实践可参考Ganos 地理网格引擎支撑无人机路径规划能力实践H3Uber 研发的一种覆盖全球表面的二维地理网格,采用了一种全球统一的、多层次的六边形网格体系来表示地球表面。

 

H3   设计独特之处在于其采用六边形结构,相较于传统的四边形或三角形网格,六边形网格具有更均匀分布、邻居关系固定且无方向性等优点,这使得在进行空间数据分析、  路径规划、地理编码以及地理围栏等领域时,能够更加精确和高效地组织和查询地理空   间数据。

 

利用  Ganos  地理网格的函数可以将不同的空间范围转换为网格编码,可以求出网格编码的空间范围、层级和父子网格。Ganos   支持退化网格计算如下图),即充分利用网格的层级关系,用更精简的网格组合对空间范围进行表达。此外,Ganos   自研地理网格索引,可用于高效查询网格码以及加速聚合计算。

image.png

 

 

Ganos H3 地理网格能力解析

 

 

业务场景

 

H3 地理网格技术在诸多业务场景中得到广泛应用,主要包括:

 

  • 物流与出行服务:基于地理网格开展路线规划、区域覆盖分析、配送范围界定、热  点区域发现等功能建设;

 

  • 数据分析:基于地理网格开展人口密度分析、移动用户行为分析、地理市场细分等  大数据分析领域;

 

  • 物联网(IoT):面向智能城市、环境监测、资产追踪等需要实时监控的数据,基于  地理网格进行监测数据空间分布分析的场景;

 

  • 社交网络:基于地理网格构建面向位置服务(LBS)、好友位置分享、事件通知等 社交场景的应用;

 

  • 应急响应与公共服务:基于地理网格开展灾害分布分析、灾害预警热力、应急资源  分布、紧急救援区域划分等;

 

总之,H3   网格技术为企业和开发者提供了一种强大的工具,能够更好地管理和利用地理空间数据,提高与位置相关的决策效率和准确性。

 

能力解析

 

Ganos H3 地理网格包含网格输入/输出,网格父子关系判断,网格路径分析,网格查询等多种能力,地理网格还支持转为 Ganos Geometry 类型,与其它类型的空间数据进行联合分析。值得强调的是,Ganos H3  地理网格也支持退化,用更精简的网格组合对空间范围进行表达,降低用户因打码带来的数据库存储成本。

 

关于 Ganos H3 地理网格详细功能,可参见 Ganos 地理网格用户手册

 

 

最佳实践

下面我们使用真实场景数据来介绍如何使用 Ganos H3 进行空间点数据的入库、打码、查询到最终显示等功能。这里我们选择的测试数据是 Uber 发布的 2023 年纽约出租车位置数据集 FOIL 进行测试。FOIL 数据记录了纽约地区所有的出租车上下车的位置数据, 详细信息参考

image.png

 

数据导入

 

在使用 Ganos H3 前,需要先创建 GeomGrid 扩展,SQL 如下: CREATE EXTENSION Ganos_GeomGrid CASCADE;

GeomGrid 中提供了 h3grid 字段类型,用于表示 H3 编码。下面的 SQL 语句创建了一个带有 h3grid 类型的数据表 FOIL2013,这里字段 h3_lev13 代表我们使用的是第 13 层级的 H3 编码。H3 不同层级网格具有不同分辨率,用户可以可以更具具体业务需求灵活定义。H3 各个层级对应的空间分辨率请参考

 

-- 创建表用来保存 foil 点数据,h3_lev13 代表 13 级编码 CREATE TABLE FOIL2013 ( id text, lon float, lat float, h3_lev13 h3grid);

 

FOIL 文件是以 csv 文件格式保存的。用户可以通过编程方式从 CSV 中提取相关信息通SQL 入库,也可以通过 FDW 方式入库,这里我们使用 Ganos FDW 模块通过 FDW 方式实现数据快速入库。

 

首先我们把目标文件上传到 oss 指定目录,比如这里我们文件路径为:

endpoint:oss-cn-hangzhou-internal.aliyuncs.com bucket:dla-ganos-hz
path:FOIL/trip_data_1.csv

 

首先我们创建 Ganos FDW 扩展

 

CREATE EXTENSION ganos_fdw CASCADE;

 

 

然后我们需要创建一个 csvserver,负责管理 csv 文件,ak_id 和 ak_secret 就是用户的 OSS 连接 AK 的 id 和 secret 信息,format 为'CSV'代表管理的数据格式为 CSV。

CREATE SERVER csvserver FOREIGN DATA WRAPPER ganos_fdw OPTIONS ( datasource
'OSS://<ak_id>@oss-cn-hangzhou-internal.aliyuncs.com/dla-ganos-hz/FO IL/trip_data_1.csv', format 'CSV' );
CREATE USER MAPPING FOR CURRENT_USER SERVER csvserver OPTIONS (user
'<ak_id>', password '<ak_secret>');

 

FDW 服务创建成功后,我们就可以通过外表的形式,将 OSS 上的 csv 映射到数据库中作为一个普通表进行查询, 详细 SQL 语句如下。这里我们只选择 medallionpickup_longitudepickup_latitude 三列数据,映射的外表名称为 trip_data_1:

CREATE FOREIGN TABLE trip data 1 (
medallion va rchar ,
pickup_ longitude varchar,
pickup_ latitude
varchar)
SERVER csvserver OPTIONS ( layer 'trip_ data_ 1') ;

 

查询外表 trip_data_1:

 

SELECT * FROM trip_data_1;

 

 

 

结果如下:

image.png

 

然后将外表数据导入到前面我们创建的 FOIL3 表中:

INSERT INTO FOIL2013SELECT medallion as id ,cast (pickup_longitude as
double precision) as lon, cast(pickup_latitude as double precision) as lat FROM trip_data_1;

 

查询 FOIL2013,可以看到 CSV 上的信息已经成功导入到 FOIL2013 表格中,后面我们就可以根据经纬度等位置信息进行打码了。

 

SELECT * FROM FOIL2013;

 

 

image.png

 

 

《阿里云产品四月刊》—Ganos H3 地理网格能力解析与最佳实践(2)https://developer.aliyun.com/article/1554159

相关文章
|
5天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
6天前
|
弹性计算 运维 网络安全
阿里云轻量应用服务器产品解析与搭建个人博客网站教程参考
轻量应用服务器(Simple Application Server)作为阿里云面向单机应用场景推出的云服务器产品,以其一键部署、一站式管理、高性价比等特性,深受个人开发者、中小企业及入门级用户的喜爱。本文将全面解析阿里云轻量应用服务器的产品优势、应用场景、使用须知,以及使用轻量应用服务器搭建个人博客网站的详细教程,帮助用户更好地了解和使用这一产品。
|
21天前
|
CDN
阿里云CDN怎么收费?看这一篇就够了,CDN不同计费模式收费价格全解析
阿里云CDN的费用由基础费用和增值费用组成。基础费用有三种计费方式:按流量、按带宽峰值和月结95带宽峰值,默认为按流量计费,价格根据使用量阶梯递减。增值费用包括静态HTTPS请求、QUIC请求等,按实际使用量收费,不使用不收费。具体收费标准和详细规则可参考阿里云官方页面。
|
30天前
|
存储 人工智能 NoSQL
Tablestore深度解析:面向AI场景的结构化数据存储最佳实践
《Tablestore深度解析:面向AI场景的结构化数据存储最佳实践》由阿里云专家团队分享,涵盖Tablestore十年发展历程、AI时代多模态数据存储需求、VCU模式优化、向量检索发布及客户最佳实践等内容。Tablestore支持大规模在线数据存储,提供高性价比、高性能和高可用性,特别针对AI场景进行优化,满足结构化与非结构化数据的统一存储和高效检索需求。通过多元化索引和Serverless弹性VCU模式,助力企业实现低成本、灵活扩展的数据管理方案。
65 12
|
1月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
66 5
|
3月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
130 2
|
4月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
100 1
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是"将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。创建型模式分为5种:单例模式、工厂方法模式抽象工厂式、原型模式、建造者模式。
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
2月前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
2月前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

热门文章

最新文章

推荐镜像

更多