将numpy数组转成tif
时间: 2024-03-14 14:48:24 浏览: 234
要将numpy数组转换为tif格式的文件,可以使用GDAL库中的gdal.Wrapper()方法。下面是一个示例代码:
```
import gdal
import numpy as np
# 定义numpy数组
arr = np.random.rand(3, 3)
# 获取数组的形状
cols, rows = arr.shape
# 定义tif文件的名称和路径
filename = "output.tif"
# 定义tif文件的元数据
driver = gdal.GetDriverByName("GTiff")
outRaster = driver.Create(filename, rows, cols, 1, gdal.GDT_Float32)
outRaster.SetGeoTransform((0, 1, 0, 0, 0, 1))
outband = outRaster.GetRasterBand(1)
outband.WriteArray(arr)
outRasterSRS = osr.SpatialReference()
outRasterSRS.ImportFromEPSG(4326)
outRaster.SetProjection(outRasterSRS.ExportToWkt())
outband.FlushCache()
```
在上面的代码中,我们首先导入GDAL库和numpy模块,并使用np.random.rand()方法生成一个3x3的随机numpy数组。然后,我们定义了一个tif文件的名称和路径,并使用gdal.GetDriverByName()方法获取一个GTiff驱动程序。接下来,我们使用driver.Create()方法创建了一个新的tif文件,并定义了其元数据,包括行数、列数、数据类型等。然后,我们使用outRaster.GetRasterBand()方法获取tif文件的第一个波段,并使用outband.WriteArray()方法将numpy数组的值写入该波段。最后,我们使用outRaster.SetProjection()方法将tif文件的投影设置为WGS84经纬度坐标系,并使用outband.FlushCache()方法刷新文件缓存。
阅读全文