转自: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. CRC32 vs Java.HashCode

    找了容量为27万中文词库进行试验    CRC32 中冲突率 < 0.01%    而 Java.HashCode 有 4%    hashCode 的速度 应该比 CRC 快 2-3 倍 CR ...

  2. poj 2263&& zoj1952 floyd

    Fiber Network Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2725   Accepted: 1252 Des ...

  3. asp.NET配置

    添加用户 1.选择创建用户   2 可以使用网站管理工具来管理应用程序的所有安全设置.可以设置用户和密码(身份验证),可以创建角色(用户组),还可以创建权限(用于控制对应用程序各个部分的访问的规则). ...

  4. [Asp.net]常见word,excel,ppt,pdf在线预览方案(转)

    引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询. 方案一 直接在浏览器中打开Office文档在页面上的链接.会弹出如下窗口: 优点:主流浏览器都支持. 缺点: ...

  5. IOS开发:UIAlertView使用

    链接地址:http://www.2cto.com/kf/201307/231841.html UIAlertView是什么就不介绍了 1.基本用法 1 UIAlertView *view = [[UI ...

  6. Java 操作mongodb

    package cn.test.db; import java.io.File; import java.io.IOException; import java.net.UnknownHostExce ...

  7. .net 中实现php rawurlencode方法(RFC3986)

    在对接api时候,经常需要对字符串进行各种编码处理,系统可能是异构的,实现语言也就可能是不一样的.所以经常会使人犯一些2B的错误! 比如:php实现的api中用了rawurlencode,文档中写,需 ...

  8. python第二步,类对象部分

    类创建: class 类名: '类说明' def __init__ (self,参数):#类似php类的构造函数,self不知道什么东东 方法体 实例创建: 变量名 = 类名() #构造函数后的参数, ...

  9. Code 16K 码

    Code 16K 码是一种多层.连续型.可变长度的条码符号,可以表示全ASCII字符集的128个字符及扩展ASCII字符.它采用UPC及Code128字符.一个16层的Code 16K符号,可以表示7 ...

  10. [置顶] 我的GB28181标准开发里程碑——基于eXosip的IPC端与SPVMN注册成功

    昨天编译搭建好eXosip的开发环境后,今天完成了SIP注册功能,里程碑一战啊!加油加油,成功就在眼前! 今天基于eXosip做了一个IPC客户端,成功与公安部的SPVMN视频监控联网调测软件自测工具 ...