Поворот 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 и вы увидите, что он сохранил первоначальную ориентацию.

Другие вопросы по тегам