首页 > 编程语言 >python使用栅格计算器

python使用栅格计算器

时间:2024-02-23 15:44:25浏览次数:30  
标签:band python win ysize 栅格 计算器 buf ds out

  重采样是指根据一类象元的信息内插出另一类象元信息的过程。在遥感中,重采样是从高分辨率遥感影像中提取出低分辨率影像的过程。常用的重采样方法有最邻近内插法、双线性内插法和三次卷积法内插。
  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
View Code

 

标签:band,python,win,ysize,栅格,计算器,buf,ds,out
From: https://www.cnblogs.com/shiningleo007/p/18029707

相关文章

  • UtilMeta - 简洁高效的 Python 后端元框架
    最近开源了我开发多年的一个Python后端框架:UtilMeta项目介绍UtilMeta是一个用于开发API服务的后端元框架,基于Python类型注解标准高效构建声明式接口与ORM查询,能够自动解析请求参数与生成OpenAPI文档,高效开发RESTful接口,产出的代码简洁清晰,并且支持使用主流Python......
  • python调用Javascript实践
    一、背景知识1、Node.jsjavacript的运行环境有两个:浏览器、node.jsNode.js是一个开源与跨平台的JavaScript运行时环境。它是一个可用于几乎任何项目的流行工具!Node.js在浏览器外运行V8JavaScript引擎(GoogleChrome的内核)。这使Node.js表现得非常出色。运行js的命......
  • python特殊的函数
    一、文件操作1.操作googlesheetcredentials_file_path=os.path.abspath("./credentials.json")#授权:authorize():这是pygsheets库中的一个函数,用于授权对GoogleSheets的访问。为了使用GoogleSheetsAPI,你需要有一个有效的OAuth2.0凭据,这个凭据通常是一......
  • Python打开https链接报错:unable to get local issuer certificate
    Python打开https链接报错:unabletogetlocalissuercertificate或安装Python3.10以上版本,需要openssl1.1.1以上版本,会导致openssl下面缺少证书,记录下安装方法问题描述:当使用urllib.urlopen打开一个https链接时抛出如下异常:urllib.error.URLError:<urlopenerror[SSL:......
  • Python使用GDAL
     调用GDAL库:fromosgeoimportgdalimportnumpyasnpimportcv2importmatplotlib.pyplotaspltimportmatplotlibnp.set_printoptions(threshold=np.inf)#使print大量数据不用符号...代替而显示所有dataset=gdal.Open("D:/modis/jf6.tif")print(dataset.Ge......
  • Python数据结构与算法05——快速排序
    快速排序:递归defquick_sort(aimlist,first,last):#打印当前排序状态print(aimlist)#如果子列表只有一个元素或没有元素,直接返回iffirst>=last:return#初始化低位、高位和中间值low=firstheigh=lastmid=aimli......
  • 【Azure Function】示例运行 python durable function(model V2)
    问题描述参考官方文档(使用Python创建你的第一个持久函数:https://learn.microsoft.com/zh-cn/azure/azure-functions/durable/quickstart-python-vscode),部署后,却出现“Failedtoloadfunction”错误。在结合以上参考文档后,可以通过如下的步骤创建并运行PythonDurableFu......
  • 龙哥盟 Python 译文集 2024.2 更新
    每个程序员都应该知道的40个算法Python数学应用Python入门指南Python物联网入门指南Python比特币编程实用指南Python密码学实用指南Python数据结构和算法实用指南Python企业自动化实用指南PythonGPU编程实用指南Python物联网项目LearningScrapy中文版通......
  • python 3.10版本降为3.8版本
    1.安装pyenvpipintsall pyenv-win -ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com 2.配置环境变量  3.安装3.8版本pyenvinstall3.8.04.项目中设置:pyenvlocal3.8.0全局设置:pyenvglobal3.8.05.确认版本已经切换:python--version ......
  • python正则表达式之
    1.Match从字符串起始位置开始匹配,两个参数(正则表达式,字符串).*代表匹配前面的字符无限次content='Hello1234567World_ThisisaRegexDemo'#通用匹配result=re.match('^Hello.*Demo$',content)print(result)print(result.group())print(result.span())贪婪......