@Override public String toString() { StringBuilder result = new StringBuilder(); result.append( "TiledRaster: " + getEnvelope() ); result.append( "\n\t" ); result.append( getTileContainer().toString() ); return result.toString(); }
@Override public TiledRaster getSubRaster( Envelope env ) { return getSubRaster( env, null ); }
/** * Creates a new TiledRaster with tiles from the given TileContainer * * @param tileContainer * wraps all tiles */ public TiledRaster( TileContainer tileContainer, ResourceMetadata<Coverage> metadata ) { super(); setMetadata( metadata ); this.tileContainer = tileContainer; }
if ( getEnvelope().equals( env ) && ( bands == null || Arrays.equals( bands, getRasterDataInfo().bandInfo ) ) ) { return this; RasterGeoReference ref = getRasterReference().createRelocatedReference( targetLocation, env ); MemoryTileContainer resultTC = new MemoryTileContainer( ref, env, getRasterDataInfo() ); TiledRaster result = new TiledRaster( resultTC, metadata ); List<AbstractRaster> tiles = getTileContainer().getTiles( env ); if ( tiles == null || tiles.isEmpty() ) { if ( getRasterDataInfo() == null ) { throw new NullPointerException( "The given tile container does not contain any tiles and no raster data information is available. " );
@Override public Set<TileFile> getTiles( Envelope env, double metersPerPixel ) { TiledRaster raster = (TiledRaster) mrr.getRaster( metersPerPixel ); TileContainer container = raster.getTileContainer(); List<AbstractRaster> tiles = container.getTiles( env ); Set<TileFile> result = new HashSet<TileFile>(); int level = -1; for ( Double res : mrr.getResolutions() ) { if ( metersPerPixel <= res ) { level++; } else { break; } } // make sure it will get to level 0 level = Math.max( 0, level ); for ( AbstractRaster r : tiles ) { if ( r != null ) { int id = r.hashCode(); result.add( new MyTile( id, level, r.getAsSimpleRaster() ) ); } } return result; }
raster = new TiledRaster( GriddedBlobTileContainer.create( directory, opts ), null ); readSingleBlobTile = true; } catch ( IOException e ) { raster = new TiledRaster( container, null ); raster.setCoordinateSystem( domain.getCoordinateSystem() ); return buildTiledRaster( directory, recursive, options ); AbstractRaster raster = new TiledRaster( container, null ); raster.setCoordinateSystem( container.getRasterReference().getCrs() );
private static void transformRaster( String[] args, String srcCRS, String dstCRS, InterpolationType type, OriginLocation location ) { try { MemoryTileContainer tileContainer = new MemoryTileContainer(); for ( int i = 0; i < args.length - 1; i++ ) { if ( args[i] != null ) { File f = new File( args[i] ); RasterIOOptions options = RasterIOOptions.forFile( f ); options.add( RasterIOOptions.GEO_ORIGIN_LOCATION, location.name() ); tileContainer.addTile( RasterFactory.loadRasterFromFile( f, options ) ); } } AbstractRaster srcRaster = new TiledRaster( tileContainer, null ); RasterTransformer transf = new RasterTransformer( dstCRS ); srcRaster.setCoordinateSystem( CRSManager.getCRSRef( srcCRS ) ); AbstractRaster result = transf.transform( srcRaster, type ); RasterFactory.saveRasterToFile( result, new File( args[args.length - 1] ) ); } catch ( Exception ex ) { System.err.println( "Couldn't transform raster file: " ); ex.printStackTrace(); System.exit( 2 ); } }
result.setCoordinateSystem( dstSRS );
@Override public void setSubRaster( double x, double y, AbstractRaster source ) { RasterGeoReference srcREnv = source.getRasterReference(); RasterGeoReference dstREnv = new RasterGeoReference( srcREnv.getOriginLocation(), srcREnv.getResolutionX(), srcREnv.getResolutionY(), x, y ); Envelope dstEnv = dstREnv.getEnvelope( source.getColumns(), source.getRows(), source.getCoordinateSystem() ); RasterData srcData = source.getAsSimpleRaster().getRasterData(); SimpleRaster movedRaster = new SimpleRaster( srcData, dstEnv, dstREnv, metadata ); setSubRaster( dstEnv, movedRaster ); }
@Override public SimpleRaster getAsSimpleRaster() { Envelope env = getEnvelope(); List<AbstractRaster> tiles = getTileContainer().getTiles( env ); if ( tiles == null || tiles.isEmpty() ) { RasterDataInfo dataInfo = getRasterDataInfo(); if ( dataInfo == null ) { throw new NullPointerException( "The given tile container does not contain any tiles and no raster data information is available. " ); SimpleRaster result = RasterFactory.createEmptyRaster( dataInfo, env, getRasterReference() ); return result; SimpleRaster result = originalSimpleRaster.createCompatibleSimpleRaster( getRasterReference(), env ); LOG.debug( "Tiled to simple -> result(w,h): " + result.getColumns() + ", " + result.getRows() );
@Override public void setSubRaster( Envelope envelope, AbstractRaster source ) { List<AbstractRaster> interSectingTiles = getTileContainer().getTiles( envelope ); if ( !interSectingTiles.isEmpty() ) { for ( AbstractRaster r : interSectingTiles ) { if ( r != null ) { Geometry intersection = r.getEnvelope().getIntersection( envelope ); if ( intersection != null ) { Envelope subsetEnv = intersection.getEnvelope(); r.setSubRaster( subsetEnv, source ); } } } } }
raster = new TiledRaster( GriddedBlobTileContainer.create( directory, opts ), metadata ); readSingleBlobTile = true; } catch ( IOException e ) { raster = new TiledRaster( container, metadata ); raster.setCoordinateSystem( domain.getCoordinateSystem() ); return buildTiledRaster( directory, recursive, options ); AbstractRaster raster = new TiledRaster( container, metadata ); raster.setCoordinateSystem( container.getRasterReference().getCrs() );
return new TiledRaster( mtc, null );
} else if ( rast instanceof TiledRaster ) { TiledRaster tr = (TiledRaster) rast; TileContainer container = tr.getTileContainer(); List<AbstractRaster> origTiles = container.getTiles( tr.getEnvelope() ); for ( AbstractRaster r : origTiles ) { if ( r != null ) {
AbstractRaster filteredRaster = reader.load( tmpGridFile, options ); if ( !raster.isSimpleRaster() ) { List<AbstractRaster> tiles = ( (TiledRaster) raster ).getTileContainer().getTiles( raster.getEnvelope() );
@Override public TiledRaster getSubRaster( Envelope env, BandType[] bands ) { return this.getSubRaster( env, bands, null ); }
List<AbstractRaster> tiles = ( (TiledRaster) raster ).getTileContainer().getTiles( tileEnvelope ); if ( tiles != null && !tiles.isEmpty() ) { for ( AbstractRaster ar : tiles ) {