GDAL ComputeRasterMinMax .aux.xml
2016-06-02 00:16
260 查看
这个函数的第一个参数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()就能获取到准确的结果。
代码逻辑如下:
第二个参数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 ); }
相关文章推荐
- Nginx做web服务器linux内核参数优化
- Hbase教程(二) Hbase数据库Shell命令
- 文章标题
- poj 2135 Farm Tour(最小费用最大流模板)
- Python, Crawler and Raspberry Pi
- Android UncaughtExceptionHandler 记录异常并重启程序
- Linux 程序开发打印 Debug 信息的使用技巧
- 从银行窗口业务办理来看锁的实现
- JSP_JSP的三个编译指令
- struts2框架报错记录二
- Java多线程-线程同步问题
- excel全工作簿 指定 单元格 求和
- android 打开各种文件(setDataAndType)
- 使用FileInputStream和ByteArrayOutputStream 实现文本数据的回读
- 开发步骤
- centos 单用户模式
- 禅与摩托车维修艺术(4)
- 云栖会议.武汉峰会(一)
- js day43 Jquery入门(回顾js,Jquery选择器,dom操作)
- maven项目聚合的实例