@Override public MultiRangedRaster getSubRaster( Envelope env, BandType[] bands, OriginLocation targetLocation ) { if ( getEnvelope().equals( env ) && ( bands == null || Arrays.equals( bands, getRasterDataInfo().bandInfo ) ) ) { return this; } checkBounds( env ); MultiRangedRaster result = new MultiRangedRaster(); for ( AbstractRaster raster : multiRange ) { result.addRaster( raster.getSubRaster( env, bands, targetLocation ) ); } return result; }