@Test public void testConfigureTargetProduct_withMphBand() { final TestProductConfigurer productConfigurer = new TestProductConfigurer(); mphChlOp.exportMph = true; mphChlOp.configureTargetProduct(productConfigurer); final Product targetProduct = productConfigurer.getTargetProduct(); assertNotNull(targetProduct); final Band mphBand = targetProduct.getBand("mph"); assertNotNull(mphBand); assertEquals(ProductData.TYPE_FLOAT32, mphBand.getDataType()); assertEquals("dl", mphBand.getUnit()); assertEquals(Double.NaN, mphBand.getGeophysicalNoDataValue(), 1e-8); }
@Override protected void configureTargetProduct(ProductConfigurer productConfigurer) { final Band chlBand = productConfigurer.addBand("chl", ProductData.TYPE_FLOAT32); chlBand.setUnit("mg/m^3"); chlBand.setGeophysicalNoDataValue(Double.NaN); chlBand.setNoDataValue(Double.NaN); chlBand.setNoDataValueUsed(true); final Band immersedCyanoBand = productConfigurer.addBand("immersed_cyanobacteria", ProductData.TYPE_INT8); immersedCyanoBand.setNoDataValue(0); immersedCyanoBand.setNoDataValueUsed(true); productConfigurer.addBand("floating_cyanobacteria", ProductData.TYPE_INT8); productConfigurer.addBand("floating_vegetation", ProductData.TYPE_INT8); if (exportMph) { final Band mphBand = productConfigurer.addBand("mph", ProductData.TYPE_FLOAT32); mphBand.setUnit("dl"); mphBand.setGeophysicalNoDataValue(Double.NaN); mphBand.setNoDataValue(Double.NaN); mphBand.setNoDataValueUsed(true); } final Band flagBand = productConfigurer.addBand("mph_chl_flags", ProductData.TYPE_INT8); super.configureTargetProduct(productConfigurer); final Product targetProduct = productConfigurer.getTargetProduct(); final FlagCoding flagCoding = MphChlUtils.createMphChlFlagCoding("mph_chl_flags"); targetProduct.getFlagCodingGroup().add(flagCoding); flagBand.setSampleCoding(flagCoding); MphChlUtils.setupMphChlBitmask(targetProduct); final Product sourceProduct = productConfigurer.getSourceProduct(); ProductUtils.copyFlagBands(sourceProduct, targetProduct, true); }
MphChlBasisOp extends PixelOperator { @Override protected void configureTargetProduct(ProductConfigurer productConfigurer) { final Band chlBand = productConfigurer.addBand("chl", ProductData.TYPE_FLOAT32); chlBand.setUnit("mg/m^3"); chlBand.setGeophysicalNoDataValue(Double.NaN); chlBand.setNoDataValue(Double.NaN); chlBand.setNoDataValueUsed(true); final Band immersedCyanoBand = productConfigurer.addBand("immersed_cyanobacteria", ProductData.TYPE_INT8); immersedCyanoBand.setNoDataValue(0); immersedCyanoBand.setNoDataValueUsed(true); productConfigurer.addBand("floating_cyanobacteria", ProductData.TYPE_INT8); productConfigurer.addBand("floating_vegetation", ProductData.TYPE_INT8); if (exportMph) { final Band mphBand = productConfigurer.addBand("mph", ProductData.TYPE_FLOAT32); mphBand.setUnit("dl"); mphBand.setGeophysicalNoDataValue(Double.NaN); mphBand.setNoDataValue(Double.NaN); mphBand.setNoDataValueUsed(true); } final Band flagBand = productConfigurer.addBand("mph_chl_flags", ProductData.TYPE_INT8); super.configureTargetProduct(productConfigurer); final Product targetProduct = productConfigurer.getTargetProduct(); final FlagCoding flagCoding = MphChlUtils.createMphChlFlagCoding("mph_chl_flags"); targetProduct.getFlagCodingGroup().add(flagCoding); flagBand.setSampleCoding(flagCoding); MphChlUtils.setupMphChlBitmask(targetProduct); final Product sourceProduct = productConfigurer.getSourceProduct(); ProductUtils.copyFlagBands(sourceProduct, targetProduct, true); } }
MphChlBasisOp extends PixelOperator { @Override protected void configureTargetProduct(ProductConfigurer productConfigurer) { final Band chlBand = productConfigurer.addBand("chl", ProductData.TYPE_FLOAT32); chlBand.setUnit("mg/m^3"); chlBand.setGeophysicalNoDataValue(Double.NaN); chlBand.setNoDataValue(Double.NaN); chlBand.setNoDataValueUsed(true); final Band immersedCyanoBand = productConfigurer.addBand("immersed_cyanobacteria", ProductData.TYPE_INT8); immersedCyanoBand.setNoDataValue(0); immersedCyanoBand.setNoDataValueUsed(true); productConfigurer.addBand("floating_cyanobacteria", ProductData.TYPE_INT8); productConfigurer.addBand("floating_vegetation", ProductData.TYPE_INT8); if (exportMph) { final Band mphBand = productConfigurer.addBand("mph", ProductData.TYPE_FLOAT32); mphBand.setUnit("dl"); mphBand.setGeophysicalNoDataValue(Double.NaN); mphBand.setNoDataValue(Double.NaN); mphBand.setNoDataValueUsed(true); } final Band flagBand = productConfigurer.addBand("mph_chl_flags", ProductData.TYPE_INT8); super.configureTargetProduct(productConfigurer); final Product targetProduct = productConfigurer.getTargetProduct(); final FlagCoding flagCoding = MphChlUtils.createMphChlFlagCoding("mph_chl_flags"); targetProduct.getFlagCodingGroup().add(flagCoding); flagBand.setSampleCoding(flagCoding); MphChlUtils.setupMphChlBitmask(targetProduct); final Product sourceProduct = productConfigurer.getSourceProduct(); ProductUtils.copyFlagBands(sourceProduct, targetProduct, true); }  }
MphChlBasisOp extends PixelOperator { @Override protected void configureTargetProduct(ProductConfigurer productConfigurer) { final Band chlBand = productConfigurer.addBand("chl", ProductData.TYPE_FLOAT32); chlBand.setUnit("mg/m^3"); chlBand.setGeophysicalNoDataValue(Double.NaN); chlBand.setNoDataValue(Double.NaN); chlBand.setNoDataValueUsed(true); final Band immersedCyanoBand = productConfigurer.addBand("immersed_cyanobacteria", ProductData.TYPE_INT8); immersedCyanoBand.setNoDataValue(0); immersedCyanoBand.setNoDataValueUsed(true); productConfigurer.addBand("floating_cyanobacteria", ProductData.TYPE_INT8); productConfigurer.addBand("floating_vegetation", ProductData.TYPE_INT8); if (exportMph) { final Band mphBand = productConfigurer.addBand("mph", ProductData.TYPE_FLOAT32); mphBand.setUnit("dl"); mphBand.setGeophysicalNoDataValue(Double.NaN); mphBand.setNoDataValue(Double.NaN); mphBand.setNoDataValueUsed(true); } final Band flagBand = productConfigurer.addBand("mph_chl_flags", ProductData.TYPE_INT8); super.configureTargetProduct(productConfigurer); final Product targetProduct = productConfigurer.getTargetProduct(); final FlagCoding flagCoding = MphChlUtils.createMphChlFlagCoding("mph_chl_flags"); targetProduct.getFlagCodingGroup().add(flagCoding); flagBand.setSampleCoding(flagCoding); MphChlUtils.setupMphChlBitmask(targetProduct); final Product sourceProduct = productConfigurer.getSourceProduct(); ProductUtils.copyFlagBands(sourceProduct, targetProduct, true); }   }
MphChlBasisOp extends PixelOperator { @Override protected void configureTargetProduct(ProductConfigurer productConfigurer) { final Band chlBand = productConfigurer.addBand("chl", ProductData.TYPE_FLOAT32); chlBand.setUnit("mg/m^3"); chlBand.setGeophysicalNoDataValue(Double.NaN); chlBand.setNoDataValue(Double.NaN); chlBand.setNoDataValueUsed(true); final Band immersedCyanoBand = productConfigurer.addBand("immersed_cyanobacteria", ProductData.TYPE_INT8); immersedCyanoBand.setNoDataValue(0); immersedCyanoBand.setNoDataValueUsed(true); productConfigurer.addBand("floating_cyanobacteria", ProductData.TYPE_INT8); productConfigurer.addBand("floating_vegetation", ProductData.TYPE_INT8); if (exportMph) { final Band mphBand = productConfigurer.addBand("mph", ProductData.TYPE_FLOAT32); mphBand.setUnit("dl"); mphBand.setGeophysicalNoDataValue(Double.NaN); mphBand.setNoDataValue(Double.NaN); mphBand.setNoDataValueUsed(true); } final Band flagBand = productConfigurer.addBand("mph_chl_flags", ProductData.TYPE_INT8); super.configureTargetProduct(productConfigurer); final Product targetProduct = productConfigurer.getTargetProduct(); final FlagCoding flagCoding = MphChlUtils.createMphChlFlagCoding("mph_chl_flags"); targetProduct.getFlagCodingGroup().add(flagCoding); flagBand.setSampleCoding(flagCoding); MphChlUtils.setupMphChlBitmask(targetProduct); final Product sourceProduct = productConfigurer.getSourceProduct(); ProductUtils.copyFlagBands(sourceProduct, targetProduct, true); }    }