【python】使用gdal存储envi标准格式的complex影像

gdal官方文档

1. 自定义函数

数据类型:datatype = gdal.GDT_CFloat32
文件类型:driver = gdal.GetDriverByName("ENVI")

def readTiff(inputfile):
    dataset = gdal.Open(inputfile)
    if dataset == None:
        print(inputfile+" can't open !!!")      
    width = dataset.RasterXSize 
    height = dataset.RasterYSize 
    bands = dataset.RasterCount 
    data = dataset.ReadAsArray(0,0,width,height)
    geotrans = dataset.GetGeoTransform()
    proj = dataset.GetProjection()
    return data, geotrans, proj
#保存tif文件函数
def writeTiffEnvi(data,geotrans,proj,path):
    if 'int8' in data.dtype.name:
        datatype = gdal.GDT_Byte
    elif 'float16' in data.dtype.name:
        datatype = gdal.GDT_Float32#GDT_Ufloat16
    elif 'complex64' in data.dtype.name:
        datatype = gdal.GDT_CFloat32
    else:
        datatype = gdal.GDT_Float32
    if len(data.shape) == 3:
        bands, height, width = data.shape
    elif len(data.shape) == 2:
        data = np.array([data])
        bands, height, width = data.shape
    #创建文件
    driver = gdal.GetDriverByName("ENVI")
    dataset = driver.Create(path, int(width), int(height), int(bands), datatype)
    if(dataset!= None):
        dataset.SetGeoTransform(geotrans) #写入仿射变换参数
        dataset.SetProjection(proj) #写入投影
    for i in range(bands):
        dataset.GetRasterBand(i+1).WriteArray(data[i])
    del dataset

2. 输出结果

  • envi格式的影像及其头文件
    在这里插入图片描述
  • envi中打开效果
    在这里插入图片描述
  • 文件metadata信息
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值