private static MetadataAttribute asMetadataAttribute(Field field, String name) { MetadataAttribute attribute; if (field != null) { attribute = new MetadataAttribute(name, ProductData.ASCII.createInstance(field.toString().trim()), false); } else { attribute = new MetadataAttribute(name, ProductData.TYPE_ASCII); } if (fieldMap.containsKey(name)) { attribute.setDescription(fieldMap.get(name).getDescription()); } return attribute; }
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("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; }
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; } }
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 void addFlagDescriptor(String name, int value, String description) { MetadataAttribute attribute = new MetadataAttribute(name, ProductData.TYPE_INT32); attribute.getData().setElemInt(value); attribute.setDescription(description); flagCoding.addAttribute(attribute); }
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; }
MetadataAttribute latAttr = new MetadataAttribute("latitude", 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);
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 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); } } } }
final int val = reader.readUB1(); MetadataAttribute attr = new MetadataAttribute(elem.name, ProductData.TYPE_UINT8); ProductData productData = attr.getData(); productData.setElemInt(val); final int val = reader.readUB2(); MetadataAttribute attr = new MetadataAttribute(elem.name, ProductData.TYPE_UINT16); ProductData productData = attr.getData(); productData.setElemInt(val); MetadataAttribute attr = new MetadataAttribute(elem.name, ProductData.TYPE_UINT32); ProductData productData = attr.getData(); productData.setElemUInt(val); MetadataAttribute attr = new MetadataAttribute(elem.name, ProductData.TYPE_ASCII); ProductData productData = attr.getData(); productData.setElems(valStr); MetadataAttribute attr = new MetadataAttribute(elem.name, ProductData.TYPE_FLOAT64); ProductData productData = attr.getData(); productData.setElemDouble(val); MetadataAttribute attr = new MetadataAttribute(elem.name, ProductData.TYPE_UINT8); ProductData productData = attr.getData(); productData.setElemInt(getInteger(val));
root.addElement(lut); final MetadataAttribute offsetAttrib = new MetadataAttribute("offset", ProductData.TYPE_FLOAT64); offsetAttrib.getData().setElemDouble(offset); lut.addAttribute(offsetAttrib); final MetadataAttribute gainsAttrib = new MetadataAttribute("gains", ProductData.TYPE_FLOAT64, gainsArray.length); gainsAttrib.getData().setElems(gainsArray); lut.addAttribute(gainsAttrib);
final MetadataAttribute slaveBandsAttr = new MetadataAttribute("Slave_bands", ProductData.TYPE_ASCII); slaveProduct.addAttribute(slaveBandsAttr); slaveProduct.setAttributeString(slaveBandsAttr.getName(), slaveBands);
final MetadataAttribute metadataAttribute = new MetadataAttribute(name, productData, true); parentElem.addAttribute(metadataAttribute);
productData = ProductData.createInstance(ProductData.TYPE_UINT32, 1); productData.setElemUInt(d.getLength()); final MetadataAttribute metadataAttribute = new MetadataAttribute(d.getFullName(), productData, true); dimElem.addAttribute(metadataAttribute); if (metadataAttribute.getName().equals("owiRaSize")) {
final MetadataAttribute nameAttr = new MetadataAttribute("filename", ProductData.TYPE_ASCII); componentElem.addAttribute(nameAttr); nameAttr.getData().setElems(dataFilename); final MetadataAttribute numRecsAttr = new MetadataAttribute("number of " + recordElem.getName(), ProductData.TYPE_UINT32); componentElem.addAttribute(numRecsAttr);