public MetadataElement toMetadataElement() { MetadataElement element = new MetadataElement("Component"); element.addAttribute(new MetadataAttribute("dx", ProductData.ASCII.createInstance(String.valueOf(dx)), false)); element.addAttribute(new MetadataAttribute("dy", ProductData.ASCII.createInstance(String.valueOf(dy)), false)); element.addAttribute(new MetadataAttribute("precision", ProductData.ASCII.createInstance(String.valueOf(precision)), false)); element.addAttribute(new MetadataAttribute("signed", ProductData.ASCII.createInstance(String.valueOf(isSigned)), false)); return element; } }
public MetadataElement toMetadataElement() { MetadataElement element = new MetadataElement("Image Info"); element.addAttribute(new MetadataAttribute("x0", ProductData.ASCII.createInstance(String.valueOf(x0)), false)); element.addAttribute(new MetadataAttribute("y0", ProductData.ASCII.createInstance(String.valueOf(y0)), false)); element.addAttribute(new MetadataAttribute("width", ProductData.ASCII.createInstance(String.valueOf(width)), false)); element.addAttribute(new MetadataAttribute("height", ProductData.ASCII.createInstance(String.valueOf(height)), false)); element.addAttribute(new MetadataAttribute("numComponents", ProductData.ASCII.createInstance(String.valueOf(getNumComponents())), false)); for (ImageInfoComponent component : components) { element.addElement(component.toMetadataElement()); } return element; }
public MetadataElement toMetadataElement() { MetadataElement element = new MetadataElement("Codestream Tile Component"); element.addAttribute(new MetadataAttribute("csty", ProductData.ASCII.createInstance(String.valueOf(this.csty)), false)); element.addAttribute(new MetadataAttribute("numResolutions", ProductData.ASCII.createInstance(String.valueOf(this.numResolutions)), false)); element.addAttribute(new MetadataAttribute("codeBlockWidth", ProductData.ASCII.createInstance(String.valueOf(this.codeBlockWidth)), false)); element.addAttribute(new MetadataAttribute("codeBlockHeight", ProductData.ASCII.createInstance(String.valueOf(this.codeBlockHeight)), false)); element.addAttribute(new MetadataAttribute("codeBlockSty", ProductData.ASCII.createInstance(String.valueOf(this.codeBlockSty)), false)); element.addAttribute(new MetadataAttribute("qmfbid", ProductData.ASCII.createInstance(String.valueOf(this.qmfbid)), false)); element.addAttribute(new MetadataAttribute("qntsty", ProductData.ASCII.createInstance(String.valueOf(this.qntsty)), false)); element.addAttribute(new MetadataAttribute("numGBits", ProductData.ASCII.createInstance(String.valueOf(this.numGBits)), false)); element.addAttribute(new MetadataAttribute("roiShift", ProductData.ASCII.createInstance(String.valueOf(this.roiShift)), false)); StringBuilder values = new StringBuilder(); for (int[] pair : this.preccIntSize) { values.append("(").append(pair[0]).append(",").append(pair[1]).append(") "); } values.deleteCharAt(values.length() - 1); element.addAttribute(new MetadataAttribute("preccintSize", ProductData.ASCII.createInstance(values.toString()), false)); values.setLength(0); for (int[] pair : this.stepSizes) { values.append("(").append(pair[0]).append(",").append(pair[1]).append(") "); } values.deleteCharAt(values.length() - 1); element.addAttribute(new MetadataAttribute("stepSizes", ProductData.ASCII.createInstance(values.toString()), false)); values.setLength(0); return element; } }
public MetadataElement toMetadataElement() { MetadataElement element = new MetadataElement("Code Stream"); element.addAttribute(new MetadataAttribute("tx0", ProductData.ASCII.createInstance(String.valueOf(this.tx0)), false)); element.addAttribute(new MetadataAttribute("ty0", ProductData.ASCII.createInstance(String.valueOf(this.ty0)), false)); element.addAttribute(new MetadataAttribute("tileWidth", ProductData.ASCII.createInstance(String.valueOf(this.tileWidth)), false)); element.addAttribute(new MetadataAttribute("tileHeight", ProductData.ASCII.createInstance(String.valueOf(this.tileHeight)), false)); element.addAttribute(new MetadataAttribute("numTilesX", ProductData.ASCII.createInstance(String.valueOf(this.numTilesX)), false)); element.addAttribute(new MetadataAttribute("numTilesY", ProductData.ASCII.createInstance(String.valueOf(this.numTilesY)), false)); element.addAttribute(new MetadataAttribute("csty", ProductData.ASCII.createInstance(String.valueOf(this.csty)), false)); element.addAttribute(new MetadataAttribute("prg", ProductData.ASCII.createInstance(String.valueOf(this.prg)), false)); element.addAttribute(new MetadataAttribute("numLayers", ProductData.ASCII.createInstance(String.valueOf(this.numLayers)), false)); element.addAttribute(new MetadataAttribute("mct", ProductData.ASCII.createInstance(String.valueOf(this.mct)), false)); for (TileComponentInfo tcInfo : componentTilesInfo) { element.addElement(tcInfo.toMetadataElement()); } return element; }
protected static void addSummaryMetadata(final InputStream summaryStream, final String name, final MetadataElement parent) throws IOException { if (summaryStream == null) return; final MetadataElement summaryMetadata = new MetadataElement(name); final Properties properties = new Properties(); properties.load(summaryStream); final Set unsortedEntries = properties.entrySet(); final TreeSet sortedEntries = new TreeSet(new Comparator() { public int compare(final Object a, final Object b) { final Map.Entry entryA = (Map.Entry) a; final Map.Entry entryB = (Map.Entry) b; return ((String) entryA.getKey()).compareTo((String) entryB.getKey()); } }); sortedEntries.addAll(unsortedEntries); for (Object sortedEntry : sortedEntries) { final Map.Entry entry = (Map.Entry) sortedEntry; final String data = ((String) entry.getValue()).trim(); // strip of double quotes String strippedData = ""; if (data.length() > 2) strippedData = data.substring(1, data.length() - 1); final MetadataAttribute attribute = new MetadataAttribute((String) entry.getKey(), new ProductData.ASCII(strippedData), true); summaryMetadata.addAttribute(attribute); } parent.addElement(summaryMetadata); }
public void assignMetadataTo(final MetadataElement elem) { final Set<String> keys = metaMap.keySet(); // The set of keys in the map. for (final String key : keys) { final Object value = metaMap.get(key); // Get the value for that key. if (value == null || key.isEmpty()) continue; if (value instanceof Integer) { MetadataAttribute attrib = new MetadataAttribute(key, ProductData.TYPE_INT32, 1); attrib.getData().setElemInt((Integer) value); elem.addAttribute(attrib); } else if (value instanceof Double) { MetadataAttribute attrib = new MetadataAttribute(key, ProductData.TYPE_FLOAT64, 1); attrib.getData().setElemDouble((Double) value); elem.addAttribute(attrib); } else { elem.setAttributeString(key, String.valueOf(value)); } } }
private static void addAttrib(final MetadataElement elem, final String tag, final double value) { final MetadataAttribute attrib = new MetadataAttribute(tag, ProductData.TYPE_FLOAT64); attrib.getData().setElemDouble(value); elem.addAttribute(attrib); }
private static MetadataElement readHeader(FileHeader header) { MetadataElement headerElement = new MetadataElement("File Header"); headerElement.addAttribute(asMetadataAttribute(header.getFileHeader(), NITFFields.FHDR)); headerElement.addAttribute(asMetadataAttribute(header.getFileVersion(), NITFFields.FVER)); headerElement.addAttribute(asMetadataAttribute(header.getComplianceLevel(), NITFFields.CLEVEL)); headerElement.addAttribute(asMetadataAttribute(header.getSystemType(), NITFFields.STYPE)); headerElement.addAttribute(asMetadataAttribute(header.getOriginStationID(), NITFFields.OSTAID)); headerElement.addAttribute(asMetadataAttribute(header.getFileDateTime(), NITFFields.FDT)); headerElement.addAttribute(asMetadataAttribute(header.getFileTitle(), NITFFields.FTITLE)); headerElement.addAttribute(asMetadataAttribute(header.getClassification(), NITFFields.FSCLAS)); headerElement.addAttribute(asMetadataAttribute(header.getMessageCopyNum(), NITFFields.FSCOP)); headerElement.addAttribute(asMetadataAttribute(header.getEncrypted(), NITFFields.ENCRYP)); headerElement.addAttribute(asMetadataAttribute(header.getBackgroundColor(), NITFFields.FBKGC)); headerElement.addAttribute(asMetadataAttribute(header.getOriginatorName(), NITFFields.ONAME)); headerElement.addAttribute(asMetadataAttribute(header.getOriginatorPhone(), NITFFields.OPHONE)); headerElement.addAttribute(asMetadataAttribute(header.getFileLength(), NITFFields.FL)); headerElement.addAttribute(asMetadataAttribute(header.getHeaderLength(), NITFFields.HL)); headerElement.addAttribute(asMetadataAttribute(header.getUserDefinedHeaderLength(), NITFFields.UDHDL)); headerElement.addAttribute(asMetadataAttribute(header.getExtendedHeaderLength(), NITFFields.XHDL)); headerElement.addAttribute(asMetadataAttribute(header.getNumImages(), NITFFields.NUMI)); headerElement.addAttribute(asMetadataAttribute(header.getNumDataExtensions(), NITFFields.NUMDES)); headerElement.addAttribute(asMetadataAttribute(header.getNumReservedExtensions(), NITFFields.NUMRES)); return headerElement; }
public static MetadataAttribute addAttribute(final MetadataElement dest, final String tag, final int dataType, final String unit, final String desc) { final MetadataAttribute attribute = new MetadataAttribute(tag, dataType, 1); attribute.setUnit(unit); attribute.setDescription(desc); attribute.setReadOnly(true); dest.addAttribute(attribute); return attribute; }
ProductData.ASCII.createInstance(coords[0].substring(0, 2) + "*" + coords[0].substring(2, 4) + "'" + coords[0].substring(4) + "''"), false); cornerElem.addAttribute(latAttr); MetadataAttribute longAttr = new MetadataAttribute("longitude", ProductData.ASCII.createInstance(coords[1].substring(0, 3) + "*" + coords[1].substring(3, 5) + "'" + coords[1].substring(5) + "''"), false); cornerElem.addAttribute(longAttr); cornerCoordElem.addElement(cornerElem);
private static void searchMetadata(final MetadataElement resultElem, final MetadataElement elem, final String tag) { final MetadataElement[] elemList = elem.getElements(); for (MetadataElement e : elemList) { searchMetadata(resultElem, e, tag); } final MetadataAttribute[] attribList = elem.getAttributes(); for (MetadataAttribute attrib : attribList) { if (attrib.getName().toUpperCase().contains(tag)) { final MetadataAttribute newAttrib = attrib.createDeepClone(); newAttrib.setDescription(getAttributePath(attrib)); resultElem.addAttribute(newAttrib); } } }
ImageSubheader subheader = imageSegments[i].getSubheader(); MetadataElement imageSubheaderElem = new MetadataElement("Image Subheader " + String.valueOf(i)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getFilePartType(), NITFFields.IM)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageId(), NITFFields.IID_1)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageDateAndTime(), NITFFields.IDATIM)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getTargetId(), NITFFields.TGTID)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageTitle(), "ImageTitle")); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageSecurityClass(), NITFFields.ISCLAS)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getEncrypted(), NITFFields.ENCRYP)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageSource(), NITFFields.ISORCE)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getNumRows(), NITFFields.NROWS)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getNumCols(), NITFFields.NCOLS)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getPixelValueType(), "PVTYPE")); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageRepresentation(), NITFFields.IREP)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageCategory(), NITFFields.ICAT)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getActualBitsPerPixel(), NITFFields.ABPP)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getPixelJustification(), NITFFields.PJUST)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageCoordinateSystem(), NITFFields.ICORDS)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getImageCompression(), NITFFields.IC)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getNumImageBands(), NITFFields.NBANDS)); imageSubheaderElem.addAttribute(asMetadataAttribute(subheader.getNumMultispectralImageBands(), NITFFields.XBANDS)); for (int j = 0; j < bandInfos.length; j++) { MetadataElement bandInfoElem = new MetadataElement("BAND" + (j + 1)); bandInfoElem.addAttribute(asMetadataAttribute(bandInfos[i].getRepresentation(), NITFFields.IREPBAND)); bandInfoElem.addAttribute(asMetadataAttribute(bandInfos[i].getSubcategory(), NITFFields.ISUBCAT)); bandInfoElem.addAttribute(asMetadataAttribute(bandInfos[i].getImageFilterCode(), NITFFields.IFC)); bandInfoElem.addAttribute(asMetadataAttribute(bandInfos[i].getImageFilterCondition(), NITFFields.IMFLT));
private void addAttributes(MetadataElement element) { element.addAttribute(new MetadataAttribute("string", ProductData.createInstance("O815"), true)); element.addAttribute(new MetadataAttribute("singleValue", ProductData.createInstance(new byte[]{108}), true)); element.addAttribute(new MetadataAttribute("array", ProductData.createInstance(new byte[]{4, 8, 15, 16, 23, 42}), true)); element.addAttribute(new MetadataAttribute("splittedArray.1", ProductData.createInstance(new byte[]{4}), true)); element.addAttribute(new MetadataAttribute("splittedArray.2", ProductData.createInstance(new byte[]{8}), true)); element.addAttribute(new MetadataAttribute("splittedArray.3", ProductData.createInstance(new byte[]{15}), true)); element.addAttribute(new MetadataAttribute("splittedArray.4", ProductData.createInstance(new byte[]{16}), true)); element.addAttribute(new MetadataAttribute("splittedArray.5", ProductData.createInstance(new byte[]{23}), true)); element.addAttribute(new MetadataAttribute("splittedArray.6", ProductData.createInstance(new byte[]{42}), true)); } }
private static void searchMetadataValue(final MetadataElement resultElem, final MetadataElement elem, final String value) { final MetadataElement[] elemList = elem.getElements(); for (MetadataElement e : elemList) { searchMetadataValue(resultElem, e, value); } final MetadataAttribute[] attribList = elem.getAttributes(); for (MetadataAttribute attrib : attribList) { if (attrib.getData().getElemString().toUpperCase().contains(value)) { final MetadataAttribute newAttrib = attrib.createDeepClone(); newAttrib.setDescription(SearchMetadataAction.getAttributePath(attrib)); resultElem.addAttribute(newAttrib); } } } }
private void updateMetadata(Product product) { final MetadataElement graphElement = product.getMetadataRoot().getElement("Processing_Graph"); for (MetadataElement nodeElement : graphElement.getElements()) { if (getSpi().getOperatorAlias().equals(nodeElement.getAttributeString("operator"))) { final MetadataElement sourcesElement = nodeElement.getElement("sources"); for (int i = 0; i < this.sourceProducts.length; i++) { final String oldIndex = String.valueOf(i + 1); final String newIndex = String.valueOf(sourcesElement.getNumAttributes() + i + 1); final Product sourceProduct = this.sourceProducts[i]; final String attributeName = getSourceProductId(sourceProduct).replaceFirst(oldIndex, newIndex); final File location = sourceProduct.getFileLocation(); final ProductData attributeValue; if (location == null) { attributeValue = ProductData.createInstance(product.toString()); } else { attributeValue = ProductData.createInstance(location.getPath()); } final MetadataAttribute attribute = new MetadataAttribute(attributeName, attributeValue, true); sourcesElement.addAttribute(attribute); } } } }
lut.addAttribute(offsetAttrib); lut.addAttribute(gainsAttrib);
/** * 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); } }
parentElem.addAttribute(metadataAttribute);
private static MetadataElement readDataExtensions(DESegment[] segments) throws NITFException { MetadataElement dataExtensions = new MetadataElement("DES"); if (segments != null) { for (DESegment segment : segments) { DESubheader header = segment.getSubheader(); if (header != null) { MetadataElement deElem = new MetadataElement("DE"); TRE subheaderFields = header.getSubheaderFields(); if (subheaderFields != null) { TRE.TREIterator iterator = subheaderFields.iterator(); while (iterator.hasNext()) { TRE.FieldPair pair = iterator.next(); deElem.addAttribute(asMetadataAttribute(pair.getField(), pair.getName())); } } dataExtensions.addElement(deElem); } } } return dataExtensions; }
componentElem.addAttribute(nameAttr); nameAttr.getData().setElems(dataFilename); componentElem.addAttribute(numRecsAttr);