public static void updateBandNames( final MetadataElement absRoot, final java.util.List<String> selectedPolList, final String[] bandNames) { final MetadataElement[] children = absRoot.getElements(); for (MetadataElement child : children) { final String childName = child.getName(); if (childName.startsWith(AbstractMetadata.BAND_PREFIX)) { final String pol = childName.substring(childName.lastIndexOf("_") + 1); final String sw_pol = childName.substring(childName.indexOf("_") + 1); if (selectedPolList.contains(pol)) { String bandNameArray = ""; for (String bandName : bandNames) { if (bandName.contains(sw_pol)) { bandNameArray += bandName + " "; } else if (bandName.contains(pol)) { bandNameArray += bandName + " "; } } if(!bandNameArray.isEmpty()) { child.setAttributeString(AbstractMetadata.band_names, bandNameArray); } } else { absRoot.removeElement(child); } } } }
/** * Update the metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement abs = AbstractMetadata.getAbstractedMetadata(targetProduct); abs.getAttribute(AbstractMetadata.abs_calibration_flag).getData().setElemBoolean(true); final MetadataElement origProdRoot = AbstractMetadata.getOriginalProductMetadata(targetProduct); origProdRoot.removeElement(origProdRoot.getElement(lutsigma)); origProdRoot.removeElement(origProdRoot.getElement(lutgamma)); origProdRoot.removeElement(origProdRoot.getElement(lutbeta)); }
private static void removeUnusedMetadata(final MetadataElement root) { final MetadataElement[] elems = root.getElements(); for (MetadataElement elem : elems) { final String name = elem.getName(); boolean keep = false; for (String toKeep : elemsToKeep) { if (name.equals(toKeep)) { keep = true; break; } } if (!keep) { root.removeElement(elem); elem.dispose(); } } }
MetadataElement element = metadataRoot.getElement(headerName); metadataElementBackup.add(element); metadataRoot.removeElement(element); final MetadataElement element = metadataRoot.getElement("History"); metadataElementBackup.add(element); metadataRoot.removeElement(element); final MetadataElement element = metadataRoot.getElement(name); metadataElementBackup.add(element); metadataRoot.removeElement(element);
private static void clearProductMetadata(final Product product) { final String[] tpgNames = product.getTiePointGridNames(); for (String tpg : tpgNames) { product.removeTiePointGrid(product.getTiePointGrid(tpg)); } final MetadataElement root = product.getMetadataRoot(); final MetadataElement[] elems = root.getElements(); for (MetadataElement e : elems) { root.removeElement(e); } AbstractMetadata.addAbstractedMetadataHeader(product.getMetadataRoot()); }
/** * Update the metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(targetProduct); absRoot.getAttribute(AbstractMetadata.abs_calibration_flag).getData().setElemBoolean(true); final String[] targetBandNames = targetProduct.getBandNames(); Sentinel1Utils.updateBandNames(absRoot, selectedPolList, targetBandNames); final MetadataElement[] bandMetadataList = AbstractMetadata.getBandAbsMetadataList(absRoot); for (MetadataElement bandMeta : bandMetadataList) { boolean polFound = false; for (String pol : selectedPolList) { if (bandMeta.getName().contains(pol)) { polFound = true; break; } } if (!polFound) { // remove band metadata if polarization is not included absRoot.removeElement(bandMeta); } } }
/** * Helper method that copies the child nodes of a metadata element as child nodes * of another metadata element. * * @param source The metadata element holding the nodes to be copied * @param target The destination metadata element */ public static void CopyChildElements(MetadataElement source, MetadataElement target) { Assert.notNull(source); Assert.notNull(target); MetadataAttribute[] attributes = source.getAttributes(); if (attributes != null) { for (MetadataAttribute attribute : attributes) { if (!target.containsAttribute(attribute.getName()) && !attribute.getName().contains(":")) { target.addAttribute(attribute); } } } while (source.getNumElements() > 0) { MetadataElement currentElement = source.getElementAt(0); target.addElement(currentElement); source.removeElement(currentElement); } }