Arcgis镶嵌数据集java代码操作
来源:互联网 发布:2016年人口老龄化数据 编辑:程序博客网 时间:2024/05/18 01:36
镶嵌数据集结合了之前arcgis管理影像的栅格目录和栅格数据集,为解决海量影像管理提供了很好的方案!
为什么要使用镶嵌数据集?
- 可伸缩性海量影像管理
- 重叠影像管理
- 管理离散数据集大量的空值区域
- 多种传感器数据支持
- 流畅的影像更新
- 所有比例尺下无缝显示
- 保留有价值的元数据信息
- 动态处理减少处理时间
- 减少冗余存储
- 减少重采样,提升影像质量
开发代码使用java调用ArcEngine环境。
首先初始化AE运行环境
/** * 初始化ArcgisEngine */public static void initializeAE() {EngineInitializer.initializeVisualBeans();EngineInitializer.initializeEngine();try {com.esri.arcgis.system.AoInitialize ao = new com.esri.arcgis.system.AoInitialize();ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);if (ao.isProductCodeAvailable(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo) == com.esri.arcgis.system.esriLicenseStatus.esriLicenseAvailable)ao.initialize(com.esri.arcgis.system.esriLicenseProductCode.esriLicenseProductCodeArcInfo);elseSystem.out.println("license failed");ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);ao.checkOutExtension(com.esri.arcgis.system.esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);ao.initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);ao.initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);ao.checkOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);System.out.println("arcgis初始化成功>>>...");} catch (Exception e) {e.printStackTrace();}}
添加栅格影像到镶嵌数据集,本次测试的整个文件目录,存入镶嵌数据集
/** * 添加镶嵌数据集栅格数据 * @param mosaicDataset 镶嵌数据集 * @param path 文件存储路径 */public void addMosaicDataSet(String mosaicDataset, String path){GeoProcessor geoprocessor;try {geoprocessor = new GeoProcessor();geoprocessor.setOverwriteOutput(true);AddRastersToMosaicDataset addMosaicDataSet = new AddRastersToMosaicDataset();addMosaicDataSet.setInMosaicDataset(mosaicDataset);//1addMosaicDataSet.setRasterType("Raster Dataset");//2addMosaicDataSet.setInputPath(path);//待入库的文件目录addMosaicDataSet.setFilter("*.tif");//匹配入镶嵌数据集中的文件类型addMosaicDataSet.setUpdateOverviews("true");/** ALLOW_DUPLICATES 全部添加 * EXCLUDE_DUPLICATES 只添加更新的 * OVERWRITE_DUPLICATES 重写以前添加的 * */addMosaicDataSet.setDuplicateItemsAction("EXCLUDE_DUPLICATES");GPTool pGPProcess = addMosaicDataSet;geoprocessor.setOverwriteOutput(true);//执行geoprocessor.execute(pGPProcess, null);} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
移除镶嵌数据中个别数据
/** * 移除镶嵌数据集中的数据 * @param mosaicDataset 镶嵌数据集 * @param sql 删除命令 例如:name='004' * */public void remoMosaicDataSet (String mosaicDataset, String sql) {GeoProcessor geoprocessor = null;try {geoprocessor = new GeoProcessor();geoprocessor.setOverwriteOutput(true);RemoveRastersFromMosaicDataset deleteFeatures = new RemoveRastersFromMosaicDataset();deleteFeatures.setInMosaicDataset(mosaicDataset);deleteFeatures.setWhereClause(sql);GPTool pGPProcess = deleteFeatures;geoprocessor.setOverwriteOutput(true);//执行geoprocessor.execute(pGPProcess, null);} catch (AutomationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
构建金字塔
/** * 创建金字塔 * @param mosaicDataset 镶嵌数据集路径 * @param whereSql 查询条件,wheresql可以为空 */public void buildOverviewsMosaicDataSet (String mosaicDataset, String whereSql) {GeoProcessor geoprocessor = null;try {geoprocessor = new GeoProcessor();//初始化gp工具geoprocessor.setOverwriteOutput(true);BuildOverviews buildPryramids = new BuildOverviews();buildPryramids.setInMosaicDataset(mosaicDataset);if (whereSql != null && whereSql.equals("") == false) {buildPryramids.setWhereClause(whereSql);}GPTool pGPProcess = buildPryramids;geoprocessor.setOverwriteOutput(true);//执行geoprocessor.execute(pGPProcess, null);Constant.printLnData("切割金字塔成功 :"+pGPProcess.getParameterValues()[0]);} catch (AutomationException e) {// TODO Auto-generated catch blocke.printStackTrace();Constant.printLnData("切割金字塔失败 " + e.getMessage());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();Constant.printLnData("切割金字塔失败 "+ e.getMessage());}}
创建轮廓
/** * 创建轮廓 * @param mosaicDataset 镶嵌数据集 */public void buildFootprints (String mosaicDataset) {GeoProcessor geoprocessor = null;try {geoprocessor = new GeoProcessor();geoprocessor.setOverwriteOutput(true);BuildFootprints buildPryramids = new BuildFootprints();buildPryramids.setInMosaicDataset(mosaicDataset);GPTool pGPProcess = buildPryramids;geoprocessor.setOverwriteOutput(true);//执行geoprocessor.execute(pGPProcess, null);Constant.printLnData("构建轮廓成功 :"+pGPProcess.getParameterValues()[0]);} catch (AutomationException e) {// TODO Auto-generated catch blocke.printStackTrace();Constant.printLnData("构建轮廓失败" + e.getMessage());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();Constant.printLnData("构建轮廓失败"+ e.getMessage());}}
上述就是基本操作代码。
- Arcgis镶嵌数据集java代码操作
- Arcgis镶嵌数据集java代码操作
- 镶嵌数据集操作
- 【技术类】ArcGIS影像技术之镶嵌数据集概览
- arcgis镶嵌数据集处理黑色成Nodata
- ArcGIS影像技术之镶嵌数据集概览
- ArcGIS教程:对镶嵌数据集进行色彩平衡
- ArcGIS影像技术之镶嵌数据集概览
- 镶嵌数据集的基本操作
- 【技术类】【且听我说“镶嵌数据集”】6、镶嵌数据集操作
- 小白自总结【DEM】DEM数据的下载和ArcGIS下创建镶嵌数据集
- 基于ArcGIS镶嵌数据集的环境数据存储与管理
- arcengine镶嵌数据集的基本操作(C#)
- 【技术类】【且听我说“镶嵌数据集”】1、ArcGIS影像数据管理
- 镶嵌数据集Mosaic Dataset
- 镶嵌数据集创建、入库
- 镶嵌数据集常见问题处理方法
- 镶嵌数据集发布为ImageService服务
- mysql5.1.52主从脚本(master-myisam,slave-myisam)
- 好的学习网站,设计类、网站类、编程类
- centos6 编译 安装 vlc
- Oracle日志文件管理与查看
- mysql主从复制中的几个DB
- Arcgis镶嵌数据集java代码操作
- Ant打包war文件
- Linq to sql 调用
- android第二天--hello world 以及2013.6.21一天工作
- 整合Ant
- mysql5.1多实例+主从配置脚本--基于MYISAM
- 网页选项卡标题前显示图标
- linux下mysql配置文件my.cnf
- Android提高启动速度的实现方法