在 Python 2.7 中使用 gdal.ReadAsArray 时旋转 xy

xy rotated when using gdal.ReadAsArray in Python 2.7

我使用 Python 中的 gdal 模块读取 DEM 栅格。在 gdal 下时,DEM x 和 y 大小正确(42689、35622)。当我使用 ReadAsArray 函数时,DEM 的形状旋转为 (35622, 42689)。有没有办法解决这个问题或至少确定 DEM 是如何旋转的?

In [54]: t1.RasterYSize
Out[54]: 35622

In [55]: t1.RasterXSize
Out[55]: 42689

ta = t1.ReadAsArray

In [64]: ta.shape
Out[64]: (35622L, 42689L)

Numpy 将 "y" 轴作为轴 0(第一个轴),将 "x" 轴作为轴“1”(第二个轴),索引从 0 开始。当您要求 ta[3,1] 时,您会从左上角的原点 (0,0) 得到坐标 x=1,y=3。没有轮换,这只是约定俗成的问题。

您可以使用 matplotlib 绘制 DEM 或使用 gdal 将其保存为新栅格,您将看到它保留了原始方向。