时空场景开发实践(一)|学习笔记

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 快速学习时空场景开发实践(一)

开发者学堂课程【PostgreSQL 实战进阶时空场景开发实践(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/112/detail/1905


时空场景开发实践(一)

 

内容介绍

一. 认识 Ganos

二. 如何使用 Ganos

三. 进阶实战

四.使用接口汇总

这节课的主要内容主要分三大块,第一块是认识 Ganos,介绍感染 Ganos 是什么,Ganos 支撑的产品有哪些,以及 Ganos 中包含哪些时空模型。第二大块是告诉大家如何使用 Ganos,在PB中如何创建 Ganos 的扩展,以及将如何将矢量、栅格轨迹等数据进行入库,如何在 pb Ganos 中管理 PB 级遥感影像以及轨迹数据。还有 Ganos 与空间开源生态的关系。第三块是进阶实战,会根据一个香港疫情的案例,一步步学习如何在 Ganos 中进行空间统计分析,矢栅一体化查询、轨迹追踪以及轨迹的跨区域的时空查询。这是这节课的主要内容。

 

一. 认识 Ganos

1、Ganos 是什么?

Ganos 是时空引擎,包含 SQL+NoSQL 云数据库时空引擎 

Ganos 名字来历:

·取名于大地女神盖亚(Gaea)和时间之神柯罗诺斯

(Chronos),代表“时空”结合

·时空地理信息处理融入公有云/专有云 PaaS 服务,成为一种普惠计算

以下是 Ganos 的一些特性。这些特性有数据库本身的能力,更多的是 Ganos 赋能给数据库之后的能力。

 image.png

2、Ganos 支持哪些产品

image.png 

Ganos 是时空引擎,它不是一个独立的产品,它是以赋能的方式嵌入在数据库产品中。底下从左到右看,Ganos 赋能的产品,包括 RDS PG、Polar DB、ADB PG、Lidorm/HBase 以及 DLA,其中 RDS PG 和 Polar DB 是事务型关系数据库,可以做一些简单的分析。Ganos 在这两款数据库中的模型是最全面的,功能也是最丰富的,可以把 Ganos 理解为 PostGIS++,即 PostGIS 升级版本但是又完全兼容PostGIS。其他几种数据库更多的是面向大数据分析的场景。

3、Ganos 中丰富的时空模型

 image.png

相比 PostGIS,Ganos 在时空模型上进行了较多的扩充,除了支持传统的拓扑网络模型、几何模型、栅格模型,还扩充了网格模型、时空轨迹模型以及点云模型。其中空间网格模型是在 Ganos 3.0版本推出的新特性,它编码标准遵循了自然资源部地球空间网格编码规则,在这个规则基础之上设计和实现。

 

二. 如何使用 Ganos

1、使用前先在 PG 数据库中创建 Ganos 扩展

这里列举了 Ganos 七大模型以及它们的扩展语句:

几何模型

Create extension ganos_geometry cascade; Create extension ganos_geometry_topology; 

栅格模型

Create extension ganosraster;

轨迹模型

Create extension ganos_trajectory; 

点云模型

Create extension ganos pointcloud 

路径模型

Create extension ganos_trajectory;

网格码模型

Create extension ganos_geomgrid;

矢量金字塔

Create extension ganos_geometry_pyramid;

 image.png

其中六大模型在上面已经介绍过,这里要额外补充的是关于矢量金字塔这个模型,它是在几何模型基础之上新增的一个扩展,用于对大数据的矢量数据建立系数金字塔,目的是使得异体矢量数据能够在不切片的情况下达到无障碍浏览显示的效果。创建扩展之后,在数据库中可以通过-DX 命令查询到所有已经创建的扩展。上图就是查询的结果内容,目前 Ganos是3.3版本。

2、数据如何入库

l 矢量数据入库

矢量数据主要依赖空间开源的工具,包括 Ogr2ogr、shp2pgsql、QGIS、pg_dump/pg_restore 等。

l 栅格、遥感数据入库

Ganos 提供入库接口 STimportFromSTcreateRast

支持 OSS、NAS 等外部挂载入库//原始文件放在 OSS 或者 Nas 中,然后将原数据录入到数据库,将金字塔部分数据可以选择导入到数据库,也可以选择放在 OSS

pg_dump/pg_restore 时,外部数据不需要挪动。

入库时支持金字塔内建+外建随机组合。

批量文件并行入库,支持单幅超大影像并行入库。

l 轨迹数据入库

轨迹数据入库比较特殊,它一般是数据监测点。Ganos 提供入库接口STmakeTrajectory。

支持轨迹点动态追加。

支持点表抽取为轨迹对象。

其中,矢量数据入库和栅格、遥感数据入库与 SuperMap、ArcGIS 完成对接,可借助其它平台直接入库 

3、如何管理 PB 级遥感影像

l PostgresSQL + Ganos+OSS 组合

元数据存储数据库内,原始文件保留在 OSS

金字塔可存储在数据库内,也可以保存在 OSS

降低成本

实现 PB 级数据管理

Ganos 在云上与 Oss 存储是打通的,所以 pg Ganos 加 OSS 组合即可实现PB级遥感影像的管理。元数据和部分金字塔数据可以存储在数据库内部,遥感原始数据存放在 OSS 中,因为 OSS 这种存储是非常廉价的。所以这也降低了用户的使用成本,只需要按照 SQL 语句 insert 直接写入到数据库。

image.png

l 遥感影像注册(入库)

 image.png

createrast 这个接口非常简单,它只接收一个参数,只要把 OSS 中的地址传给它。OSS组成比较复杂,有分开知识介绍,包括 OSS 的账号密码以及它的域,还有bucket,最后是数据url。

l 大范围影像拼接、镶嵌

ST_mosaicFromST_mosaicTo

4、如何管理轨迹数据

l 轨迹构造

原生轨迹模型 trajectory

Create table traj(id integer trajtrajectory) ST_makeTrajectory

在创建轨迹表的时候,可以直接用数据类型。轨迹构造有单独的 trajectory 接口,它有很多的重载版本。具体的使用方式可以在官网的用户手册里面进行查看。

l 轨迹压缩

新增 stcompress 压缩接口

压缩质量更好,保留重要特征轨迹点

l 轨迹相似性判断

ST_IcsDistance、ST_IcsSimilarity、ST_IcsSubDistance。 ST_JaccardSimilarity

image.png

5、Ganos 与开源生态

 image.png

l 无缝对接兼容 PostGIS 的各类 GIS 软件

l 显示和编辑:GeoServer、QGIS、uDig、OpenJump.....

l PGAdmin4定制,支持显示矢量、栅格、即将支持显示轨迹。在

PGAdmin4中,可以使用 Ganos 的矢量金字塔功能。

也就是在 PGAdmin4中可以直接显示上亿级的矢量数据,可以达到不切片无障碍浏览的效果。(视频看效果)

image.png

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
消息中间件 NoSQL Java
别再用 Redis List 实现消息队列了,Stream 专为队列而生
别再用 Redis List 实现消息队列了,Stream 专为队列而生
400 0
|
9月前
|
API 调度 决策智能
全新平台级 ModelScope MCP 实验场重磅上线!
还在为快速验证MCP在对话中的效果而烦恼? 希望更灵活地组合魔搭开源模型API-Inference与Hosted MCP服务?
535 2
|
SQL JSON 大数据
ElasticSearch的简单介绍与使用【进阶检索】 实时搜索 | 分布式搜索 | 全文搜索 | 大数据处理 | 搜索过滤 | 搜索排序
这篇文章是Elasticsearch的进阶使用指南,涵盖了Search API的两种检索方式、Query DSL的基本语法和多种查询示例,包括全文检索、短语匹配、多字段匹配、复合查询、结果过滤、聚合操作以及Mapping的概念和操作,还讨论了Elasticsearch 7.x和8.x版本中type概念的变更和数据迁移的方法。
ElasticSearch的简单介绍与使用【进阶检索】 实时搜索 | 分布式搜索 | 全文搜索 | 大数据处理 | 搜索过滤 | 搜索排序
|
存储 算法 Java
G1原理—1.G1回收器的分区机制
本文深入探讨了G1垃圾回收器的多个核心概念与实现细节,包括分区(Region)管理、新生代动态扩展机制以及停顿预测模型。首先分析了G1中Region大小的计算规则及其对性能的影响,强调Region大小需为2的幂次以优化内存分配效率并避免碎片化。其次介绍了新生代内存分配方式及动态扩展流程,通过自由分区列表调整新生代大小以平衡GC时间和程序运行时间。最后重点解析了基于衰减算法的停顿预测模型,该模型利用历史GC数据加权平均来精准预测每次GC所需时间,从而确保满足用户设定的停顿时间目标。这些机制共同作用,使G1能够在大内存场景下实现高效垃圾回收与低延迟表现。
633 10
G1原理—1.G1回收器的分区机制
|
SQL 数据采集 数据挖掘
Pandas数据合并:concat与merge
Pandas是Python中强大的数据分析库,提供灵活高效的数据结构和工具。本文详细介绍了Pandas中的两种主要合并方法——`concat`和`merge`。`concat`用于沿特定轴连接多个Pandas对象,适用于简单拼接场景;`merge`则类似于SQL的JOIN操作,根据键合并DataFrame,支持多种复杂关联。文章还探讨了常见问题及解决方案,如索引对齐、列名冲突和数据类型不一致等,帮助读者全面掌握这两种方法,提高数据分析效率。
781 8
|
存储 分布式数据库 数据处理
未来数据库技术发展趋势及挑战
【2月更文挑战第2天】 传统的数据库技术面临着越来越多的挑战,如数据规模的爆炸性增长、实时性和可扩展性要求的提升等。本文将探讨未来数据库技术的发展趋势,包括分布式数据库、无服务器数据库、区块链技术在数据库领域的应用等,并分析这些新技术带来的机遇和挑战。
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
SQL Oracle 关系型数据库
Oracle rman备份保留策略,归档删除策略及delete命令的使用
oracle rman备份保留策略、归档策略的使用及对delete命令的影响
2749 0
|
监控 负载均衡 Java
(九)漫谈分布式之微服务组件篇:探索分布式环境下各核心组件的必要性!
本文将深入探讨微服务中各个组件的必要性,以此帮助各位更好地加深对分布式系统的掌握度。
1221 1
|
JSON 数据格式
3. 使用 VsCode 开发 uni-app 项目需要使用到的插件
3. 使用 VsCode 开发 uni-app 项目需要使用到的插件
1021 0

热门文章

最新文章