注册
达梦栅格数据存储与空间数据查询
培训园地/ 文章详情 /

达梦栅格数据存储与空间数据查询

WST 2026/05/15 394 0 0

本文主要栅格数据入达梦数据库,并能进行栅格、矢量数据查询操作

一、准备工作

1、安装包+工具准备

1、安装包准备+空间数据库依赖的第三方库(spatial)
2、raster2dmsql栅格数据入库工具
3、需要入库的TIFF文件

2、达梦数据库安装

详见达梦官方文档:https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html

3、加载空间数据库依赖第三方库

将spatial包解压放入达梦数据库安装目录的bin目录下,并重启数据库实例

4、数据库开启矢量、栅格等功能

SP_INIT_GEO_SYS(1);
SP_INIT_GEO2_SYS(1);
SP_INIT_RASTER_SYS(1);
SP_INIT_TOPOLOGY_SYS(1);
SP_INIT_ROUTE_SYS(1);

5、创建数据库用户

create user GEORASTERTEST identified by “Dameng123”;

6、raster2dmsql工具+TIFF文件准备

解压入库工具的zip包后,设置环境变量,并执行./raster2dmsql显示命令帮助:

cd /home/dmdba/r2dsql_linux/
chmod +x ./raster2dmsql
export LD_LIBRARY_PATH=/home/dmdba/r2dsql_linux:$LD_LIBRARY_PATH
./raster2dmsql

TIFF文件放在/home/dmdba/raster/目录中

二、生成SQL文件

1、生成建表SQL文件

cd /home/dmdba/r2dsql_linux/
export LD_LIBRARY_PATH=/home/dmdba/r2dsql_linux:$LD_LIBRARY_PATH
./raster2dmsql -p -q -I -C -M -F -t 256x256 /home/dmdba/raster/test.tif "GEORASTERTEST"."Dameng123" > /home/dmdba/sql/testtif.sql

2、生成数据Insert的SQL

cd /home/dmdba/r2dsql_linux/
export LD_LIBRARY_PATH=/home/dmdba/r2dsql_linux:$LD_LIBRARY_PATH
./raster2dmsql -a -q -I -M -F -t 256x256 /home/dmdba/raster/test.tif "GEORASTERTEST"."Dameng123" > /home/dmdba/sql/testtif_data.sql

备注:有多少个TIFF文件,就要写多少个./raster2dmsql命令去生成SQL,每个TIFF文件对应一个SQL。

三、执行SQL文件

1、执行建表语句

disql GEORASTERTEST/Dameng123@localhost:5236 \`/home/dmdba/sql/testtif.sql

2、执行数据Insert脚本

disql GEORASTERTEST/Dameng123@localhost:5236 \`/home/dmdba/sql/testtif_data.sql

3、检查入库结果

select count(1) from “GEORASTERTEST”.“TESTTIF”;

四、查询操作

1、查询系统视图

SYSRASTER.RASTER_COLUMNS和SYSRASTER.RASTER_OVERVIEWS。其中RASTER_COLUMNS视图用于对数据库中所有栅格表列进行编目,提供关于栅格数据列的元信息。RASTER_OVERVIEWS视图同样对所有栅格表列进行编目,但它专门用于记录更细粒度表的概述的列。
773345baa12d4e37a0dbebe92f466650.png
79ca287dbab24cfdba3bc8d77b13cd33.png

2、普通表查询

SELECT * FROM "GEORASTERTEST"."TESTDEM2" WHERE filename like 'A01B001001%';

image.png

3、空间查询

使用SYSGEO2.DMGEO2和SYSRASTER.DMRASTER中矢量、栅格相关函数来进行数据转换查询。
562070946be04cf8a53a45fc15f9b3a8.png
6cd91450ffb64e3b9df66aeb0a70b049.png

常用函数包含(具体可查看空间数据文档介绍):
DMGEO2.ST_ASTEXT获取指定坐标经度的几何对象的WKT格式文本描述信息

select DMGEO2.ST_ASTEXT(Y."the_geom") from "GEORASTERTEST".YNXZQH y ;

52de559c97dc419aa4bcd86ccdaa4fc7.png
DMGEO2.ST_GeomFromText根据WKT信息和SRID信息构造空间数据基础类

select DMGEO2.ST_GEOMFROMTEXT('MultiPolygon (((163.36238253800001985 63.08191553300008536, 163.48069506500007719 63.06881381000005149, 163.47241827400000602 62.99407187800005659, 163.35410574700006237 63.00717360100003361, 163.36238253800001985 63.08191553300008536)))', 4326);

dfcaee0c8000470f95a3c080e832c720.png
DMGEO2.ST_Intersection获取几何对象的交集

select SYSGEO2.DMGEO2.ST_INTERSECTS(a."the_geom", b."the_geom")
from (select "the_geom" from "GEORASTERTEST".YNXZQH where XZBM='530100' ) a,
(select "the_geom" from "GEORASTERTEST".YNXZQH where XZBM='530111') b

99c1984bea8647469633bac70c79a9c0.png

DMRASTER.ST_Intersection获取栅格对象的交集

SELECT DMRASTER.ST_INTERSECTS("GEORASTERTEST"."TESTDEM2"."RAST", DMGEO2.ST_GEOMFROMTEXT('MultiPolygon (((163.36238253800001985 63.08191553300008536, 163.48069506500007719 63.06881381000005149, 163.47241827400000602 62.99407187800005659, 163.35410574700006237 63.00717360100003361, 163.36238253800001985 63.08191553300008536)))', 4326)) 
AS INTERSECTS, "rid", "RAST" FROM "GEORASTERTEST"."TESTDEM2" 
WHERE "GEORASTERTEST"."TESTDEM2"."FILENAME" like 'A01B001001%'

8a316a945eb94432b13b124348d3c04b.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服