With one 2-d array in the shape of (100, 100), I want to save it into raster file in .tiff
format.
I can use gdal
package to read tiff
files which are already exist. But I still can't find a simple way to transform the 2-d array into tiff file.
Using plt.imsave("xx.tif",array)
or
def array_to_raster(array):
"""Array > Raster
Save a raster from a C order array.
:param array: ndarray
"""
dst_filename = 'xxx.tiff'
x_pixels = 100 # number of pixels in x
y_pixels = 100 # number of pixels in y
driver = gdal.GetDriverByName('GTiff')
dataset = driver.Create(
dst_filename,
x_pixels,
y_pixels,
1,
gdal.GDT_Float32, )
dataset.GetRasterBand(1).WriteArray(array)
dataset.FlushCache() # Write to disk.
return dataset, dataset.GetRasterBand(1)
They all failed to achieve my target. The second method was adapted from here which can transform an array into a geotiff
with a projection.
Is there some simple way to save array into .tiff
, so I can call it by import the tiff
file next time.
Any advices would be appreciate.