赞
踩
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时有什么问题,可以随时留言交流!如果大家对批量处理有兴趣同样可以留言给博主,博主会分享相关代码以供学习!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。