private static String getPolarCase(final Product srcProduct) { final PolBandUtils.MATRIX matrixType = PolBandUtils.getSourceProductType(srcProduct); if (matrixType.equals(PolBandUtils.MATRIX.C4) || matrixType.equals(PolBandUtils.MATRIX.T4)) { return "bistatic"; } return "monostatic"; }
return getDualPolSrcBands(srcProduct, getComplexBandNames()); } else if (sourceProductType == MATRIX.DUAL_VH_VV) { // dual VH VV return getDualPolSrcBands(srcProduct, getComplexBandNames()); } else if (sourceProductType == MATRIX.DUAL_HH_VV) { // dual HH VV return getDualPolSrcBands(srcProduct, getComplexBandNames()); }else if (sourceProductType == MATRIX.FULL) { // full pol return getQuadPolSrcBands(srcProduct, bandNames); } else if (sourceProductType == MATRIX.C3) { // C3 return getProductBands(srcProduct, bandNames, getC3BandNames()); } else if (sourceProductType == MATRIX.T3) { // T3 return getProductBands(srcProduct, bandNames, getT3BandNames()); } else if (sourceProductType == MATRIX.C4) { return getProductBands(srcProduct, bandNames, getC4BandNames()); } else if (sourceProductType == MATRIX.T4) { return getProductBands(srcProduct, bandNames, getT4BandNames()); } else if (sourceProductType == MATRIX.C2) { // compact pol C2 return getProductBands(srcProduct, bandNames, getC2BandNames()); } else if (sourceProductType == MATRIX.LCHCP) { // LCH compact pol S2 return getProductBands(srcProduct, bandNames, getLCHModeS2BandNames()); } else if (sourceProductType == MATRIX.RCHCP) { // RCH compact pol S2 return getProductBands(srcProduct, bandNames, getRCHModeS2BandNames());
private void addSelectedBands() throws OperatorException { String[] bandNames = null; boolean copyInputBands = false; if (sourceProductType == PolBandUtils.MATRIX.FULL) { bandNames = PolBandUtils.getT3BandNames(); } else if (PolBandUtils.isDualPol(sourceProductType)) { bandNames = PolBandUtils.getC2BandNames(); } else { copyInputBands = true; } for (PolBandUtils.PolSourceBand bandList : srcBandList) { String suffix = bandList.suffix; if (copyInputBands) { bandNames = new String[bandList.srcBands.length]; int i = 0; for (Band band : bandList.srcBands) { bandNames[i++] = band.getName(); } suffix = ""; } final Band[] targetBands = OperatorUtils.addBands(targetProduct, bandNames, suffix); bandList.addTargetBands(targetBands); } }
case C2: bandNames = PolBandUtils.getC2BandNames(); matrixType = PolBandUtils.MATRIX.C2; case C3: bandNames = PolBandUtils.getC3BandNames(); matrixType = PolBandUtils.MATRIX.C3; case C4: bandNames = PolBandUtils.getC4BandNames(); matrixType = PolBandUtils.MATRIX.C4; case T3: bandNames = PolBandUtils.getT3BandNames(); matrixType = PolBandUtils.MATRIX.T3; case T4: bandNames = PolBandUtils.getT4BandNames(); matrixType = PolBandUtils.MATRIX.T4; bandList.addTargetBands(targetBands);
/** * Add C2 or S2 bands to the target product. * * @throws OperatorException The exception. */ private void addSelectedBands() throws OperatorException { if (sourceProductType != PolBandUtils.MATRIX.FULL) { throw new OperatorException("Full polarimetric product is expected."); } String[] bandNames = null; if (outputFormat.equals(C2)) { bandNames = PolBandUtils.getC2BandNames(); addBands(bandNames); mapMatrixElemToBandsC2(); } else { if (compactMode.equals(CompactPolProcessor.lch)) { bandNames = PolBandUtils.getLCHModeS2BandNames(); } else { bandNames = PolBandUtils.getRCHModeS2BandNames(); } addBands(bandNames); mapMatrixElemToBandsS2(); } }
private void checkSourceProductType(final PolBandUtils.MATRIX sourceProductType) { if (sourceProductType == PolBandUtils.MATRIX.UNKNOWN) { throw new OperatorException("Input should be a polarimetric product"); } if (polDecomp instanceof HAlphaC2 && !PolBandUtils.isDualPol(sourceProductType)) { throw new OperatorException("Input should be a dual polarimetric product"); } else if (!(polDecomp instanceof HAlphaC2) && !PolBandUtils.isQuadPol(sourceProductType) && !PolBandUtils.isFullPol(sourceProductType)) { throw new OperatorException("Input should be a full polarimetric product"); } }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); // Save new slave band names PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }
final Band[] mstBands = getBands(srcProduct, sourceProductType, mstBandNames); final String suffix = mstBandNames[0].substring(mstBandNames[0].lastIndexOf('_'), mstBandNames[0].length()); quadSrcBandList.add(new PolSourceBand(srcProduct.getName(), mstBands, suffix)); final Band[] slvBands = getBands(srcProduct, sourceProductType, slvBandNames); final String suf = slvBandNames[0].substring(slvBandNames[0].lastIndexOf('_'), slvBandNames[0].length()); quadSrcBandList.add(new PolSourceBand(slvProd, slvBands, suf)); final Band[] mstBands = getBands(srcProduct, sourceProductType, bandNames); quadSrcBandList.add(new PolSourceBand(srcProduct.getName(), mstBands, ""));
/** * Add bands to the target product. * * @throws OperatorException The exception. */ private void addSelectedBands() throws OperatorException { final String[] targetBandNames = getTargetBandNames(); for (PolBandUtils.PolSourceBand bandList : srcBandList) { final Band[] targetBands = OperatorUtils.addBands(targetProduct, targetBandNames, bandList.suffix); bandList.addTargetBands(targetBands); } }
/** * Initializes all the internal file and directory elements from the given output file. This method only must be * called if the product writer should write the given data to raw data files without calling of writeProductNodes. * This may be at the time when a dimap product was opened and the data shold be continously changed in the same * product file without an previous call to the saveProductNodes to this product writer. * * @param outputFile the dimap header file location. */ protected void initDirs(final File outputFile) { super.initDirs(outputFile); final PolBandUtils.MATRIX matrixType = PolBandUtils.getSourceProductType(getSourceProduct()); String folder = ""; if (matrixType.equals(PolBandUtils.MATRIX.C3)) { folder = "C3"; } else if (matrixType.equals(PolBandUtils.MATRIX.T3)) { folder = "T3"; } else if (matrixType.equals(PolBandUtils.MATRIX.C4)) { folder = "C4"; } else if (matrixType.equals(PolBandUtils.MATRIX.T4)) { folder = "T4"; } if (!folder.isEmpty()) { _outputDir = new File(_outputDir, folder); if(!_outputDir.exists() && !_outputDir.mkdirs()) { SystemUtils.LOG.severe("Unable to create folders in "+_outputDir); } _outputFile = new File(_outputDir, outputFile.getName()); } }
public void computeTiles(final Map<Band, Tile> targetTiles, final Rectangle targetRectangle, final Rectangle sourceRectangle) { if (PolBandUtils.isFullPol(sourceProductType)) { boxcarFilterFullPol(targetTiles, targetRectangle, sourceRectangle); } else if (PolBandUtils.isQuadPol(sourceProductType)) { boxcarFilterC3T3C4T4(targetTiles, targetRectangle, sourceRectangle); } else if (PolBandUtils.isDualPol(sourceProductType)) { boxcarFilterC2(targetTiles, targetRectangle, sourceRectangle); } else { throw new OperatorException("For Boxcar filtering, only C2, C3, T3, C4 and T4 are supported"); } }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); if (absRoot != null) { absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); } PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }
/** * Add bands to the target product. * * @throws OperatorException The exception. */ private void addSelectedBands() throws OperatorException { final String[] targetBandNames = getTargetBandNames(); for (PolBandUtils.PolSourceBand bandList : srcBandList) { final Band[] targetBands = OperatorUtils.addBands(targetProduct, targetBandNames, bandList.suffix); bandList.addTargetBands(targetBands); } if (targetProduct.getNumBands() == 0) { throw new OperatorException("No output bands selected"); } }
public void computeTiles(final Map<Band, Tile> targetTiles, final Rectangle targetRectangle, final Rectangle sourceRectangle) { if (PolBandUtils.isFullPol(sourceProductType)) { refinedLeeFilterFullPol(targetTiles, targetRectangle, sourceRectangle); } else if (PolBandUtils.isQuadPol(sourceProductType)) { refinedLeeFilterC3T3C4T4(targetTiles, targetRectangle, sourceRectangle); } else if (PolBandUtils.isDualPol(sourceProductType)) { refinedLeeFilterC2(targetTiles, targetRectangle, sourceRectangle); } else { throw new OperatorException("For Refined Lee filtering, only C2, C3, T3, C4 and T4 are supported"); } }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); // Save new slave band names PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }
/** * Add bands to the target product. * * @throws OperatorException The exception. */ private void addSelectedBands() throws OperatorException { final String[] targetBandNames = polDecomp.getTargetBandNames(); for (final PolBandUtils.PolSourceBand bandList : srcBandList) { final Band[] targetBands = new Band[targetBandNames.length]; int i = 0; for (String targetBandName : targetBandNames) { final Band targetBand = new Band(targetBandName + bandList.suffix, ProductData.TYPE_FLOAT32, targetProduct.getSceneRasterWidth(), targetProduct.getSceneRasterHeight()); polDecomp.setBandUnit(targetBandName + bandList.suffix, targetBand); targetProduct.addBand(targetBand); targetBands[i++] = targetBand; } bandList.addTargetBands(targetBands); } }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); // Save new slave band names PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); if (absRoot != null) { absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); } PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); absRoot.setAttributeString(AbstractMetadata.compact_mode, compactMode); // Save new slave band names PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); absRoot.setAttributeInt(AbstractMetadata.polsarData, 1); absRoot.setAttributeString(AbstractMetadata.compact_mode, compactMode); // Save new slave band names PolBandUtils.saveNewBandNames(targetProduct, srcBandList); }