@Override public RasterDataInfo getRasterDataInfo() { return originalReader.getRasterDataInfo(); }
/** * @param reader * to be used for the tiles. * @param options * */ protected TiledRasterData( GridReader reader, RasterIOOptions options ) { if ( reader == null ) { throw new NullPointerException( "Grid reader may not be null." ); } this.columns = reader.getTileColumns(); this.rows = reader.getTileRows(); this.tileWidth = reader.getTileRasterWidth(); this.tileHeight = reader.getTileRasterHeight(); tiles = new RasterData[this.columns * this.rows]; for ( int row = 0; row < rows; ++row ) { for ( int col = 0; col < columns; ++col ) { TileOffsetReader r = new TileOffsetReader( reader, new RasterRect( col * tileWidth, row * tileHeight, tileWidth, tileHeight ) ); tiles[( row * columns ) + col] = RasterDataFactory.createRasterData( new RasterRect( 0, 0, tileWidth, tileHeight ), reader.getRasterDataInfo(), r, false, options ); } } this.sampleDomain = new RasterRect( 0, 0, reader.getWidth(), reader.getHeight() ); this.dataInfo = reader.getRasterDataInfo(); }
/** * Read a raster from the grid file at location (row,column). * * @param columnId * * @param rowId * * @return the read raster or null if it could not be read. * @throws IOException */ public AbstractRaster getTile( int columnId, int rowId ) throws IOException { Envelope tileEnvelope = getTileEnvelope( columnId, rowId ); RasterGeoReference tileRasterReference = RasterGeoReference.create( OriginLocation.OUTER, tileEnvelope, infoFile.getTileRasterWidth(), infoFile.getTileRasterHeight() ); RasterRect tileRect = getGeoReference().createRelocatedReference( OriginLocation.OUTER ).convertEnvelopeToRasterCRS( tileEnvelope ); TileOffsetReader tReader = new TileOffsetReader( this, tileRect ); ByteBufferRasterData tileData = RasterDataFactory.createRasterData( infoFile.getTileRasterWidth(), infoFile.getTileRasterHeight(), getRasterDataInfo(), tReader, false ); SimpleRaster tile = new SimpleRaster( tileData, tileEnvelope, tileRasterReference, null ); return tile; }