教程参考来源于:Ujaval Gandhi www.spatialthoughts.com 提供的开源教程
GDAL套件附带了一个名为gdallocationinfo
的工具,它可以在一对或多对坐标上从栅格中进行点查找。结合GDAL通过虚拟文件系统从云数据集传输数据的功能,可以高效地从查找像素值,而无需将整个栅格加载到内存中。例如,我们在Google云存储桶上有一个大的(8GB)单波段云优化GeoTiff (COG)文件。这个文件是2021年VIIRS夜间灯光的全球镶嵌图,像素值是辐射值。要访问此文件,我们使用 /vsigs/
Google Cloud Storage files 处理程序,并以/vgigs/<bucket_name>/<file_name>
格式。这个特定文件是公共的,因此我们添加 --config GS_NO_SIGN_REQUEST YES
。
gdalinfo /vsigs/spatialthoughts-public-data/ntl/viirs/viirs_ntl_2021_global.tif --config GS_NO_SIGN_REQUEST YES
我们能够成功地打开并查找该文件的元数据。现在让我们使用gdallocationinfo
查询单个坐标的像素值。我们以WGS84经度/纬度格式指定位置,因此使用-wgs84选项。
gdallocationinfo -valonly /vsigs/spatialthoughts-public-data/ntl/viirs/viirs_ntl_2021_global.tif -wgs84 77.5946 12.9716 --config GS_NO_SIGN_REQUEST YES
此外,还可以使用坐标点文件来查找多个点的值。假设我们有一个文本文件,名为 ordinates.txt,具有以下2个坐标。
77.5946 12.9716
77.1025 28.7041
我们可以通过向gdallocationinfo
命令提供这些值来查找这些坐标处的像素值。我们还提供了-xml
选项,因此输出是结构化的,可以用于后期处理。
cat coordinates.txt | gdallocationinfo /vsigs/spatialthoughts-public-data/ntl/viirs/viirs_ntl_2021_global.tif -wgs84 --config GS_NO_SIGN_REQUEST YES -xml