arcgis java呼叫AE多波段合成實現

arcgis java呼叫AE多波段合成實現

一般條件下運營商提供的影像都是分波段檔案提供的,無法展現影像的顏色效果,通過arcgis提供的波段合成功能達到影像彩色。

通過java呼叫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);
else
System.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("AE初始化成功");
} catch (Exception e) {
e.printStackTrace();
}
}

程式碼多波段合成

public void compositeBands (String  inPath , String outPath ) {
CompositeBands compositeBands = new CompositeBands();
compositeBands.setInRasters(inPath);
compositeBands.setOutRaster(outPath);
GeoProcessor geoprocessor;
GPTool pGPProcess = compositeBands;
try {
geoprocessor = new GeoProcessor();
geoprocessor.setOverwriteOutput(true);
geoprocessor.execute(pGPProcess, null);
} catch (IOException e) {
e.printStackTrace();
}
}

程式碼執行呼叫

RastersToMosaicDataset.initializeAE();
RastersToMosaicDataset add = new RastersToMosaicDataset();
String arrys = "D:\\HJ1A-CCD1-7-116-20130707-L20001018860\\1018860\\HJ1A-CCD1-7-116-20130707-L20001018860-1.TIF;D:\\HJ1A-CCD1-7-116-20130707-L20001018860\\1018860\\HJ1A-CCD1-7-116-20130707-L20001018860-2.TIF;D:\\HJ1A-CCD1-7-116-20130707-L20001018860\\1018860\\HJ1A-CCD1-7-116-20130707-L20001018860-3.TIF;D:\\HJ1A-CCD1-7-116-20130707-L20001018860\\1018860\\HJ1A-CCD1-7-116-20130707-L20001018860-4.TIF";
add.compositeBands(arrys, "D:\\HJ1A-CCD1-7-116-20130707-L20001018860\\1018860\\HJ1A-CCD1-7-116-20130707-L20001018860-all.TIF");

效果圖: