首页 > 编程语言 >【Python&RS】GDAL库Warp函数介绍

【Python&RS】GDAL库Warp函数介绍

时间:2023-08-14 11:22:24浏览次数:38  
标签:输出 None False RS Python Warp --- 栅格

        GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。 Python的GDAL库作为栅格数据的处理转换库,其支持几百种栅格数据格式,如常见的TIFF、ENVI、HFA、HDF4等。因为遥感影像大部分都是栅格数据,所以GDAL库非常适合处理遥感影像、如光谱指数计算、波段合成、批量下载等。

        今天主要给大家介绍一下GDAL库中的Warp函数,这个函数非常强大。它可以实现裁剪、重采样、几何校正、转换格式、投影转换、查看处理进度等等操作。学习GDAL不得不好好学习一下Warp函数,了解其中的参数要求。

# -*- coding: utf-8 -*-
"""
@Time : 2023/8/14 9:31
@Auth : RS迷途小书童
@File :Introduction to Warp Function.py
@IDE :PyCharm
@Purpose :Warp函数介绍
"""
from osgeo import gdal,osr,ogr

# --------------------------主函数--------------------------
gdal.Warp(destNameOrDestDS, srcDSOrSrcDSTab, **kwargs)
# destNameOrDestDS ---> 输出数据集路径或对象
# srcDSOrSrcDSTab ---> 输入数据集对象或文件名的数组
# 关键字参数是gdal.WarpOptions()的返回值,或者直接定义gdal.WarpOptions()

# --------------------------参数介绍--------------------------
gdal.WarpOptions(options=[], format='GTiff', outputBounds=None,
                 outputBoundsSRS=one, xRes=None, yRes=None,
                 targetAlignedPixels=False, width=0, height=0, srcSRS=None,
                 dstSRS=None, srcAlpha=False, dstAlpha=False, warpOptions=None,
                 errorThreshold=None, warpMemoryLimit=None, creationOptions=None,
                 outputType=GDT_Unknown, workingType=GDT_Unknown, resampleAlg=None,
                 srcNodata=None, dstNodata=None, multithread=False, tps=False,
                 rpc=False, geoloc=False, polynomialOrder=None,
                 transformerOptions=None, cutlineDSName=None, cutlineLayer=None,
                 cutlineWhere=None, cutlineSQL=None, cutlineBlend=None,
                 ropToCutline=False, copyMetadata=True, metadataConflictValue=None,
                 setColorInterpretation=False, callback=None, callback_data=None):
# options ---> 字符串数组, 字符串或者空值
# format ---> 输出格式 ("GTiff", "HFA", "ENVI", etc...)
# outputBounds ---> 结果在目标空间参考的边界范围(minX, minY, maxX, maxY)
# outputBoundsSRS ---> 结果边界范围的空间参考, 如果在dstSRS中没有指定的话,采用此参数
# xRes, yRes ---> 输出分辨率,即像素的大小
# targetAlignedPixels ---> 是否强制输出边界是输出分辨率的倍数
# width ---> 输出栅格的列数
# height ---> 输出栅格的行数
# srcSRS ---> 输入数据集的空间参考
# dstSRS ---> 输出数据集的空间参考
# srcAlpha ---> 是否将输入数据集的最后一个波段作为alpha波段
# dstAlpha ---> 是否强制创建输出
# outputType ---> 输出栅格的变量类型 (gdal.GDT_Byte, etc...)
# workingType ---> working type (gdal.GDT_Byte, etc...)
# warpOptions ---> list of warping options变形选项列表
# errorThreshold ---> 近似转换的误差阈值(误差像素数目)
# warpMemoryLimit ---> 工作内存限制 Bytes
# resampleAlg ---> 重采样方法
# creationOptions ---> list of creation options创建选项列表
# srcNodata ---> 输入栅格的无效值(最好是0,可以忽略背景值)
# dstNodata ---> 输出栅格的无效值
# multithread ---> 是否多线程和I/O操作
# tps ---> 是否使用Thin Plate Spline校正方法
# rpc ---> 是否使用RPC校正
# geoloc ---> 是否使用地理查找表校正
# polynomialOrder ---> 几何多项式校正次数
# transformerOptions ---> list of transformer options转换参数
# cutlineDSName ---> cutline数据集名称(矢量数据)
# cutlineLayer ---> cutline图层名称
# cutlineWhere ---> cutline WHERE 子句
# cutlineSQL ---> cutline SQL语句
# cutlineBlend ---> 以像素为单位的剪切线混合距离
# cropToCutline ---> 是否使用切割线(矢量)范围作为输出边界
# copyMetadata ---> 是否复制元数据
# metadataConflictValue ---> 元数据冲突值
# setColorInterpretation ---> 是否强制将输入栅格颜色表给输出栅格
# callback ---> 回调函数(用来返回执行进度)
# callback_data ---> 回调的用户数据

 

        本次博文主要分享了Warp函数的参数设置,同时后面都给了注释。括号部分是我自己实验后的小技巧,Warp函数总体来说非常强大,但有很多东西需要自己去尝试,只有不断的报错,不断地修复,编程能力才会提升!

         如果大家在学习Python或者RS时有什么问题,可以随时留言交流!如果大家对批量处理有兴趣同样可以留言给博主,博主会分享相关代码以供学习!

标签:输出,None,False,RS,Python,Warp,---,栅格
From: https://www.cnblogs.com/RSran/p/17628145.html

相关文章

  • python 学习-函数-匹配替换等操作
    1.re.match匹配re.match(pattern,string)`:从字符串的开头匹配正则表达式,返回一个匹配对象。如果没有找到匹配的子串,返回`None`str='choice:['app1-ui','app2-ui']'#查找str是否以空格开头第一个有效字符是choice的的行,如果是打印okifre.match(r'\s+choice.*',str):......
  • Python第三方库pydash功能介绍
    Python第三方库pydash功能介绍本文来自ChatGPT的回答整理demo部分都验证过ok介绍pydash是一个Python库,用于提供类似于JavaScript库lodash的功能。lodash是一个在JavaScript中广泛使用的实用工具库,用于简化常见的操作,例如数组和对象的操作、函数式编程等。而pydas......
  • python反射机制
    Python的反射机制是指在运行时获取、检查和修改对象的属性和方法。通过使用反射,我们可以动态地访问和操作对象的属性、调用方法,甚至创建新的属性和方法。Python提供了一些内置函数和特殊属性来实现反射机制:getattr(object,name[,default]):获取对象的属性值,如前面提到的。s......
  • 5个代码技巧,加速你的Python! 转载
    原文:https://mp.weixin.qq.com/s/xLIlcXfW1O8sNxGT7RvKrQ来自公众号:快学PythonPython作为一种功能强大的编程语言,因其简单易学而受到很多初学者的青睐。它的应用领域又非常广泛:科学计算、游戏开发、爬虫、人工智能、自动化办公、Web应用开发等等。而在数据科学领域中,Python是......
  • python实战练习:sorted函数排序后返回一个新列表,所以不用再套一层list函数进行转化了
        使用集合set去重后,如果想要返回结果为列表形式,不用在外层套list函数了,因为sorted排完序后会返回一个新列表。names=input().split("")print(sorted(set(names)))#不需要再套一层list函数了print(sorted(list(set(names)))) ......
  • python实战练习:对哪部分使用类型转换
         l=[]whileTrue:s=input()ifs=='0':#注意:这里是对0加引号,而不是使用int(s),如果输入'hello',int(s)会报错,所以是用字符串'0'breakelse:l.append(s)print("".join(l)) ......
  • python打包库nuitka测试 是否和c++的速度差不多
    nuitka一个打包py脚本的库原理是把py代码转成c++代码再重新编译宣传的优点是打包的程序速度快占用空间小用了一些时间了突然想测试一下性能是否和宣传的一样写了一个输出一百万以内素数个数的脚本 打包成exe结果  不打包执行 说实话挺失望还剩一个优点空间......
  • python用筛法输出指定范围素数个数
    1importtime2stime=time.time()3defq(n):4is_prime={x:Trueforxinrange(n+1)}#生成一个n个元素的字典key设置为0-n+1值设置为True5delis_prime[0]#删除06forcin(2,3,5,7):7forzinrange(2,int(n/2)):8......
  • Python 潮流周刊#15:如何分析 FastAPI 异步请求的性能?
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。标题取自其中一则分享,不代表全部内容都是该主题,特此声明。本周刊精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精......
  • 测试开发笔试题(python)
    测试开发笔试题(python)_测试开发python笔试题_coco_qa的博客-CSDN博客1、字符串相关1.1字符串中最大长度子串#字符串中最大长度子串#如字符串abcd13agbf,当重复出现某个字符时,算一个子串,比如abcd13a或bcd13agb都是子串str1='abcd13agbf'str_list=[]foriinrange(l......