当前位置:   article > 正文

Python+GDAL 将数组写入栅格tiff文件_将数据数组保存为栅格

将数据数组保存为栅格

在遥感影像处理中,栅格数据往往以数组的形式存储。同理,数组也可以在添加参考系之后以栅格影像的形式表示。这里介绍一种将数组写入栅格tiff文件的方法

  1. import gdal
  2. import numpy as np
  3. def arr2raster(arr, raster_file, prj=None, trans=None):
  4. """
  5. 将数组转成栅格文件写入硬盘
  6. :param arr: 输入的mask数组 ReadAsArray()
  7. :param raster_file: 输出的栅格文件路径
  8. :param prj: gdal读取的投影信息 GetProjection(),默认为空
  9. :param trans: gdal读取的几何信息 GetGeoTransform(),默认为空
  10. :return:
  11. """
  12. driver = gdal.GetDriverByName('GTiff')
  13. dst_ds = driver.Create(raster_file, arr.shape[1], arr.shape[0], 1, gdal.GDT_Byte)
  14. if prj:
  15. dst_ds.SetProjection(prj)
  16. if trans:
  17. dst_ds.SetGeoTransform(trans)
  18. # 将数组的各通道写入图片
  19. dst_ds.GetRasterBand(1).WriteArray(arr)
  20. dst_ds.FlushCache()
  21. dst_ds = None
  22. print("successfully convert array to raster")
  23. if __name__ == '__main__':
  24. arr = np.random.randint(0, 255, size=(200, 200, 1))
  25. raster_file = './arr2ras.tif' # 输出的栅格文件路径
  26. src_ras_file = './raster_prj.tif' # 提供地理坐标信息和几何信息的栅格底图
  27. dataset = gdal.Open(src_ras_file)
  28. projection = dataset.GetProjection()
  29. transform = dataset.GetGeoTransform()
  30. arr2raster(arr, raster_file, prj=projection, trans=transform)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/329867
推荐阅读
相关标签
  

闽ICP备14008679号