private void addGMLMasks(Product target, ImageMetadata metadata) { List<ImageMetadata.MaskInfo> gmlMasks = metadata.getMasks(); final Iterator<Color> colorIterator = ColorIterator.create(); Band refBand = findReferenceBand(target, metadata.getRasterWidth()); boolean isMultiSize = this.metadata.getImageMetadataList().size() > 1; gmlMasks.stream().forEach(mask -> { logger.info(String.format("Parsing mask %s of component %s", mask.name, metadata.getFileName())); VectorDataNode node = GMLReader.parse(mask.name, mask.path); if (node != null && node.getFeatureCollection().size() > 0) { node.setOwner(target); String maskName = mask.name; if (isMultiSize) { String resolution = "_" + new DecimalFormat("#.#").format(metadata.getPixelSize()) + "m"; maskName += resolution.endsWith(".") ? resolution.substring(0, resolution.length() - 1) : resolution; } if (refBand != null) { target.addMask(maskName, node, mask.description, colorIterator.next(), 0.5, refBand); } else { target.addMask(mask.name, node, mask.description, colorIterator.next(), 0.5); } } }); }
private void addGMLMasks(Product target, ImageMetadata metadata) { List<ImageMetadata.MaskInfo> gmlMasks = metadata.getMasks(); final Iterator<Color> colorIterator = ColorIterator.create(); Band refBand = findReferenceBand(target, metadata.getRasterWidth()); boolean isMultiSize = this.metadata.getImageMetadataList().size() > 1; gmlMasks.stream().forEach(mask -> { logger.info(String.format("Parsing mask %s of component %s", mask.name, metadata.getFileName())); VectorDataNode node = GMLReader.parse(mask.name, mask.path); if (node != null && node.getFeatureCollection().size() > 0) { node.setOwner(target); String maskName = mask.name; if (isMultiSize) { String resolution = "_" + new DecimalFormat("#.#").format(metadata.getPixelSize()) + "m"; maskName += resolution.endsWith(".") ? resolution.substring(0, resolution.length() - 1) : resolution; } if (refBand != null) { target.addMask(maskName, node, mask.description, colorIterator.next(), 0.5, refBand); } else { target.addMask(mask.name, node, mask.description, colorIterator.next(), 0.5); } } }); }