当前位置:   article > 正文

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

gdal.warp

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

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

  1. # -*- coding: utf-8 -*-
  2. """
  3. @Time : 2023/8/14 9:31
  4. @Auth : RS迷途小书童
  5. @File :Introduction to Warp Function.py
  6. @IDE :PyCharm
  7. @Purpose :Warp函数介绍
  8. """
  9. from osgeo import gdal,osr,ogr
  10. # --------------------------主函数--------------------------
  11. gdal.Warp(destNameOrDestDS, srcDSOrSrcDSTab, **kwargs)
  12. # destNameOrDestDS ---> 输出数据集路径或对象
  13. # srcDSOrSrcDSTab ---> 输入数据集对象或文件名的数组
  14. # 关键字参数是gdal.WarpOptions()的返回值,或者直接定义gdal.WarpOptions()
  15. # --------------------------参数介绍--------------------------
  16. gdal.WarpOptions(options=[], format='GTiff', outputBounds=None,
  17. outputBoundsSRS=one, xRes=None, yRes=None,
  18. targetAlignedPixels=False, width=0, height=0, srcSRS=None,
  19. dstSRS=None, srcAlpha=False, dstAlpha=False, warpOptions=None,
  20. errorThreshold=None, warpMemoryLimit=None, creationOptions=None,
  21. outputType=GDT_Unknown, workingType=GDT_Unknown, resampleAlg=None,
  22. srcNodata=None, dstNodata=None, multithread=False, tps=False,
  23. rpc=False, geoloc=False, polynomialOrder=None,
  24. transformerOptions=None, cutlineDSName=None, cutlineLayer=None,
  25. cutlineWhere=None, cutlineSQL=None, cutlineBlend=None,
  26. ropToCutline=False, copyMetadata=True, metadataConflictValue=None,
  27. setColorInterpretation=False, callback=None, callback_data=None):
  28. # options ---> 字符串数组, 字符串或者空值
  29. # format ---> 输出格式 ("GTiff", "HFA", "ENVI", etc...)
  30. # outputBounds ---> 结果在目标空间参考的边界范围(minX, minY, maxX, maxY)
  31. # outputBoundsSRS ---> 结果边界范围的空间参考, 如果在dstSRS中没有指定的话,采用此参数
  32. # xRes, yRes ---> 输出分辨率,即像素的大小
  33. # targetAlignedPixels ---> 是否强制输出边界是输出分辨率的倍数
  34. # width ---> 输出栅格的列数
  35. # height ---> 输出栅格的行数
  36. # srcSRS ---> 输入数据集的空间参考
  37. # dstSRS ---> 输出数据集的空间参考
  38. # srcAlpha ---> 是否将输入数据集的最后一个波段作为alpha波段
  39. # dstAlpha ---> 是否强制创建输出
  40. # outputType ---> 输出栅格的变量类型 (gdal.GDT_Byte, etc...)
  41. # workingType ---> working type (gdal.GDT_Byte, etc...)
  42. # warpOptions ---> list of warping options变形选项列表
  43. # errorThreshold ---> 近似转换的误差阈值(误差像素数目)
  44. # warpMemoryLimit ---> 工作内存限制 Bytes
  45. # resampleAlg ---> 重采样方法
  46. # creationOptions ---> list of creation options创建选项列表
  47. # srcNodata ---> 输入栅格的无效值(最好是0,可以忽略背景值)
  48. # dstNodata ---> 输出栅格的无效值
  49. # multithread ---> 是否多线程和I/O操作
  50. # tps ---> 是否使用Thin Plate Spline校正方法
  51. # rpc ---> 是否使用RPC校正
  52. # geoloc ---> 是否使用地理查找表校正
  53. # polynomialOrder ---> 几何多项式校正次数
  54. # transformerOptions ---> list of transformer options转换参数
  55. # cutlineDSName ---> cutline数据集名称(矢量数据)
  56. # cutlineLayer ---> cutline图层名称
  57. # cutlineWhere ---> cutline WHERE 子句
  58. # cutlineSQL ---> cutline SQL语句
  59. # cutlineBlend ---> 以像素为单位的剪切线混合距离
  60. # cropToCutline ---> 是否使用切割线(矢量)范围作为输出边界
  61. # copyMetadata ---> 是否复制元数据
  62. # metadataConflictValue ---> 元数据冲突值
  63. # setColorInterpretation ---> 是否强制将输入栅格颜色表给输出栅格
  64. # callback ---> 回调函数(用来返回执行进度)
  65. # callback_data ---> 回调的用户数据

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/208266
推荐阅读
相关标签
  

闽ICP备14008679号