本文主要栅格数据入达梦数据库,并能进行栅格、矢量数据查询操作
1、安装包准备+空间数据库依赖的第三方库(spatial)
2、raster2dmsql栅格数据入库工具
3、需要入库的TIFF文件
详见达梦官方文档:https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html
将spatial包解压放入达梦数据库安装目录的bin目录下,并重启数据库实例
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);
create user GEORASTERTEST identified by “Dameng123”;
解压入库工具的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/目录中
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
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。
disql GEORASTERTEST/Dameng123@localhost:5236 \`/home/dmdba/sql/testtif.sql
disql GEORASTERTEST/Dameng123@localhost:5236 \`/home/dmdba/sql/testtif_data.sql
select count(1) from “GEORASTERTEST”.“TESTTIF”;
SYSRASTER.RASTER_COLUMNS和SYSRASTER.RASTER_OVERVIEWS。其中RASTER_COLUMNS视图用于对数据库中所有栅格表列进行编目,提供关于栅格数据列的元信息。RASTER_OVERVIEWS视图同样对所有栅格表列进行编目,但它专门用于记录更细粒度表的概述的列。
SELECT * FROM "GEORASTERTEST"."TESTDEM2" WHERE filename like 'A01B001001%';
使用SYSGEO2.DMGEO2和SYSRASTER.DMRASTER中矢量、栅格相关函数来进行数据转换查询。
常用函数包含(具体可查看空间数据文档介绍):
DMGEO2.ST_ASTEXT获取指定坐标经度的几何对象的WKT格式文本描述信息
select DMGEO2.ST_ASTEXT(Y."the_geom") from "GEORASTERTEST".YNXZQH y ;
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);
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
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%'
文章
阅读量
获赞
