看了几天Oracle的英文文档都要吐了,网上资源也少得出奇,总算是皇天不负有心人,至少结果还是出来了。
环境:windows 7 64位,Oracle 12.0.1.2.0(下载地址),GeoRasterETL工具(下载地址),GeoRasterViewer(下载地址)
我的安装顺序:Oracle 12.0.1.2.0->GeoRasterETL工具->GeoRasterViewer;
Oracle 12c的安装教程网上很多,不再赘述,Oracle Spatial在Oracle安装时已经安装好了,不需要另行安装,GeoRasterViewer安装也很简单,点击里面的setup.exe即可。
提一下GeoRasterETL工具安装,我安装好了Oracle后直接点击startGeoRasterETL.bat无效,之后我查看了文档、资料、书籍,应该是环境变量classpath没有设置的问题(如何为classpath添加环境变量请自行搜索),我加的环境变量如下:
%ORACLE_HOME%\ord\jlib\jai_codec.jar;
%ORACLE_HOME%\ord\jlib\jai_core.jar;
%ORACLE_HOME%\RDBMS\jlib\xdb.jar;
%ORACLE_HOME%\LIB\xmlparserv2.jar;
%ORACLE_HOME%\LIB\xmlcomp.jar;
%ORACLE_HOME%\LIB\xschema.jar;
%ORACLE_HOME%\jlib\jewt4.jar;
%ORACLE_HOME%\md\jlib\sdoapi.jar;
%ORACLE_HOME%\md\jlib\sdoutl.jar;
%ORACLE_HOME%\oui\jlib\classes12.jar;
%ORACLE_HOME%\md\jlib\georasterapi.jar;
我不知道是不是以上每个都必须加,因为这步我也不是很清楚,但的确是这么做的,加完之后可能需要重启电脑才能生效,之后点击startGeoRasterETL.bat会出现以下界面就对了
以上都是安装软件问题,下面步入正题
1.新建表
打开cmd.exe,输入“sqlplus <用户名>/<密码>@<数据库>”登陆
如果要在GeoRaster中导入栅格数据首先要在数据库中建立一个GeoRaster Table,一个普通的二维表。
CREATE TABLE world_image(
GEORID NUMBER PRIMARY KEY,
DESCRIPTION VARCHAR2(50),
IMAGE SDO_GEORASTER
);
具体怎么解释又要扯很远,大家知道依次序是设置id,描述,影像即可,后面我们在GeoRasterETL工具中也会看到他们。打开你的SQL Developer并连接进数据库就能看到你新建的表了:
2.使用GeoRasterETL批量导入栅格数据
其实这一步在下载包的“georaster_etl_user_guide.pdf”里面,大家最好看看,文档比较简短也好理解。该步骤也可以用代码导入,不过对大量数据比较麻烦。
首先在Current bath file的‘Select’下选择‘New’新建一个文件,默认为load.xml,其次是选择要导入的数据了,在Add raster file的‘Select’下选择任意一种方式导入数据。之后看右下的选项板,Table下拉选项就有我们上一步建的表,以及下方的三个Columns,我们来填这三个Values,如图:
这里解释一下,‘%201%’是将导入的数据从201开始设置id,‘%filename%’是将该数据的描述等同于该数据的名称,最后一个是初始化。
接着点击‘Apply’后点击下一步就可以静等导入结束,同样我们可以在SQL Developer中查看是否已经导入。
3.GeoRasterViewer查看数据
在上一步已经确定导入成功的情况下,我们如果要对数据进行可视化就使用该工具。
点击startGeoRasterViewer.bat启动,选择菜单栏的‘Retrieve from DB‘建立数据库的连接,之后找到导入数据的表和栅格数据即可,如图:
这里有一个可能出现的问题,就是当你点击任意一个影像栅格数据显示“Can’t retrieve GeoRaster object from DB”错误,如果从该工具导入影像又会出现“java.sql.SQLException:不支持的字符集(在类路径中添加orai18n.jar):ZHS16GBK”错误。
其实关键就是orai18n.jar这个文件,我们必须将其引入进去,该引入不是在环境变量处引入,而是在.bat文件中修改。右键该.bat文件选择’编辑‘,在文件中加入一句话:
set JARS=%JARS%;%ORACLE_HOME%\jlib\orai18n.jar
如图:
之后重新进入GeoRasterViewer即可。
最后总结一句:虽然很辛苦,但的确学到了很多以前不知道的知识,网络上关于GeoRaster的比较少,大家一起分享!