地理数据处理:栅格数据读写与地理配准
1. 子数据集操作
在处理栅格数据时,有时会遇到包含子数据集的情况。例如,美国地质调查局分发的MODIS影像以分层数据格式(HDF)文件形式存在,这种文件就包含多个子数据集。
以下是一段处理子数据集的代码示例:
out_ds.WriteRaster(0, 0, out_columns, out_rows, data)
out_ds.FlushCache()
for i in range(num_bands):
out_ds.GetRasterBand(i + 1).ComputeStatistics(False)
out_ds.BuildOverviews('average', [2, 4, 8, 16])
del out_ds
此示例与其他类似操作的不同之处在于,输出的行数和列数减半,而像素大小加倍。需要注意的是,在这种情况下要确保行数和列数为整数,因为除法运算结果可能是浮点数,而数据集创建函数不接受浮点数。
读取和写入数据时,由于默认会读取所有行、列和波段,所以通常无需额外操作。但如果要将数据重采样为更少的行和列,可以使用 buf_xsize 和 buf_ysize 参数传递较小的数值,这样在GDAL将数据读取到字节序列时就会进行重采样。然后将数据从第一行和第一列开始写入新的数据集,并告知 WriteRaster 字节序列中包含的行数和列数。
若数据集包含子数据集,可以使用
超级会员免费看
订阅专栏 解锁全文
5277

被折叠的 条评论
为什么被折叠?



