@Override public void initialize() { validateSourceProducts(); if (StringHelper.isNullOrEmpty(this.landCoverName)) { throw new OperatorException("No land cover name specified."); } if (StringHelper.isNullOrEmpty(this.landCoverMapIndices)) { throw new OperatorException("No land cover map indices specified."); } this.currentProductBandsNames = findBandNames(this.currentSourceProduct); this.previousProductBandsNames = findBandNames(this.previousSourceProduct); int sceneWidth = this.currentSourceProduct.getSceneRasterWidth(); int sceneHeight = this.currentSourceProduct.getSceneRasterHeight(); Dimension tileSize = JAI.getDefaultTileSize(); this.targetProduct = new Product("ForestCoverChange", this.currentSourceProduct.getProductType(), sceneWidth, sceneHeight); this.targetProduct.setPreferredTileSize(tileSize); ProductUtils.copyGeoCoding(this.currentSourceProduct, this.targetProduct); Band targetBand = new Band("band_1", ProductData.TYPE_INT32, sceneWidth, sceneHeight); this.targetProduct.addBand(targetBand); this.threadCount = Runtime.getRuntime().availableProcessors() - 1; this.threadPool = Executors.newCachedThreadPool(); }