private Dataset createMemDataset( Envelope nativeBbox, String nativeProjection, byte[][] composedRegion ) {
Driver vrtDriver = gdal.GetDriverByName( "MEM" );
Dataset dataset = vrtDriver.Create( "/tmp/whatever", width, height, composedRegion.length );
dataset.SetProjection( nativeProjection );
dataset.SetGeoTransform( getGeoTransform( nativeBbox, width, height ) );
for ( int i = 1; i <= dataset.getRasterCount(); i++ ) {
Band band = dataset.GetRasterBand( i );
if ( band.WriteRaster( 0, 0, width, height, width, height, GDT_Byte, composedRegion[i - 1] ) != CE_None ) {
throw new RuntimeException( "Error writing composed raster." );
}
}
return dataset;
}