RFC 32:gdallocationinfo实用程序
作者:弗兰克·温特丹
联系方式:warmerdam@pobox.com
状态:通过
总结
本文档建议为GDAL添加一个新的标准命令行实用程序,用于报告栅格中某个位置(像素)的详细信息。
理论基础
用户有一个用例,他们希望能够识别用于满足特定像素/位置请求的VRT文件。
许多用户要求使用一种工具来查找位置的值,这种值通常用不同于图像的坐标系来表示。例如,“给定纬度/经度位置的高程是多少?”。
gdallocationinfo实用程序旨在处理这两种类型的请求,并且希望以一种作为“栅格点查询”工具具有一些通用值的方式处理。
gdallocationinfo
完整文档可在 gdallocationinfo
Usage: gdallocationinfo [--help-general] [-xml] [-lifonly] [-valonlyl]
[-b band]* [-l_srs srs_def] [-geoloc] [-wgs84]
srcfile x y
该实用程序的关键方面是对位置坐标系的控制(-s_srs,-geoloc,-wgs84)和对输出格式的各种控制(-xml,-lifonly,-valonly)。xml的完整输出示例可能是:
$ gdallocationinfo -xml -wgs84 utm.vrt -117.5 33.75
<Report pixel="217" line="282">
<BandReport band="1">
<LocationInfo>
<File>utm.tif</File>
</LocationInfo>
<Value>16</Value>
</BandReport>
</Report>
位置信息元数据域
像素值和位置转换逻辑都内置在gdallocationinfo中,不需要太多的详细说明。更奇特的部分是报告从数据源查询的“LocationInfo”。
为了满足我们的迫切需要,我们需要让VRTSourcedRasterBand返回文件信息与目标像素重叠。但是,理论上,不同的驱动程序可能返回不同类型的位置信息。例如,WMS驱动程序可能会为该位置发出GetFeatureInfo并返回结果。
查询数据源的机制是针对目标频带的“LocationInfo”域的一个特别命名的GetMetadataItem()请求。以下请求的项名称的格式为“Pixel_x_y”,其中x和y是被查询像素的像素和行。
此项返回的值应为空,或者是用根元素“”记录的XML。文档的内容在其他方面是未定义的,只要它们是格式良好的XML。VRT驱动程序为该位置的每个文件返回一系列xxx条目。
如。
GDALGetMetadataItem( hBand, "Pixel_100_200", "LocationInfo" );
可能返回:
<LocationInfo>
<File>utm.tif</File>
</LocationInfo>
测试套件
将在gdal实用程序套件和分别用于实用程序和vrt行为的gdrivers/vrt.py脚本中引入测试。
文档
实用程序的文档已经准备好,并在上面引用。
实施
实现已经完成,并且在主干中。由于RFC的修订,Frank Wermedam可以根据需要进行调整。