from scipy.io import loadmat
from osgeo import gdal
# import numpy as np
# 读取.mat文件中的数据
data = loadmat('my.mat')
print(data.keys()) #判断key的值是什么,修改下面的key
data_array = data['Z']
print(data_array.shape) #行,列 ,波段
# 读取已知的地理信息
old_tif = gdal.Open('old.tif')
old_transform = old_tif.GetGeoTransform()
old_projection = old_tif.GetProjection()
# 创建一个新的.tif文件,并将原始数据写入其中
new_tif = gdal.GetDriverByName('GTiff').Create('new.tif', data_array.shape[1], data_array.shape[0], data_array.shape[2], gdal.GDT_Float32) #宽度,高度,波段
new_tif.SetGeoTransform(old_transform)
new_tif.SetProjection(old_projection)
for i in range(data_array.shape[2]):
new_tif.GetRasterBand(i+1).WriteArray(data_array[:, :, i])
new_tif.FlushCache()
.mat数据转化为.tif
最新推荐文章于 2024-04-02 17:49:52 发布