转自:http://www.cdtarena.com/javapx/201307/9105.html

镶嵌数据集结合了之前arcgis管理影像的栅格目录和栅格数据集,为解决海量影像管理提供了很好的方案!
为什么要使用镶嵌数据集?
•可伸缩性海量影像管理 
•重叠影像管理
•管理离散数据集大量的空值区域
•多种传感器数据支持
•流畅的影像更新
•所有比例尺下无缝显示
•保留有价值的元数据信息
•动态处理减少处理时间
•减少冗余存储
•减少重采样,提升影像质量
开发代码使用java调用ArcEngine环境。
首先初始化AE运行环境

[java] view plaincopyprint?
01./** 
02.     * 初始化ArcgisEngine 
03.     */  
04.    public static void initializeAE() {  
05.        EngineInitializer.initializeVisualBeans();  
06.        EngineInitializer.initializeEngine();  
07.        try {  
08.            com.esri.arcgis.system.AoInitialize ao = new com.esri.arcgis.system.AoInitialize();  
09.            ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);  
10.            if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)  
11.                ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);  
12.            else  
13.                System.out.println("license failed");  
14.            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);
15.            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  
16.            ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  
17.            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);  
18.            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);  
19.            ao.initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);  
20.            ao.checkOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  
21.            System.out.println("arcgis初始化成功>>>...");  
22.        } catch (Exception e) {  
23.            e.printStackTrace();  
24.        }  
25.    }  
添加栅格影像到镶嵌数据集,本次测试的整个文件目录,存入镶嵌数据集

[java] view plaincopyprint?
01./** 
02.     * 添加镶嵌数据集栅格数据 
03.     * @param mosaicDataset 镶嵌数据集 
04.     * @param path 文件存储路径 
05.     */  
06.    public void addMosaicDataSet(String mosaicDataset, String path){  
07.        GeoProcessor geoprocessor;  
08.        try {  
09.            geoprocessor = new GeoProcessor();  
10.            geoprocessor.setOverwriteOutput(true);  
11.              
12.            AddRastersToMosaicDataset addMosaicDataSet = new AddRastersToMosaicDataset();  
13.            addMosaicDataSet.setInMosaicDataset(mosaicDataset);//1   
14.            addMosaicDataSet.setRasterType("Raster Dataset");//2   
15.            addMosaicDataSet.setInputPath(path);//待入库的文件目录   
16.            addMosaicDataSet.setFilter("*.tif");//匹配入镶嵌数据集中的文件类型   
17.            addMosaicDataSet.setUpdateOverviews("true");  
18.              
19.            /** ALLOW_DUPLICATES 全部添加 
20.             * EXCLUDE_DUPLICATES 只添加更新的 
21.             * OVERWRITE_DUPLICATES 重写以前添加的  
22.             * */  
23.            addMosaicDataSet.setDuplicateItemsAction("EXCLUDE_DUPLICATES");  
24.            GPTool pGPProcess = addMosaicDataSet;  
25.            geoprocessor.setOverwriteOutput(true);  
26.            //执行   
27.            geoprocessor.execute(pGPProcess, null);  
28.        } catch (UnknownHostException e) {  
29.            // TODO Auto-generated catch block   
30.            e.printStackTrace();  
31.        } catch (IOException e) {  
32.            // TODO Auto-generated catch block   
33.            e.printStackTrace();  
34.        }  
35.    }  
移除镶嵌数据中个别数据http://www.cdtarena.com/qrs.html

[java] view plaincopyprint?
01./** 
02. * 移除镶嵌数据集中的数据 
03. * @param mosaicDataset 镶嵌数据集 
04. * @param sql 删除命令  例如:name='004' 
05. *  
06. */  
07.public void remoMosaicDataSet (String mosaicDataset, String sql) {  
08.    GeoProcessor geoprocessor = null;  
09.    try {  
10.        geoprocessor = new GeoProcessor();  
11.        geoprocessor.setOverwriteOutput(true);  
12.          
13.        RemoveRastersFromMosaicDataset deleteFeatures = new RemoveRastersFromMosaicDataset();  
14.        deleteFeatures.setInMosaicDataset(mosaicDataset);  
15.        deleteFeatures.setWhereClause(sql);  
16.          
17.        GPTool pGPProcess = deleteFeatures;  
18.        geoprocessor.setOverwriteOutput(true);  
19.        //执行   
20.        geoprocessor.execute(pGPProcess, null);  
21.    } catch (AutomationException e) {  
22.        // TODO Auto-generated catch block   
23.        e.printStackTrace();  
24.    } catch (IOException e) {  
25.        // TODO Auto-generated catch block   
26.        e.printStackTrace();  
27.    }  
28.}  
构建金字塔

