建立遥感影像金字塔

建立遥感影像金字塔
ytkz对于大的遥感影像文件,在QGIS或ArcGIS中,都可以通过建金字塔的方式,提供其加载速度。通常情况,将遥感影像加载到ArcGIS中,软件会提示是否构建金字塔,同意构建金字塔后,影像的对应文件夹下会生成一个ovr类型的影像金字塔文件,提高影像加载速度。
什么是遥感影像金字塔文件呢?如何通过代码建立金字塔文件呢?
什么是影像金字塔
在GDAL中,金字塔(Pyramids)是一种用于栅格数据的方法,它通过创建原始影像数据的缩略图来加快显示和分析速度。每个金字塔层级都是原始影像的一个较小版本,具有更少的像素和较低的分辨率。
金字塔的主要用途包括:
- 快速浏览:在查看大尺寸影像时,金字塔允许用户快速浏览而不需要加载整个高分辨率影像。
- 地理空间分析:在进行某些地理空间分析时,可能不需要最高分辨率的数据,金字塔可以提供足够用的数据而减少计算量。
- 改善性能:使用金字塔可以改善地图渲染和地理信息系统(GIS)软件的性能。
对于未经压缩的栅格数据,.ovr 文件大小约为原始栅格数据集大小的 8%。
实现
可以用GDAL中的gdaladdo方法,内建金字塔,或者建外部金字塔。
内建金字塔
gdaladdo -r average image.tif 2 4 8 16
这个方法会改变源文件,会增大源文件的大小。
2 4 8 16是指金字塔文件每一层的缩小倍速,这个是自定义的,你可以改为你喜欢的自增的序列,如2 4 8 12 16 32 均可。
删除内建金字塔
删除内建金字塔的方法
gdaladdo image.tif -clean
建立ovr类型外部金字塔的方法
已经有内部金字塔的,不能建外部金字塔,会报错:
Cannot add external overviews when there are already internal overviews
建立建立ovr类型外部金字塔,需要在gdaladdo方法上加上-ro参数:
gdaladdo -r average image.tif -ro 2 4 8 16
建立aux类型外部金字塔的方法
在QGIS中,可以看到,外建金字塔还有另外一种方式,是aux类型,
gdaladdo -r average image.tif --config USE_RRD YES 4 8 12 14 16
python实现
from osgeo import gdal
def build_pyramid(image_path):
"""
内置金字塔
:param image_path:
:return:
"""
Image = gdal.Open(image_path, 1)
gdal.SetConfigOption("COMPRESS_OVERVIEW", "DEFLATE") # 注释此行生成外部金字塔
Image.BuildOverviews("AVERAGE", [2, 4, 8, 16, 32])