当前位置:   article > 正文

python使用gdal将二维numpy数组转换为单波段tiff格式_npy数据如何转化为tif

npy数据如何转化为tif
import gdal
import numpy as np 

filename = 'LST_250_202108'
data = np.load(filename + '.npy')
print(data.shape)

# 创建tif文件
driver = gdal.GetDriverByName('GTiff')
# 维度和numpy数组相反
new_dataset = driver.Create(filename + '.tif', data.shape[1], data.shape[0], 1, gdal.GDT_Float32) 

# 读取之前的tif信息,为新生成的tif添加地理信息
# 如果不增加这一步,则生成的图片没有经纬度坐标、投影的信息
origin_dataset = gdal.Open('2019193_WGS.tif')
# 获取投影信息
origin_proj = origin_dataset.GetProjection()
new_dataset.SetProjection(origin_proj)
# 仿射矩阵
origin_geotrans = origin_dataset.GetGeoTransform()
new_dataset.SetGeoTransform(origin_geotrans)

band = new_dataset.GetRasterBand(1)
band.WriteArray(data)
print(new_dataset)
new_data = new_dataset.ReadAsArray()
print(new_data)
  • 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

ReadAsArray()针对dataset和band有两种方式:
针对dataset:

ReadAsArray(xoff=0, yoff=0, xsize=None, ysize=None, buf_obj=None, buf_xsize=None, buf_ysize=None, buf_type=None, resample_alg=0, callback=None, callback_data=None, interleave='band')
# method of osgeo.gdal.Dataset instance
# Reading a chunk of a GDAL band into a numpy array.
# The optional (buf_xsize,buf_ysize,buf_type)
# parameters should generally not be specified if buf_obj is specified.
  • 1
  • 2
  • 3
  • 4
  • 5

其中:
xoff, yoff: 指定想要读取的部分原点位置在整张图像中距离全图原点的位置(以像元为单位)
xsize, ysize: 指定要读取部分图像的矩形的长和宽(以像元为单位)
buf_xsize, buf_ysize: 可以在读取出一部分图像后进行缩放。那么就用这两个参数来定义缩放后图像最终的宽和高,gdal将帮你缩放到这个大小。
buf_type: 可以对读出的数据的类型进行转换(比如原图数据类型是short,你要把它们缩小成byte)。
band_list: 适应多波段的情况。可以指定要读取的波段。

针对band:

# Reading a chunk of a GDAL band into a numpy array.

ReadAsArray(self, xoff=0, yoff=0, win_xsize=None, win_ysize=None, buf_xsize=None, buf_ysize=None, buf_type=None, buf_obj=None, resample_alg = GRIORA_NearestNeighbour, callback = None, callback_data = None):
  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/329893
推荐阅读
相关标签
  

闽ICP备14008679号