Ganos 4.3新特性:获取栅格象元空间范围-阿里云开发者社区

开发者社区> ganos> 正文

Ganos 4.3新特性:获取栅格象元空间范围

简介: 栅格数据具备了空间信息,因此每一个象元都具备了空间属性以及数值属性数据。获取栅格象元的空间属性以及数值属性,对于进行矢栅多模融合分析具有十分重要的意义。
+关注继续查看

1. 简介

栅格数据具备了空间信息,因此每一个象元都具备了空间属性以及数值属性数据。获取栅格象元的空间属性以及数值属性,对于进行矢栅多模融合分析具有十分重要的意义。

1.1 GanosBase


GanosBase(简称Ganos)是阿里云智能研发的新一代时空数据库引擎,采用了平台即服务、多模融合、计算下推和云原生全新处理架构,为政府、企事业单位、泛互联网客户提供移动对象、空间/时空、遥感多模态数据混合存储、查询与分析服务。

GanosBase已嵌入到RDS PG、PolarDB PG、ADB PG、Lindorm等云原生数据库产品中,本文所介绍的功能特性包含在RDS PG/PolarDB/ADBPG中。


1.2 新增函数

Ganos 4.3 中新增了将栅格象元转换为空间几何对象以及数值的系列函数,包括:

1.2.1 ST_PixelAsPolygon

返回栅格中指定象元所代表的空间范围,以矩形的方式返回geometry对象。

image

1.2.2 ST_PixelAsPoint

返回栅格中指定象元所代表的空间范围,以点的方式进行返回,可以指定代表的点位左上角点或中心点。

imageimage

1.2.3 ST_PixelAsCentroid

返回栅格中指定象元所代表的空间范围,以中心点的方式进行返回几何对象

image

1.2.4 ST_PixelAsPolygons

返回栅格对象中所有象元的空间和属性信息。返回的结果包括象元在栅格对象中的行号,列号,波段号,像素值以及对应的空间多边形范围。

1.2.5 ST_PixelAsPoints

返回栅格对象中所有象元的空间和属性信息。返回的结果包括象元在栅格对象中的行号,列号,波段号,像素值以及对应的空间点信息。空间点可以指定象元的左上角点或中心点。

1.2.6 ST_PixelAsCentroid

返回栅格对象中所有象元的空间和属性信息。返回的结果包括象元在栅格对象中的行号,列号,波段号,像素值以及对应的象元空间范围中心点信息。

2. 实战步骤

本案例中,已知全国的气象温度数据(栅格)以及设备的空间位置分布情况(矢量),需要查找温度在一定范围的设备信息,来演示Ganos矢量和栅格进行统一分析能力。此案例也可以扩展为根据DEM来查找高程在一定范围内的设备等场景。

数据包括:

  • 全国的气温netcdf数据
  • 全国的设备点信息 shapefile格式

空间参考均为WGS84.

image


2.1 数据入库

借助于Ganos的能力,可以将netcdf与shapefile数据快速导入到数据库中:

2.1.1 温度数据入库

