GDAL ComputeRasterMinMax .aux.xml

原创 2016年06月02日 00:16:29

这个函数的第一个参数bApproxOK,TRUE表示精确统计,速度慢,图像的所有像元都遍历一边,FALSE表示粗略统计,速度快,但是不一定准确。函数还有个返回值,是CPLErr类型,如果返回CE_None表示计算成功,其他的可以参考GDAL的相关说明。

第二个参数pdfMinMax,是用来存储统计出来的最小值和最大值。这个数组一般是一个double [2],第0个表示最小值,第1个表示最大值。

切记,调用了函数GDALRasterBand::ComputeRasterMinMax ()之后,GDAL不会把最大值和最小值写入.aux.xml中。如果想把最大值和最小值写入.aux.xml中,需要手动调用:
    CPLsnprintf( szValue, sizeof(szValue), "%.14g", dfMin );
    SetMetadataItem( "STATISTICS_MINIMUM", szValue );


    CPLsnprintf( szValue, sizeof(szValue), "%.14g", dfMax );
    SetMetadataItem( "STATISTICS_MAXIMUM", szValue );

通常情况下此函数和GDALRasterBand::GetMinimum()、GDALRasterBand::GetMaximum()配套使用。

只有直接调用函数GDALRasterBand::GetMinimum()和GDALRasterBand::GetMaximum() 获取不成功时才需要调用ComputeRasterMinMax函数。

并可以将ComputeRasterMinMax的计算的结果存入.aux.xml中:下次就不需要再统计一遍了 ,如果有.aux.xml文件,且.aux.xml中有最大最小值,直接调用函数GDALRasterBand::GetMinimum()和GDALRasterBand::GetMaximum()就能获取到准确的结果。

代码逻辑如下:

      int bGotMin, bGotMax;
      double adfMinMax[2];
      adfMinMax[0] = poBand->GetMinimum( &bGotMin );
      adfMinMax[1] = poBand->GetMaximum( &bGotMax );
      if( ! (bGotMin && bGotMax) )
      {
         GDALComputeRasterMinMax(poBand, FALSE, adfMinMax);
         CPLsnprintf( szValue, sizeof(szValue), "%.14g", dfMin );
         SetMetadataItem( "STATISTICS_MINIMUM", szValue );
         CPLsnprintf( szValue, sizeof(szValue), "%.14g", dfMax );
         SetMetadataItem( "STATISTICS_MAXIMUM", szValue );
      }



有点坑爹的GDALComputeRasterMinMax函数

作者:朱金灿来源:http://blog.csdn.net/clever101            GDALComputeRasterMinMax函数是gdal库为了求取指定波段的极值而提供的接口。...
  • clever101
  • clever101
  • 2014年11月06日 18:25
  • 2030

GDAL计算栅格图像统计值相关说明

一、        简介 在图像处理的过程中,会经常获取图像的统计值来进行一些计算。这里说的图像的统计值指:直方图,最大值,最小值,均值和方差这几个。下面分别对怎么使用GDAL来计算这些值做一个简单的...
  • liminlu0314
  • liminlu0314
  • 2013年01月11日 23:15
  • 6086

Python gdal 读取栅格数据

程序仅供参考。import sys import gdal from gdalconst import * from osr import SpatialReferencefn = r'E:\work...
  • hnyzwtf
  • hnyzwtf
  • 2015年04月03日 11:03
  • 2704

在GDAL拒绝生成.aux.xml文件

在删除GDALDataset的时候GDAL会帮我们生成.aux.xml文件,如果我们不需要这个文件我们可以通过设置标志位来拒绝生成这些文件。下面是摘自http://permalink.gmane.or...
  • hjh2005
  • hjh2005
  • 2011年12月29日 12:44
  • 1702

GDAL库三个读取Jpeg2000格式驱动测试

GDAL库中提供了四种读取Jpeg2000的驱动读取效率测试。
  • liminlu0314
  • liminlu0314
  • 2015年07月21日 20:36
  • 2411

GDAL 统计直方图数据,精确统计与粗略统计

使用的时候应将是否统计范围之外设置为:FALSE;将是否精确统计设置为:FALSE。这样统计出来的直方图内的像素点个数加起来,才会等于当前波段的总像素数。 统计范围[0,255] 。//FALSE:...
  • aoxiangyuntian123
  • aoxiangyuntian123
  • 2015年09月22日 17:34
  • 721

GDAL生成等高线——等值线

本文主要介绍:利用gdal的函数,根据DEM图像,生成等高线或等值线,两种方法,一种是利用GDAL自带的exe文件,一种是利用GDAL函数。说明:GDAL使用版本为Gdal2.0.0。1 利用GDAL...
  • hong__fang
  • hong__fang
  • 2016年06月07日 17:24
  • 2712

GDAL环境搭建(JAVA)

GDAL的Java调用 参考:http://blog.sina.com.cn/s/blog_6c5fa00f0101grld.html 注意: 系统版本位数,jdk版本位数,gdal位数需一致 1. ...
  • wt346326775
  • wt346326775
  • 2016年12月05日 16:16
  • 518

GDAL常用函数及示例

本文主要介绍:GDAL常用函数的应用,其中包含图像数据的读取、写入,地理坐标与行列坐标的相互转化,颜色表的读取和设置。 一、图像的读取与写入 //初始化GDAL库注册表 GDALAllRegist...
  • hong__fang
  • hong__fang
  • 2015年02月05日 16:16
  • 3179

vs2010编译和配置/调用gdal

vs2010编译和配置/调用gdal,大家在使用过程中有什么问题可以问我
  • biandoujiayou1991
  • biandoujiayou1991
  • 2014年12月05日 14:13
  • 2658
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GDAL ComputeRasterMinMax .aux.xml
举报原因:
原因补充:

(最多只允许输入30个字)