python gdal 删除金字塔问题

python gdal 影像已有金字塔 像删除金字塔怎么删呢

import gdal
from osgeo import gdal

datasat = gdal.Open(r"D:\项目\GF02_PA1_023116_20181128_MY450_01_096_L1A_01_PSH.tif")
# gdal.SetConfigOption("COMPRESS_OVERVIEW", "DEFLATE")
datasat.BuildOverviews()


会报错

ERROR 6: Cannot add external overviews when there are already internal overviews

该回答引用GPTᴼᴾᴱᴺᴬᴵ
报错提示已经存在内部金字塔,无法添加外部金字塔,如果需要删除内部金字塔,可以使用 gdaladdo 命令,例如:

import os
import subprocess

# 执行 gdaladdo 命令删除内部金字塔
subprocess.call(["gdaladdo", "-clean", r"D:\项目\GF02_PA1_023116_20181128_MY450_01_096_L1A_01_PSH.tif"])
 
# 打开数据集并建立外部金字塔
dataset = gdal.Open(r"D:\项目\GF02_PA1_023116_20181128_MY450_01_096_L1A_01_PSH.tif", gdal.GA_Update)
dataset.BuildOverviews("AVERAGE", [2, 4, 8, 16, 32])
dataset = None  # 关闭数据集

这里使用 gdaladdo 命令的 -clean 参数删除内部金字塔,然后再使用 BuildOverviews 建立外部金字塔。