-- 创建Ganos Raster扩展
CREATE EXTENSION GANOS_RASTER CASCADE;
-- 创建温度表
CREATE TABLE temperature(id integer, rast raster);
-- 导入netcdf温度数据,需要设置空间参考为4326
INSERT INTO temperature 
VALUES (1, ST_SetSrid(ST_ImportFrom('chunk_table', 'OSS://<id>:<key>@<endpoint>/bucket/path/file.nc'), 4326));
-- 可以查看元数据信息
select st_metadata(rast) from temperature where id =1;
----------
 {"attributes":{"id":"237a4cc5-1b8a-4938-a4e1-ca62766056fb","name":"","type":"normal","version":1.1,"
storage":{"mode":"internal","location":"chunk_table","md5":"","endian":"ndr","compress":"lz4","compre
ssQuality":75,"fileSystem":"null","chunking":{"enable":true,"chunkHeight":256,"chunkWidth":256,"chunk
Band":1,"rowChunksDimension":5,"columnChunksDimension":9,"bandChunksDimension":1},"cellType":"16bsi",
"interleaving":"bsq"},"description":"","width":2101,"height":1237,"bands":1,"pyramid":{"resample":"ne
ar","level":0,"table":""},"overview":{"table":"","column":"","pyramidLevel":1},"referenceOriginPoint"
:{"type":"Raster","ulp":{"row":0,"column":0,"band":0},"rrp":{"row":0,"column":0,"band":0},"wrp":{"x":
0,"y":0,"z":0}}},"spatialReference":{"valid":true,"srid":4326,"refLocation":"upperleft","affline":{"u
pperleftx":72.985,"upperlefty":54.09500183179541,"scalex":0.03,"scaley":-0.03000000148143583,"skewx":
0.0,"skewy":0.0},"gcps":{"count":0}},"bands":{"b0":{"nodata":{"valid":true,"value":-32767.0},"colorIn
terpretation":"Undefined","metadata":{"long_name":"Maximum temperature of 2 meters","NETCDF_VARNAME":
"TEM_Max_2m","Spatial_resolution":"3km*3km","time":"202105012330","units":"°C *10"},"histogram":{"app
roximate":true}}},"metaData":{"TEM_Max_2m#long_name":"Maximum temperature of 2 meters","TEM_Max_2m#Sp
atial_resolution":"3km*3km","TEM_Max_2m#time":"202105012330","TEM_Max_2m#units":"°C *10"}}


2.1.2 设备数据入库

Ganos支持将OSS上的shapefile通过fdw的方式导入到数据库中

--创建Ganos fdw扩展
CREATE EXTENSION ganos_fdw;
--创建Shapefile的fdw表
select ST_RegForeignTables('OSS://<id>:<key>@<endpoint>/bucket/path/file.shp') );
--数据入库到数据库中并创建空间索引
CREATE TABLE devices AS SELECT * from <foreign_table_name> ;
CREATE INDEX idx_devices_geom ON devices USING Gist(geom);


2.2 提取温度范围

此案例中最核心的功能是将基于栅格的温度转换为矢量空间范围并进行分析计算。转换的思路是将每个符合温度要求的象元的空间范围进行合并,最终获得整体空间范围,具体的SQL为:

-- 查找温度大于 27 °C 且小于28 °C 象元为例
WITH tmp AS (
 SELECT (ST_PixelAsPolygons(rast)).*
 FROM temperature 
  WHERE id = 1)
SELECT ST_Union(geom) 
FROM tmp 
WHERE value >= 270 AND value < 279;

当然这样的写法对于栅格分辨率较高时,由于需要处理每个像素值,性能较低。

可以通过配合 ST_Reclassify 函数先将无效的数据处理为Nodata值降低数据处理量,具体参见ST_Reclassify函数:


-- 先执行重分类操作
With tmp As(
 SELECT ST_Reclassify(rast, 
                      '[{"band":0,"remap":{"(-100,270,280, 1000]":"0,1,0"}, "nodata":false, "nodataValue":0}]', 
                      '{"chunktable":"reclass_chunk_table"}') AS rast
from temperature 
where id =1 ),
-- 再返回空间范围
tmp2 AS (
  SELECT (ST_PixelAsPolygons(rast)).*
FROM tmp)
SELECT ST_Union(geom) 
FROM tmp2;


2.3 空间叠加分析

将步骤2.2 中获得的空间范围与设备表做一个空间包含关系判断,获得符合要求的设备信息:

WITH tmp AS (
 SELECT (ST_PixelAsPolygons(rast)).*
 FROM temperature WHERE id = 1),
tmp2 AS (
  SELECT ST_Union(geom) as geom
 FROM tmp 
 WHERE value >= 270 AND value < 279)
SELECT count(*) -- 可以选择任何的列信息,此处以计算数量为例
FROM devices, tmp2
WHERE ST_Contains(tmp2.geom, devices.geom);
-- 最终结果
 count 
-------
  1879


3. 总结


利用Ganos的时空栅格存储、计算和分析能力,将复杂矢量栅格多模融合分析功能转化为简单的Geo-SQL语句,使得过去必须借助于GIS软件的专业的时空数据处理流程能在数据库内实现,简化用户的程序逻辑,降低开发复杂度与维护成本, 使云GIS能力赋能行业用户。


关于TST


TST团队(Team of Spatio-Temporal kernel)由来自数据库、计算机图形图像、3S等不同领域技术专家构成,是怀揣共同梦想——让80%行业用到时空云计算、迸发着活力和激情的一群创业者。团队主攻云上时空内核引擎技术架构、算法、系统平台研发与应用,致力于将时空信息处理嵌入到PaaS云计算基础设施,使之成为新一代数字框架的基础维度普惠到更多用户。欢迎加入!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9574 0
C/C++中各种类型int、long、double、char表示范围(最大最小值)
来源:http://blog.csdn.net/xuexiacm/article/details/8122267 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main(...
773 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13277 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11580 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
21997 0
+关注
9
文章
0
问答
来源圈子
更多
阿里云数据库:帮用户承担一切数据库风险,给您何止是安心!支持关系型数据库:MySQL、SQL Server、PostgreSQL、PPAS(完美兼容Oracle)、自研PB级数据存储的分布式数据库Petadata、自研金融级云数据库OceanBase支持NoSQL数据库:MongoDB、Redis、Memcache更有褚霸、丁奇、德哥、彭立勋、玄惭、叶翔等顶尖数据库专家服务。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载