遥感影像(tif,img)概览/金字塔(overviews)的创建与清除

使用python环境下的gdal进行遥感影像(tif,img格式)概览(overviews)的创建与清除,前边是测试过程,结论在最后

过程

问题起因是拿到一批img格式的影像需要转cog,程序运行中报了个错

Cannot add external overviews when there are already internal overviews

因为之前都是使用没有金字塔的单独tif文件,这次使用的别人那里拿到的img,文件结构大体如下
在这里插入图片描述
对img格式不是很熟悉,如果是tif,一般来说概览是作为.ovr文件存在,直接删了就是,img不大敢动,就开始搜gdal文档。
gdal官网里操作概览的程序是gdaladdo,文档如下
在这里插入图片描述
其中 -clean是用来清除概览的。因为我想把这一步骤集成在现有python程序里,不想直接调用这个工具。官网文档里这个工具对应的C接口为GDALBuildOverviews(见下图),python接口见#链接,就开始测试
在这里插入图片描述
按照文档,设置nOverviews为0可以清除现有概览。我测试了几种写法

in_ds.BuildOverviews("NONE", 0)
in_ds.BuildOverviews("NONE", [0])
in_ds.BuildOverviews("NONE", [])
in_ds.BuildOverviews("NONE")

但是都不行Orz,不是报错就是没用,故放弃,直接调用gdaladdo试一下

gdaladdo.exe -clean D:\2018\2018.img

然后发现别的没啥变化,只有那个2018.rrd文件没了,看了下这个rrd文件原本体积比影像文件小但也很大,故推测rrd文件就是这个img影像的外部金字塔文件,所以就直接手动把剩下几个影像的rrd文件删了,运行一开始的程序,果然不报错了。。。

结论

清除概览

对于tif影像,外部概览文件一般为单独的ovr格式文件,删除就行。对于img,一般为rrd格式文件。
如果是影像内部的概览,应该可以通过gdaladdo工具或datasat.BuildOverviews接口清除,但我没试过。

创建概览

通过gdaladdo工具或datasat.BuildOverviews接口
gdaladdo示例见官网:https://gdal.org/programs/gdaladdo.html#gdaladdo
BuildOverviews示例:

in_ds = gdal.Open("D:/2018/2018.img")
in_ds.BuildOverviews("NEAREST", [2, 4, 8, 16])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值