[GIS] NumPy to GeoTiff for use with Gdal

gdalnumpypythonraster

I have a few NumPy arrays: lat, lon, and 6 data bands. I'd like to convert these to GeoTiff and then apply the gdalwarp function, based on a specific projection, to each band.

Is there a standard way to do this in Python?

Best Answer

Can be done fairly easy. First, create the dataset:

drv = gdal.GetDriverByName("GTiff")
ds = drv.Create("name.tif", width, height, 6, gdal.GDT_Float32)

You then need to set the geotransform using ds.SetGeoTransform where the argument is a six element tuple: (upper_left_x, x_resolution, x_skew, upper_left_y, y_skew, y_resolution)

Set the projection using ds.SetProjection, argument is the way string, then Write the array for the first band:

ds.GetRasterBand(1).WriteArray(arr)

That should be enough to get you going. If the purpose is just to reproject the data, then you could look at using an in memory dataset