[java] view plaincopyprint?
01./** 
02.     * 创建金字塔 
03.     * @param mosaicDataset 镶嵌数据集路径 
04.     * @param whereSql 查询条件,wheresql可以为空 
05.     */  
06.    public void buildOverviewsMosaicDataSet (String mosaicDataset, String whereSql) {  
07.        GeoProcessor geoprocessor = null;  
08.        try {  
09.            geoprocessor = new GeoProcessor();//初始化gp工具   
10.            geoprocessor.setOverwriteOutput(true);  
11.              
12.            BuildOverviews buildPryramids = new BuildOverviews();  
13.            buildPryramids.setInMosaicDataset(mosaicDataset);  
14.            if (whereSql != null && whereSql.equals("") == false) {  
15.                buildPryramids.setWhereClause(whereSql);  
16.            }  
17.            GPTool pGPProcess = buildPryramids;  
18.            geoprocessor.setOverwriteOutput(true);  
19.            //执行   
20.            geoprocessor.execute(pGPProcess, null);  
21.            Constant.printLnData("切割金字塔成功 :"+pGPProcess.getParameterValues()[0]);  
22.        } catch (AutomationException e) {  
23.            // TODO Auto-generated catch block   
24.            e.printStackTrace();  
25.            Constant.printLnData("切割金字塔失败 " + e.getMessage());  
26.        } catch (IOException e) {  
27.            // TODO Auto-generated catch block   
28.            e.printStackTrace();  
29.            Constant.printLnData("切割金字塔失败 "+ e.getMessage());  
30.        }  
31.    }  
创建轮廓

[java] view plaincopyprint?
01./** 
02.     * 创建轮廓 
03.     * @param mosaicDataset 镶嵌数据集 
04.     */  
05.    public void buildFootprints (String mosaicDataset) {  
06.        GeoProcessor geoprocessor = null;  
07.        try {  
08.            geoprocessor = new GeoProcessor();  
09.            geoprocessor.setOverwriteOutput(true);  
10.  
11.            BuildFootprints buildPryramids = new BuildFootprints();  
12.            buildPryramids.setInMosaicDataset(mosaicDataset);  
13.              
14.            GPTool pGPProcess = buildPryramids;  
15.            geoprocessor.setOverwriteOutput(true);  
16.            //执行   
17.            geoprocessor.execute(pGPProcess, null);  
18.            Constant.printLnData("构建轮廓成功 :"+pGPProcess.getParameterValues()[0]);  
19.        } catch (AutomationException e) {  
20.            // TODO Auto-generated catch block   
21.            e.printStackTrace();  
22.            Constant.printLnData("构建轮廓失败" + e.getMessage());  
23.        } catch (IOException e) {  
24.            // TODO Auto-generated catch block   
25.            e.printStackTrace();  
26.            Constant.printLnData("构建轮廓失败"+ e.getMessage());  
27.        }  
28.    }  
/
上述就是基本操作代码。

Arcgis镶嵌数据集java代码操作的更多相关文章

  1. Java代码操作HDFS测试类

    1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...

  2. 使用java代码操作Redis

    1导入pom.xml依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis ...

  3. java代码操作Redis

    1.导入需要的pom依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEn ...

  4. Java代码操作zookeeper

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  5. 分享知识-快乐自己:java代码 操作 solr

    POM 文件: <!-- solr客户端 --> <dependency> <groupId>org.apache.solr</groupId> < ...

  6. 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)

    一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...

  7. java:nginx(java代码操作ftp服务器)

    1.检查是否安装了vsftpd [root@linux01 ~]# rpm -qa|grep vsftpd 2.安装vsftpd [root@linux01 ~]# yum -y install vs ...

  8. Java代码操作HDFS(在/user/root/下面創建目錄)

    1.创建HDFS目录并打成jar包 package Hdfs; import java.io.IOException; import java.net.URI; import org.apache.h ...

  9. kerberos下JAVA代码操作hbase的方式(客户端方式,应用程序方式)

    (一)如果部署JAVA 代码的主机用户获取了kerberos权限情况下 假设主机名是:client su - client 登录主机后 kinit -kt /keytab的路径/client.keyt ...

随机推荐

  1. uva Stacks of Flapjacks

                                                     Stacks of Flapjacks  题目链接:Click Here~ 题目描写叙述:     ...

  2. Extending your SharePoint 2007 site with Microsoft ASP.NET AJAX 3.5

    After ASP.NET 3.5 has been installed you need to modify the web.config file of your MOSS web site wi ...

  3. gcc代码反汇编查看内存分布[1]: gcc

    # gcc -vgcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) 重点: 代码中的内存分配, 地址从低到高: 代码段(RO, 保存函数代码) --&g ...

  4. UrlEncode编码/UrlDecode解码

    public class encode {    public static void main(String[] args) throws UnsupportedEncodingException ...

  5. jquery自定义分页插件

    //每次只显示5个页码(function ($) { //设定页码方法,初始化 $.fn.setPager = function (options) { var opts = $.extend({}, ...

  6. struts2的坑以及tomcat的一些常识

    Struts2中坑 1:一个很简单的跳转,死活跳不过去,总是404,那这个时候可以把struts.xml这个配置文件用IE浏览器打开,如果能够正常打开,那么说明struts.xml文件本身没有语法错误 ...

  7. python成长之路10

    断点续传   python2.7 多继承  py35多继承   socketserver源码     支持并发处理socket   i/o多路复用   上节回顾     socket          ...

  8. Vmware虚拟机网络模式及虚拟机与物理机通信方法

    [转]http://www.cqeis.com/news_detail/newsId=1477.html Vmware虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Wind ...

  9. 【Java】:多线程下载

    import java.io.InputStream; import java.io.RandomAccessFile; import java.net.URL; import java.net.UR ...

  10. 关于异或(Xor)的一点笔记

    因为博弈论里,尤其实在求sg函数时,经常会用到异或运算,所以我就把网上搜到的一些相关知识和自己的一些理解记下来. 如果出现差错,还请指出,谢谢! 异或:可以简称Xor,可以用数学符号⊕表示,计算机就一 ...