python使用栅格计算器
重采样是指根据一类象元的信息内插出另一类象元信息的过程。在遥感中,重采样是从高分辨率遥感影像中提取出低分辨率影像的过程。常用的重采样方法有最邻近内插法、双线性内插法和三次卷积法内插。
ReadAsArray函数可以重采样读取的数据,并且指定输出缓冲区大小或传递一个已有的缓冲区数组。
band.ReadAsArray([xoff], [yoff], [win_xsize], [win_ysize], [buf_xsize], [buf_ysize], [buf_obj])
xoff是开始阅读的专栏,默认值为0。
yoff是开始阅读的行,默认值为0。
win_xsize是要读取的列数,默认为全部读取。
win_ysize是要读取的行数,默认为全部读取。
buf_xsize是输出数组中的列数,默认值为使用win_xsize的值。
buf_ysize是输出数组中的行数,默认值为使用win_ysize的值。
buf_obj是一个NumPy数组,用于将数据放入其中,而不是创建一个新数组。如果需要,数据将被重新采样以适合此数组,对应的值也将转换为该数组的数据类型。

import os from osgeo import gdal os.chdir(r'D:\modis') in_ds = gdal.Open('.tif') in_band = in_ds.GetRasterBand(1) # 计算输出行列数 # 输入数翻倍,因为我将像素大小减半 out_rows = in_band.YSize * 2 out_columns = in_band.XSize * 2 # 创建输出数据集 gtiff_driver = gdal.GetDriverByName('GTiff') out_ds = gtiff_driver.Create('band_resampled.tif', out_columns, out_rows) # 编辑地理变换 # 像素变为原来的 1/4 out_ds.SetProjection(in_ds.GetProjection()) geotransform = list(in_ds.GetGeoTransform()) geotransform[1] /= 2 geotransform[5] /= 2 out_ds.SetGeoTransform(geotransform) # 读取数据时,指定一个较大的缓冲 data = in_band.ReadAsArray( buf_xsize=out_columns, buf_ysize=out_rows) # 将数据写入输出光栅 out_band = out_ds.GetRasterBand(1) out_band.WriteArray(data) # 为较大的图像构建合适的概视图 out_band.FlushCache() out_band.ComputeStatistics(False) out_ds.BuildOverviews('average', [2, 4, 8, 16, 32, 64]) del out_ds
,Best Wish 不负年华
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体