开发者学堂课程【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 赋能给数据库之后的能力。
2、Ganos 支持哪些产品
Ganos 是时空引擎,它不是一个独立的产品,它是以赋能的方式嵌入在数据库产品中。底下从左到右看,Ganos 赋能的产品,包括 RDS PG、Polar DB、ADB PG、Lidorm/HBase 以及 DLA,其中 RDS PG 和 Polar DB 是事务型关系数据库,可以做一些简单的分析。Ganos 在这两款数据库中的模型是最全面的,功能也是最丰富的,可以把 Ganos 理解为 PostGIS++,即 PostGIS 升级版本但是又完全兼容PostGIS。其他几种数据库更多的是面向大数据分析的场景。
3、Ganos 中丰富的时空模型
相比 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;
其中六大模型在上面已经介绍过,这里要额外补充的是关于矢量金字塔这个模型,它是在几何模型基础之上新增的一个扩展,用于对大数据的矢量数据建立系数金字塔,目的是使得异体矢量数据能够在不切片的情况下达到无障碍浏览显示的效果。创建扩展之后,在数据库中可以通过-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 直接写入到数据库。
l 遥感影像注册(入库)
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
5、Ganos 与开源生态
l 无缝对接兼容 PostGIS 的各类 GIS 软件
l 显示和编辑:GeoServer、QGIS、uDig、OpenJump.....
l PGAdmin4定制,支持显示矢量、栅格、即将支持显示轨迹。在
PGAdmin4中,可以使用 Ganos 的矢量金字塔功能。
也就是在 PGAdmin4中可以直接显示上亿级的矢量数据,可以达到不切片无障碍浏览的效果。(视频看效果)