private Product createTargetProduct() { final int sceneWidth = sourceProduct.getSceneRasterWidth(); final int sceneHeight = sourceProduct.getSceneRasterHeight(); Product targetProduct = new Product(TARGET_PRODUCT_NAME, TARGET_PRODUCT_TYPE, sceneWidth, sceneHeight); ProductUtils.copyGeoCoding(sourceProduct, targetProduct); targetProduct.setStartTime(sourceProduct.getStartTime()); targetProduct.setEndTime(sourceProduct.getEndTime()); return targetProduct; }
private Product createTargetProduct(String name, String type) { final int sceneWidth = s2ClassifProduct.getSceneRasterWidth(); final int sceneHeight = s2ClassifProduct.getSceneRasterHeight(); Product targetProduct = new Product(name, type, sceneWidth, sceneHeight); ProductUtils.copyGeoCoding(s2ClassifProduct, targetProduct); targetProduct.setStartTime(s2ClassifProduct.getStartTime()); targetProduct.setEndTime(s2ClassifProduct.getEndTime()); return targetProduct; }
public Product open(final File inputFile) throws IOException { product = geoTiffReader.readProductNodes(inputFile, null); product.setFileLocation(inputFile); addAuxXML(product); addExtraBands(inputFile, product); product.setStartTime(getStartTime(product)); product.setEndTime(getEndTime(product)); return product; } private String getTime(final Product product, final String tag){
private Product createTargetProduct(Product sourceProduct, String name, String type) { final int sceneWidth = sourceProduct.getSceneRasterWidth(); final int sceneHeight = sourceProduct.getSceneRasterHeight(); Product targetProduct = new Product(name, type, sceneWidth, sceneHeight); ProductUtils.copyGeoCoding(sourceProduct, targetProduct); targetProduct.setStartTime(sourceProduct.getStartTime()); targetProduct.setEndTime(sourceProduct.getEndTime()); return targetProduct; }
private void createTargetProduct() { targetProduct = new Product(sourceProduct.getName() + PRODUCT_SUFFIX, sourceProduct.getProductType(), targetImageWidth, targetImageHeight); addSelectedBands(); ProductUtils.copyMetadata(sourceProduct, targetProduct); //ProductUtils.copyTiePointGrids(sourceProduct, targetProduct); ProductUtils.copyFlagCodings(sourceProduct, targetProduct); //ProductUtils.copyGeoCoding(sourceProduct, targetProduct); targetProduct.setStartTime(sourceProduct.getStartTime()); targetProduct.setEndTime(sourceProduct.getEndTime()); addGeoCoding(); updateTargetProductMetadata(); final int sourceImageTileWidth = sourceImageWidth; final int sourceImageTileHeight = Math.min((int) (prf + 0.5), sourceImageHeight); final int targetImageTileWidth = (int) (sourceImageTileWidth * widthRatio + 0.5f); final int targetImageTileHeight = (int) (sourceImageTileHeight * heightRatio + 0.5f); if (usePRFTileSize) { targetProduct.setPreferredTileSize(targetImageTileWidth, targetImageTileHeight); } }
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)); }
/** * Update metadata in the target product. */ private void updateTargetProductMetadata() { final MetadataElement absTgt = AbstractMetadata.getAbstractedMetadata(targetProduct); if (excludeMaster) { final String[] slaveNames = StackUtils.getSlaveProductNames(sourceProduct); absTgt.setAttributeString(AbstractMetadata.PRODUCT, slaveNames[0]); final ProductData.UTC[] times = StackUtils.getProductTimes(sourceProduct); targetProduct.setStartTime(times[1]); double lineTimeInterval = absTgt.getAttributeDouble(AbstractMetadata.line_time_interval); int height = sourceProduct.getSceneRasterHeight(); ProductData.UTC endTime = new ProductData.UTC(times[1].getMJD() + (lineTimeInterval * height) / Constants.secondsInDay); targetProduct.setEndTime(endTime); } else { // only if its a full coregistered stack including master band AbstractMetadata.setAttribute(absTgt, AbstractMetadata.coregistered_stack, 1); } }
/** * Create target product. */ private void createTargetProduct() { targetProduct = new Product(sourceProduct.getName() + PRODUCT_SUFFIX, sourceProduct.getProductType(), targetImageWidth, targetImageHeight); OperatorUtils.addSelectedBands( sourceProduct, sourceBandNames, targetProduct, targetBandNameToSourceBandName, false, true); ProductUtils.copyMetadata(sourceProduct, targetProduct); ProductUtils.copyFlagCodings(sourceProduct, targetProduct); targetProduct.setStartTime(sourceProduct.getStartTime()); targetProduct.setEndTime(sourceProduct.getEndTime()); addGeoCoding(); updateTargetProductMetadata(); }
product.setProductType("Generic NITF"); product.setStartTime(metadata.getFileDate()); product.setEndTime(metadata.getFileDate()); product.getMetadataRoot().addElement(metadata.getMetadataRoot()); int numBands = metadata.getNumBands();
private static Product buildLandCoverProduct(Product sourceProduct, String landCoverName) throws Exception { Product landCoverProduct = new Product(sourceProduct.getName(), sourceProduct.getProductType(), sourceProduct.getSceneRasterWidth(), sourceProduct.getSceneRasterHeight()); landCoverProduct.setStartTime(sourceProduct.getStartTime()); landCoverProduct.setEndTime(sourceProduct.getEndTime()); landCoverProduct.setNumResolutionsMax(sourceProduct.getNumResolutionsMax()); ProductUtils.copyMetadata(sourceProduct, landCoverProduct); ProductUtils.copyGeoCoding(sourceProduct, landCoverProduct); ProductUtils.copyTiePointGrids(sourceProduct, landCoverProduct); ProductUtils.copyVectorData(sourceProduct, landCoverProduct); AddLandCoverOp.LandCoverParameters param = new AddLandCoverOp.LandCoverParameters(landCoverName, ResamplingFactory.NEAREST_NEIGHBOUR_NAME); AddLandCoverOp.AddLandCover(landCoverProduct, param); return landCoverProduct; }
/** * Create target product. */ void createTargetProduct() { targetProduct = new Product(sourceProduct.getName(), sourceProduct.getProductType(), sourceProduct.getSceneRasterWidth(), sourceProduct.getSceneRasterHeight()); ProductUtils.copyMetadata(sourceProduct, targetProduct); ProductUtils.copyTiePointGrids(sourceProduct, targetProduct); ProductUtils.copyFlagCodings(sourceProduct, targetProduct); ProductUtils.copyGeoCoding(sourceProduct, targetProduct); ProductUtils.copyMasks(sourceProduct, targetProduct); ProductUtils.copyVectorData(sourceProduct, targetProduct); targetProduct.setStartTime(sourceProduct.getStartTime()); targetProduct.setEndTime(sourceProduct.getEndTime()); targetProduct.setDescription(sourceProduct.getDescription()); }
@Override protected Product readProductNodesImpl() throws IOException { SpotDimapMetadata dimapMetadata = wrappingMetadata.getComponentMetadata(0); int width = wrappingMetadata.getExpectedVolumeWidth(); int height = wrappingMetadata.getExpectedVolumeHeight(); Product rootProduct = new Product(dimapMetadata.getProductName(), SpotConstants.DIMAP_FORMAT_NAMES[0], width, height); rootProduct.getMetadataRoot().addElement(wrappingMetadata.getRootElement()); ProductData.UTC centerTime = dimapMetadata.getCenterTime(); rootProduct.setStartTime(centerTime); rootProduct.setEndTime(centerTime); rootProduct.setDescription(dimapMetadata.getProductDescription()); int numBands = dimapMetadata.getNumBands(); String[] bandNames = wrappingMetadata.getComponentMetadata(0).getBandNames(); for (int i = 0; i < numBands; i++) { ColorPaletteBand band = new ColorPaletteBand(bandNames[i], dimapMetadata.getPixelDataType(), width, height, this.colorPaletteFilePath); rootProduct.addBand(band); bandMap.put(band, new BandMatrix(wrappingMetadata.getExpectedTileComponentRows(), wrappingMetadata.getExpectedTileComponentCols())); } for (int fileIndex = 0; fileIndex < wrappingMetadata.getNumComponents(); fileIndex++) { addBands(rootProduct, wrappingMetadata.getComponentMetadata(fileIndex)); addMasks(rootProduct, wrappingMetadata.getComponentMetadata(fileIndex)); } rootProduct.setModified(false); return rootProduct; }
public static Product extractBands(Product sourceProduct, String[] sourceBandNames, String[] sourceMaskNames) { Product product = new Product(sourceProduct.getName(), sourceProduct.getProductType(), sourceProduct.getSceneRasterWidth(), sourceProduct.getSceneRasterHeight()); product.setStartTime(sourceProduct.getStartTime()); product.setEndTime(sourceProduct.getEndTime()); product.setNumResolutionsMax(sourceProduct.getNumResolutionsMax()); ProductUtils.copyMetadata(sourceProduct, product); ProductUtils.copyGeoCoding(sourceProduct, product); ProductUtils.copyTiePointGrids(sourceProduct, product); ProductUtils.copyVectorData(sourceProduct, product); if (sourceMaskNames != null && sourceMaskNames.length > 0) { ProductHelper.copyMasks(sourceProduct, product, sourceMaskNames); } for (int i=0; i<sourceBandNames.length; i++) { Band sourceBand = sourceProduct.getBand(sourceBandNames[i]); String sourceBandName = sourceBand.getName(); String targetBandName = sourceBandName; ProductUtils.copyBand(sourceBandName, sourceProduct, targetBandName, product, true); Band targetBand = product.getBand(targetBandName); ProductUtils.copyGeoCoding(sourceBand, targetBand); } return product; }
@Override public void initialize() throws OperatorException { sourceRasterWidth = lowresProduct.getSceneRasterWidth(); sourceRasterHeight = lowresProduct.getSceneRasterHeight(); int targetWidth = hiresProduct.getSceneRasterWidth(); int targetHeight = hiresProduct.getSceneRasterHeight(); offset = scale / 2; String targetProductName = lowresProduct.getName(); String targetProductType = lowresProduct.getProductType(); targetProduct = new Product(targetProductName, targetProductType, targetWidth, targetHeight); targetProduct.setStartTime(hiresProduct.getStartTime()); targetProduct.setEndTime(hiresProduct.getEndTime()); targetProduct.setPointingFactory(hiresProduct.getPointingFactory()); ProductUtils.copyMetadata(lowresProduct, targetProduct); ProductUtils.copyTiePointGrids(hiresProduct, targetProduct); ProductUtils.copyGeoCoding(hiresProduct, targetProduct); copyBands(lowresProduct, targetProduct); for (int i = 0; i < lowresProduct.getMaskGroup().getNodeCount(); i++) { Mask lowresMask = lowresProduct.getMaskGroup().get(i); targetProduct.getMaskGroup().add(lowresMask); } setTargetProduct(targetProduct); }
ProductUtils.copyMasks(sourceProduct, clonedProduct); clonedProduct.setStartTime(sourceProduct.getStartTime()); clonedProduct.setEndTime(sourceProduct.getEndTime());
AbstractMetadata.setAttribute(absRoot, AbstractMetadata.last_line_time, stopTime); product.setStartTime(startTime); product.setEndTime(stopTime); if (lineTimeInterval == 0) { lineTimeInterval = ReaderUtils.getLineTimeInterval(startTime, stopTime, rasterHeight);
AbstractMetadata.setAttribute(absRoot, AbstractMetadata.last_line_time, stopTime); product.setStartTime(startTime); product.setEndTime(stopTime); if (lineTimeInterval == 0 || lastLineTime == AbstractMetadata.NO_METADATA) { lineTimeInterval = ReaderUtils.getLineTimeInterval(startTime, stopTime, rasterHeight);
private void addMetaData(final Product product) { final MetadataElement root = product.getMetadataRoot(); final MetadataElement absRoot = AbstractMetadata.addAbstractedMetadataHeader(root); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.PRODUCT, header.getName()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.MISSION, header.getSensorType()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.SPH_DESCRIPTOR, header.getDescription()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.PRODUCT_TYPE, isComplex ? "SLC" : header.getDataType()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.sample_type, isComplex ? "COMPLEX" : "DETECTED"); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.num_samples_per_line, header.getNumSamples()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.num_output_lines, header.getNumLines()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.first_line_time, header.getStartTime()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.last_line_time, header.getEndTime()); product.setStartTime(header.getStartTime()); product.setEndTime(header.getEndTime()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.line_time_interval, header.getLineTimeInterval()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.radar_frequency, header.getRadarFrequency()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.pulse_repetition_frequency, header.getPRF()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.range_looks, header.getRangeLooks()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.azimuth_looks, header.getAzimuthLooks()); AbstractMetadata.setAttribute(absRoot, AbstractMetadata.coregistered_stack, isCoregistered ? 1 : 0); }
product.setEndTime(getUTCScanStopTime(leaderFile.getSceneRecord(), null)); product.setDescription(getProductDescription());
product.setEndTime(getUTCScanStopTime(leaderFile.getSceneRecord(), null)); product.setDescription(getProductDescription());