当前位置:   article > 正文

python中写出遥感影像、保存数组到geotiff文件(geotifwrite)_tif+tfw合并成geotif

tif+tfw合并成geotif

python读入遥感影像后进行数组和矩阵的运算,在计算完成后还需要导出为geotiff格式。
总共需要五个参数,其中:

坐标系”、"仿射参数"与输入影像的相同;
“数据矩阵”、“数据类型”、“输出路径”自行设置。

坐标系projection、仿射参数geo_tansform在读取影像的时候获取:python利用gdal读遥感卫星影像

def tifwrite(savepath,data,geo_transform,projection,datatype):
    driver = gdal.GetDriverByName("GTiff")
    if len(data.shape) == 3:
         rows,cols,bands=data.shape   
    elif len(data.shape) == 2:
        rows,cols=data.shape
        bands = 1
    if datatype == "FLOAT32":
        dataset=driver.Create(savepath,cols,rows,bands,gdal.GDT_Float32)
    elif datatype == "UINT8":
        dataset = driver.Create(savepath,cols,rows,bands,gdal.GDT_Byte) 
    elif datatype == "UINT16":
        dataset = driver.Create(savepath,cols,rows,bands,gdal.GDT_UInt16)
    else:
        print("A datatype dose not support yet!")
    dataset.SetGeoTransform(geo_transform)
    dataset.SetProjection(projection)
    if bands == 1:
        dataset.GetRasterBand(1).WriteArray(data)
    else:
        for i in range(bands):
            dataset.GetRasterBand(i+1).WriteArray(data[:,:,i])
    dataset = None #关闭文件
    
if __name__ == "__main__":
	tifpath=r"D:/data.tif"
	savepath=r"D:/result.tif"
	tifffile=tifread(tifpath)  ##见另一篇文章:python利用gdal读取遥感卫星影像
	tifwrite(savepath,tifffile.dataarray,tiffile.geo_transform,tiffile.projection,datatype="FLOAT32")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/329882
推荐阅读
相关标签
  

闽ICP备14008679号