【GDAL基础教程】Python设置栅格无效值并压缩

文摘   教育   2023-03-12 18:40   北京  


01 引言:

通常通过google earth engine 下载数据会出现黑边(如下图所示),拖进arcgis等软件里无法很好的识别无效值。故本文借助gdal来设置栅格无效值并压缩tif,记录在此分享给有需要的同学。


02 代码如下:

# -*- encoding: utf-8 -*-'''@File    :   gdal_nodata_lzw.py@Time    :   2023/03/11 22:14:39@Author  :   HMX@Version :   1.0@Contact :   kzdhb8023@163.com'''
# here put the import libfrom osgeo import gdal
intif = r'E:\CODE\study\gee_nodata\data\LST230218_2.tif'outtif = intif.replace('.tif','_out.tif')# 读取原始影像数据src_ds = gdal.Open(intif)data = src_ds.ReadAsArray()# 将栅格左上角的元素设置为无效值nodata = data[0,0]src_ds.GetRasterBand(1).SetNoDataValue(nodata)# 设置 LZW 压缩options = ['COMPRESS=LZW']# 创建压缩后的输出文件driver = gdal.GetDriverByName('GTiff')dst_ds = driver.CreateCopy(outtif, src_ds, 0, options=options)# 将处理后的数据写入输出文件dst_ds.GetRasterBand(1).WriteArray(data)# 关闭数据集src_ds = Nonedst_ds = Noneprint('ok')

03 结果如下:

由下图可见,gdal设置无效值后,黑边已经去掉了;并且经过lzw压缩输出,数据大小与原来基本保持一致。

欢迎私交流学习


戳这里关注我

请点赞、在看、关注,你们的支持是我更新的动力。

森气笔记
记录分享森林气象学相关的Python GEE Arcgis QGIS Matlab等学习笔记