int offsetX = 0;
int offsetY = 0;
int[] blockXSize = new int[1];
int[] blockYSize = new int[1];
band.GetBlockSize(blockXSize, blockYSize);
int bufferSize = blockXSize[0] * blockYSize[0]
* gdal.GetDataTypeSize(type) / 8;
ByteBuffer data = ByteBuffer.allocateDirect(bufferSize);