public int compare( AbstractRaster a1, AbstractRaster a2 ) { double r1 = Math.abs( a1.getResolutionInfo().getNativeResolutions().get( 0 ).getResolution( 0 ) ); double r2 = Math.abs( a2.getResolutionInfo().getNativeResolutions().get( 0 ).getResolution( 0 ) ); return Double.valueOf( r1 ).compareTo( r2 ); } };
/** * Adds a raster to the MultiResolution Pyramid * * @param raster * raster to be added to the MultiResolutionRaster */ public void addRaster( AbstractRaster raster ) { if ( raster != null ) { resolutions.add( raster ); List<SampleResolution> nativeResolutions = this.resolutionInfo.getNativeResolutions(); SampleResolution rasterRes = raster.getResolutionInfo().getNativeResolutions().get( 0 ); nativeResolutions.add( rasterRes ); Comparator<AbstractRaster> comp = new Comparator<AbstractRaster>() { public int compare( AbstractRaster a1, AbstractRaster a2 ) { double r1 = Math.abs( a1.getResolutionInfo().getNativeResolutions().get( 0 ).getResolution( 0 ) ); double r2 = Math.abs( a2.getResolutionInfo().getNativeResolutions().get( 0 ).getResolution( 0 ) ); return Double.valueOf( r1 ).compareTo( r2 ); } }; Collections.sort( resolutions, comp ); } else { LOG.error( "Could not add raster to multiresolution raster because null." ); } }
/** * @param info * @param files * @param rasters * @param options */ public DiskBasedTileContainer( QTreeInfo info, List<File> files, List<AbstractRaster> rasters, RasterIOOptions options ) { qtree = new QTree<File>( createEnvelope( info.envelope ), info.numberOfObjects ); envelope = info.envelope; AbstractRaster raster = rasters.iterator().next(); rasterDataInfo = raster.getRasterDataInfo(); rasterGeoReference = info.rasterGeoReference; resolutionInfo = raster.getResolutionInfo(); this.options = options; Iterator<File> iter = files.iterator(); for ( AbstractRaster r : rasters ) { File f = iter.next(); qtree.insert( createEnvelope( r.getEnvelope() ), f ); cache.put( f, new SoftReference<AbstractRaster>( r ) ); } initialized = true; }
/** * Adds a new tile to the container. * * @param raster * new tile */ public void addTile( AbstractRaster raster ) { if ( raster != null ) { if ( this.rdi == null ) { this.rdi = raster.getRasterDataInfo(); } if ( this.resolutionInfo == null ) { this.resolutionInfo = raster.getResolutionInfo(); } index.insert( createEnvelope( raster.getEnvelope() ), raster ); } }
/** * Adds a new tile to the container. * * @param raster * new tile */ public synchronized void addTile( AbstractRaster raster ) { if ( raster != null ) { if ( this.envelope == null ) { this.envelope = raster.getEnvelope(); } else { this.envelope = this.envelope.merge( raster.getEnvelope() ); } if ( this.rasterReference == null ) { this.rasterReference = raster.getRasterReference(); } else { this.rasterReference = RasterGeoReference.merger( this.rasterReference, raster.getRasterReference() ); } if ( this.rdi == null ) { this.rdi = raster.getRasterDataInfo(); } if ( this.resolutionInfo == null ) { this.resolutionInfo = raster.getResolutionInfo(); } tiles.add( raster ); } }
if ( getResolutionInfo().getNativeResolutions().get( 0 ).equals( resolution ) ) {