def array2Raster(result_arr,affine_par,dstFilename):
# save arr to geotiff
driver = gdal.GetDriverByName('GTiff')
[A, D, B, E, C, F] = affine_par
if result_arr.ndim == 2:
[height,width] = result_arr.shape
dataset = driver.Create(dstFilename, width, height, numBand, gdal.GDT_Float32)
dataset.SetGeoTransform((C, A, B, F, D, E))
dataset.GetRasterBand(1).WriteArray(array[:, :])
#dataset.GetRasterBand(1).SetNoDataValue(0)
elif result_arr.ndim == 3:
[height,width,numBand] = result_arr.shape
dataset = driver.Create(dstFilename, width, height, numBand, gdal.GDT_Float32)
dataset.SetGeoTransform((C, A, B, F, D, E))
for i in range(numBand):
dataset.GetRasterBand(i + 1).WriteArray(result_arr[:, :, i])
#dataset.GetRasterBand(i + 1).SetNoDataValue(-999.0)
dataset.FlushCache() # Write to disk
评论列表
文章目录