QGIS中的金字塔机制优化

QGIS 中可以通过图层的属性窗口来给栅格数据创建金字塔,如下图:


右侧的 Pyramid resolutions 表示可以建立的金字塔的级别,数字前面的符号有个小叉就表示该级别的金字塔还没有被建立。可以通过点击右下方的 Build pyramid 按钮来为影像建立金字塔。

QGIS 内部也是调用了 GDAL GDALBuildOverviews 方法来为影像建立金字塔。 但在使用 Build pyramid 建立金字塔的过程中发现速度非常慢,与使用 gdaladdo.exe 命令来建立金字塔相比,要耗费它几倍的时间,对此感到非常疑惑,于是看了一下内部的实现机制。

建立金字塔的实现函数位于 QgsRasterLayer 中,函数名为buildPyramids ,定义如下:

/** /brief Create GDAL pyramid overviews */

    QString buildPyramids ( const RasterPyramidList &,

                           const QStringtheResamplingMethod = "NEAREST" ,

                           bool theTryInternalFlag = false );

RasterPyramidList 参数表示要建立金字塔的级别。

theResamplingMethod 参数表示重采样方法。

theTryInternalFlag 参数表示是否将金字塔嵌入影像内部,该操作好像只支持TIFF 格式。

找到了函数,查看其内部实现,很快就找到了原因所在。

以下代码是 QGIS 建立金字塔的核心代码

RasterPyramidList ::const_iterator myRasterPyramidIterator ;

  for ( myRasterPyramidIterator = theRasterPyramidList .begin ();

        myRasterPyramidIterator != theRasterPyramidList .end ();

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值