赞
踩
在遥感影像处理中,栅格数据往往以数组的形式存储。同理,数组也可以在添加参考系之后以栅格影像的形式表示。这里介绍一种将数组写入栅格tiff文件的方法
- import gdal
- import numpy as np
-
-
- def arr2raster(arr, raster_file, prj=None, trans=None):
- """
- 将数组转成栅格文件写入硬盘
- :param arr: 输入的mask数组 ReadAsArray()
- :param raster_file: 输出的栅格文件路径
- :param prj: gdal读取的投影信息 GetProjection(),默认为空
- :param trans: gdal读取的几何信息 GetGeoTransform(),默认为空
- :return:
- """
-
- driver = gdal.GetDriverByName('GTiff')
- dst_ds = driver.Create(raster_file, arr.shape[1], arr.shape[0], 1, gdal.GDT_Byte)
-
- if prj:
- dst_ds.SetProjection(prj)
- if trans:
- dst_ds.SetGeoTransform(trans)
-
- # 将数组的各通道写入图片
- dst_ds.GetRasterBand(1).WriteArray(arr)
-
- dst_ds.FlushCache()
- dst_ds = None
- print("successfully convert array to raster")
-
-
- if __name__ == '__main__':
- arr = np.random.randint(0, 255, size=(200, 200, 1))
- raster_file = './arr2ras.tif' # 输出的栅格文件路径
- src_ras_file = './raster_prj.tif' # 提供地理坐标信息和几何信息的栅格底图
- dataset = gdal.Open(src_ras_file)
- projection = dataset.GetProjection()
- transform = dataset.GetGeoTransform()
-
- arr2raster(arr, raster_file, prj=projection, trans=transform)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。