/** * Get product type from abstracted metadata. */ private void getProductType() { productType = absRoot.getAttributeString(AbstractMetadata.PRODUCT_TYPE); String mode = absRoot.getAttributeString(AbstractMetadata.ACQUISITION_MODE); isTOPSARSLC = productType.contains("SLC") && (mode.contains("IW") || mode.contains("EW")); final MetadataElement annotationElem = origMetadataRoot.getElement("annotation"); final MetadataElement[] annotationDataSetListElem = annotationElem.getElements(); final String imageName = annotationDataSetListElem[0].getName(); isTOPS = mode.contains("IW") || mode.contains("EW"); isGRD = productType.contains("GRD"); }
private static MetadataElement findElementContaining(final MetadataElement parent, final String elemName, final String attribName, final String attValue) { final MetadataElement[] elems = parent.getElements(); for (MetadataElement elem : elems) { if (elem.getName().equalsIgnoreCase(elemName) && elem.containsAttribute(attribName)) { String value = elem.getAttributeString(attribName); if (value != null && value.equalsIgnoreCase(attValue)) return elem; } } return null; }
private void getPolarizations(final MetadataElement absRoot, final MetadataElement imageAttributes) { final MetadataElement[] imageAttribElems = imageAttributes.getElements(); int i = 0; for (MetadataElement elem : imageAttribElems) { if (elem.getName().equals("ipdf")) { final String pol = elem.getAttributeString("pole", "").toUpperCase(); polarizationMap.put(elem.getAttributeString("ipdf", "").toLowerCase(), pol); absRoot.setAttributeString(AbstractMetadata.polarTags[i], pol); ++i; } } }
private void getPolarizations(final MetadataElement absRoot, final MetadataElement imageAttributes) { final MetadataElement[] imageAttribElems = imageAttributes.getElements(); int i = 0; for (MetadataElement elem : imageAttribElems) { if (elem.getName().equals("fullResolutionImageData")) { final String pol = elem.getAttributeString("pole", "").toUpperCase(); polarizationMap.put(elem.getAttributeString("fullResolutionImageData", "").toLowerCase(), pol); absRoot.setAttributeString(AbstractMetadata.polarTags[i], pol); ++i; } } }
private static MetadataElement findElementContaining(final MetadataElement parent, final String elemName, final String attribName, final String attValue) { final MetadataElement[] elems = parent.getElements(); for (MetadataElement elem : elems) { if (elem.getName().equalsIgnoreCase(elemName) && elem.containsAttribute(attribName)) { String value = elem.getAttributeString(attribName); if (value != null && value.equalsIgnoreCase(attValue)) return elem; } } return null; }
private MetadataElement getBandElement(final Band band) { final MetadataElement root = AbstractMetadata.getOriginalProductMetadata(product); final Variable variable = bandMap.get(band); final String varName = variable.getShortName(); MetadataElement bandElem = null; for (MetadataElement elem : root.getElements()) { if (elem.getName().equalsIgnoreCase(varName)) { bandElem = elem; break; } } return bandElem; }
public static InSARStackOverview.IfgStack[] calculateInSAROverview(final Product coregProduct) throws Exception { MetadataElement slaveElem = coregProduct.getMetadataRoot().getElement(AbstractMetadata.SLAVE_METADATA_ROOT); if (slaveElem == null) { slaveElem = coregProduct.getMetadataRoot().getElement("Slave Metadata"); } final List<MetadataElement> absMetaList = new ArrayList<>(); absMetaList.add(AbstractMetadata.getAbstractedMetadata(coregProduct)); absMetaList.addAll(Arrays.asList(slaveElem.getElements())); return InSARStackOverview.calculateInSAROverview(absMetaList.toArray(new MetadataElement[absMetaList.size()])); }
private double getBandTerrainHeight(final MetadataElement prodElem) { final MetadataElement generalAnnotation = prodElem.getElement("generalAnnotation"); final MetadataElement terrainHeightList = generalAnnotation.getElement("terrainHeightList"); double heightSum = 0.0; final MetadataElement[] heightList = terrainHeightList.getElements(); int cnt = 0; for (MetadataElement terrainHeight : heightList) { heightSum += terrainHeight.getAttributeDouble("value"); ++cnt; } return heightSum / cnt; }
default MetadataElement getMetadataObject(final MetadataElement origProdRoot, final String metadataObjectName) { final MetadataElement metadataSection = origProdRoot.getElement("XFDU").getElement("metadataSection"); final MetadataElement[] metadataObjects = metadataSection.getElements(); for (MetadataElement elem : metadataObjects) { if (elem.getAttribute("ID").getData().getElemString().equals(metadataObjectName)) { return elem; } } return null; } }
public int[] getCalibrationPixel( final int subSwathIndex, final String polarization, final int vectorIndex) { final MetadataElement calibrationVectorListElem = getCalibrationVectorList(subSwathIndex, polarization); final MetadataElement[] list = calibrationVectorListElem.getElements(); final MetadataElement pixelElem = list[vectorIndex].getElement("pixel"); final String pixel = pixelElem.getAttributeString("pixel"); final int count = Integer.parseInt(pixelElem.getAttributeString("count")); final int[] pixelArray = new int[count]; addToArray(pixelArray, 0, pixel, " "); return pixelArray; }
private void updateSettings() { Product product = getProduct(); if (product == null) { plotSettings.setMetadataElements(null); return; } removeAllDatasetSeries(); MetadataElement metadataRoot = product.getMetadataRoot(); MetadataElement[] elements = metadataRoot.getElements(); recordSlider.setValue(1); plotSettings.setMetadataElements(elements); }
public float[] getCalibrationVector( final int subSwathIndex, final String polarization, final int vectorIndex, final String vectorName) { final MetadataElement calibrationVectorListElem = getCalibrationVectorList(subSwathIndex, polarization); final MetadataElement[] list = calibrationVectorListElem.getElements(); final MetadataElement vectorElem = list[vectorIndex].getElement(vectorName); final String vectorStr = vectorElem.getAttributeString(vectorName); final int count = Integer.parseInt(vectorElem.getAttributeString("count")); float[] vectorArray = new float[count]; addToArray(vectorArray, 0, vectorStr, " "); return vectorArray; }
private void constructSourceMetadata() throws Exception { final MetadataElement masterMeta = AbstractMetadata.getAbstractedMetadata(sourceProduct); masterMetaMapPut(masterMeta, sourceProduct, masterMap); final String slaveMetadataRoot = AbstractMetadata.SLAVE_METADATA_ROOT; MetadataElement[] slaveRoot = sourceProduct.getMetadataRoot().getElement(slaveMetadataRoot).getElements(); for (MetadataElement slaveMeta : slaveRoot) { if (!slaveMeta.getName().equals(AbstractMetadata.ORIGINAL_PRODUCT_METADATA)) slaveMetaMapPut(masterMeta, slaveMeta, sourceProduct, slaveMap); } }
private void addOrbitStateVectors(final MetadataElement absRoot, final MetadataElement orbit) { final MetadataElement orbitHeader = orbit.getElement("orbitHeader"); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.STATE_VECTOR_TIME, ReaderUtils.getTime(orbitHeader, "firstStateTimeUTC", standardDateFormat)); final MetadataElement orbitVectorListElem = absRoot.getElement(AbstractMetadata.orbit_state_vectors); int i = 0; final MetadataElement[] elems = orbit.getElements(); for(MetadataElement stateVec : elems) { if(stateVec.getName().equals("stateVec")) { addVector(AbstractMetadata.orbit_vector, orbitVectorListElem, stateVec, i++); } } }
/** * Get thermal noise correction flag from the original product metadata. */ private void getThermalNoiseCorrectionFlag() { final MetadataElement annotationElem = origMetadataRoot.getElement("annotation"); final MetadataElement[] annotationDataSetListElem = annotationElem.getElements(); final MetadataElement productElem = annotationDataSetListElem[0].getElement("product"); final MetadataElement imageAnnotationElem = productElem.getElement("imageAnnotation"); final MetadataElement processingInformationElem = imageAnnotationElem.getElement("processingInformation"); thermalNoiseCorrectionPerformed = Boolean.parseBoolean( processingInformationElem.getAttribute("thermalNoiseCorrectionPerformed").getData().getElemString()); }
private void addOrbitStateVectors(final MetadataElement absRoot, final MetadataElement orbitInformation) { final MetadataElement orbitVectorListElem = absRoot.getElement(AbstractMetadata.orbit_state_vectors); final MetadataElement[] stateVectorElems = orbitInformation.getElements(); for (int i = 1; i <= stateVectorElems.length; ++i) { addVector(AbstractMetadata.orbit_vector, orbitVectorListElem, stateVectorElems[i - 1], i); } // set state vector time if (absRoot.getAttributeUTC(AbstractMetadata.STATE_VECTOR_TIME, AbstractMetadata.NO_METADATA_UTC). equalElems(AbstractMetadata.NO_METADATA_UTC)) { AbstractMetadata.setAttribute(absRoot, AbstractMetadata.STATE_VECTOR_TIME, ReaderUtils.getTime(stateVectorElems[0], "timeStamp", standardDateFormat)); } }
private void addOrbitStateVectors(final MetadataElement absRoot, final MetadataElement orbitInformation) { final MetadataElement orbitVectorListElem = absRoot.getElement(AbstractMetadata.orbit_state_vectors); final MetadataElement[] stateVectorElems = orbitInformation.getElements(); for (int i = 1; i <= stateVectorElems.length; ++i) { addVector(AbstractMetadata.orbit_vector, orbitVectorListElem, stateVectorElems[i - 1], i); } // set state vector time if (absRoot.getAttributeUTC(AbstractMetadata.STATE_VECTOR_TIME, AbstractMetadata.NO_METADATA_UTC). equalElems(AbstractMetadata.NO_METADATA_UTC)) { AbstractMetadata.setAttribute(absRoot, AbstractMetadata.STATE_VECTOR_TIME, ReaderUtils.getTime(stateVectorElems[0], "timeStamp", standardDateFormat)); } }
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()); }
private void getBaseline() throws Exception { final MetadataElement masterMeta = AbstractMetadata.getAbstractedMetadata(sourceProduct); final SLCImage masterMetaData = new SLCImage(masterMeta, sourceProduct); final Orbit masterOrbit = new Orbit(masterMeta, 3); final MetadataElement[] slaveRoot = sourceProduct.getMetadataRoot(). getElement(AbstractMetadata.SLAVE_METADATA_ROOT).getElements(); final SLCImage slaveMetaData = new SLCImage(slaveRoot[0], sourceProduct); final Orbit slaveOrbit = new Orbit(slaveRoot[0], 3); baseline.model(masterMetaData, slaveMetaData, masterOrbit, slaveOrbit); }
protected static void updateProduct(final Product product, final MetadataElement newRoot) { final MetadataElement root = product.getMetadataRoot(); for(MetadataElement elem : newRoot.getElements()) { root.addElement(elem); } final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(product); product.setStartTime(absRoot.getAttributeUTC(AbstractMetadata.first_line_time)); product.setEndTime(absRoot.getAttributeUTC(AbstractMetadata.last_line_time)); product.setProductType(absRoot.getAttributeString(AbstractMetadata.PRODUCT_TYPE)); product.setDescription(absRoot.getAttributeString(AbstractMetadata.SPH_DESCRIPTOR)); }