Поворот xy при использовании gdal.ReadAsArray в Python 2.7
Я использовал gdal
модуль в Python для чтения растра DEM. Когда под gdal
размеры матрицы высот х и у правильные (42689, 35622). Поскольку я использовал функцию ReadAsArray, форма матрицы высот поворачивается в (35622, 42689). Есть ли способ исправить это или хотя бы определить, как вращается матрица высот?
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)
1 ответ
Решение
Numpy имеет ось "y" в качестве оси 0 (первая ось) и ось "x" в качестве оси "1" (вторая ось) с индексом на основе 0. Когда вы просите ta[3,1]
, вы получите координату x=1, y=3 от начала координат (0,0) в левом верхнем углу. Ротации не было, это просто вопрос соглашения.
Вы можете построить DEM используя matplotlib
или сохранить его как новый растр, используя gdal
и вы увидите, что он сохранил первоначальную ориентацию.