@Override public synchronized MultiLevelModel getModel() { if (multiLevelModel == null) { multiLevelModel = ImageManager.createMultiLevelModel(rasterDataNode); } return multiLevelModel; }
static MultiLevelSource createMaskMultiLevelSource(final VectorDataNode vectorDataNode) { final MultiLevelModel multiLevelModel = ImageManager.createMultiLevelModel(vectorDataNode.getProduct()); return new AbstractMultiLevelSource(multiLevelModel) { @Override public RenderedImage createImage(int level) { return new VectorDataMaskOpImage(vectorDataNode, ResolutionLevel.create(getModel(), level)); } }; } }
public MultiLevelImage getMaskImage(final String expression, final Product product) { synchronized (maskImageMap) { final MaskKey key = new MaskKey(product, expression); MultiLevelImage mli = maskImageMap.get(key); if (mli == null) { MultiLevelSource mls = new AbstractMultiLevelSource(createMultiLevelModel(product)) { @Override public RenderedImage createImage(int level) { return VirtualBandOpImage.createMask(expression, product, ResolutionLevel.create(getModel(), level)); } }; mli = new DefaultMultiLevelImage(mls); product.addProductNodeListener(rasterDataChangeListener); maskImageMap.put(key, mli); } return mli; } }
/** * Gets the model that describes an image pyramid. * If the given raster data node gas a source image set, its model will be returned. * Otherwise a new model will be created using {@link #createMultiLevelModel}. * * @param rasterDataNode The raster data node, for which an image pyramid model is requested. * @return The image pyramid model. */ public static MultiLevelModel getMultiLevelModel(RasterDataNode rasterDataNode) { if (rasterDataNode.isSourceImageSet()) { return rasterDataNode.getSourceImage().getModel(); } return createMultiLevelModel(rasterDataNode); }
targetModel = ImageManager.createMultiLevelModel(targetProduct); reprojection = new Reproject(targetModel.getLevelCount()); reprojectRasterDataNodes(sourceProduct.getBands());