栅格数据读取与处理技巧
1. 部分数据集读取
在进行统计计算之前,需要明确哪个值代表无数据(NoData)。虽然可能会想在循环中计算统计信息,但统计应该基于波段中的所有像素,所以要等到所有像素值都计算完成后再进行。
逐块循环读取数据的方法比一次性读写整个波段要复杂,但在内存不足时非常有用。
2. 使用真实世界坐标
以往在决定数据读写起始位置时,通常考虑的是像素偏移量,但大多数情况下我们拥有的是真实世界坐标。只要坐标和栅格使用相同的空间参考系统(SRS),两者之间的转换就很容易。
地理变换(geotransform)包含了原点坐标、像素大小和旋转值等信息,它是一个包含六个值的元组,具体如下表所示:
| Index | Description |
| — | — |
| 0 | 原点 x 坐标 |
| 1 | 像素宽度 |
| 2 | x 像素旋转(如果图像朝北则为 0°) |
| 3 | 原点 y 坐标 |
| 4 | y 像素旋转(如果图像朝北则为 0°) |
| 5 | 像素高度(负值) |
可以使用这些信息手动进行仿射变换,但 GDAL 提供了 ApplyGeoTransform 函数来完成此操作。不过,现在需要将真实世界坐标转换为图像坐标,因此需要获取数据集地理变换的逆变换。
根据 GDAL 版本的不同,获取逆变换的方法也有所不同:
- GDAL 1.x :
超级会员免费看
订阅专栏 解锁全文
100

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



