前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle GeoRaster的初步使用--遥感影像数据导入与导出

Oracle GeoRaster的初步使用--遥感影像数据导入与导出

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 11:10:14
6850
发布2019-01-22 11:10:14
举报

1. 首先创建一个GeoRaster的表,这是一个普通的二维表。该表中存储了SDO_GEORASTER对象。

2. 创建一个GeoRaster Data Table表,该表实际存储影像数据的表,以Block划分的方式进行存储。

3. 创建一个SDO_GEOR.INIT()方法初始化SDO_GEORASTER对象,并将数据导入。

下面贴出来SQL代码:

代码语言:javascript
复制
--创建一个自增的ID序列
CREATE SEQUENCE image_id_seq
	increment by 1
	start with 1
	nomaxvalue
	minvalue 1
	NOCYCLE;

--创建GeoRaster表(GeoRaster表就是带有SDO_GEORASTER类型列的表)
CREATE TABLE world_image(
	id NUMBER PRIMARY KEY,
	name VARCHAR(30),
	image SDO_GEORASTER
);

--创建一个自增的触发器
CREATE OR REPLACE TRIGGER image_id_trig
	BEFORE INSERT ON world_image
	FOR EACH ROW
	BEGIN
		SELECT image_id_seq.nextval INTO :new.id FROM dual;
	END;
/	
	
--创建GeoRaster Data Table(RDT)表用来存储GeoRaste影像数据
CREATE TABLE world_image_rdt OF SDO_RASTER
(
	PRIMARY KEY(RASTERID, PYRAMIDLEVEL, BANDBLOCKNUMBER, ROWBLOCKNUMBER, COLUMNBLOCKNUMBER)
)
LOB(RASTERBLOCK) STORE AS (NOCACHE NOLOGGING);

--插入GeoRaster表一条记录(初始化GeoRaster对象)
INSERT INTO world_image (name, image) VALUES ('earth', SDO_GEOR.INIT('WORLD_IMAGE_RDT'));

--获取文件读的权限(SCOTT和MDSYS用户都要获得读权限)
call dbms_java.grant_permission('MDSYS','SYS:java.io.FilePermission', '/home/oracle/images/earth.tif', 'read');
call dbms_java.grant_permission('SCOTT','SYS:java.io.FilePermission', '/home/oracle/images/earth.tif', 'read');
--导入遥感影像数据到GeoRaster Data Table表中
DECLARE
	img SDO_GEORASTER;
BEGIN
	--Select the georater column
	SELECT image INTO img FROM world_image WHERE name='earth' FOR UPDATE;
	--Import into the georater object
	SDO_GEOR.IMPORTFROM(img, 'blocksize=(512, 512)', 'TIFF', 'file', '/home/oracle/images/earth.tif');
	--update the column
	UPDATE world_image SET image=img WHERE name='earth';
	COMMIT;
END;
/

--获取文件写的权限
call dbms_java.grant_permission('MDSYS','SYS:java.io.FilePermission', '/home/oracle/images/earth_ex.tif', 'write');
call dbms_java.grant_permission('SCOTT','SYS:java.io.FilePermission', '/home/oracle/images/earth_ex.tif', 'write');

--导出遥感影像数据
DECLARE
	img SDO_GEORASTER;
BEGIN
	SELECT image INTO img FROM world_image WHERE name='earth';
	SDO_GEOR.EXPORTTO(img, NULL, 'TIFF', 'file', '/home/oracle/images/earth_ex');
END;
/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年11月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档