Извлечь повернутый прямоугольник из растра в Python

Я использую GDAL в Python для работы с растрами GeoTIFF. Я использую следующий код для извлечения небольших прямоугольных фрагментов из всего растра:

      data_file = gdal.Open("path/to/raster.tiff")
data = data_file.ReadAsArray(xoffset, yoffset, xsize, ysize)

Как я могу изменить этот код, чтобы извлечь повернутые прямоугольные области из растра. Например, я хотел бы иметь возможность извлекать данные из области, показанной красным цветом ниже.

Я бы хотел, чтобы красная область была передискретизирована и повернута, чтобы я мог получить к ней доступ как к простому массиву данных numpy.

1 ответ

Я создал решение этой проблемы, следуя этому отличному сообщению о том, как реализовать аффинные преобразования.

Мое решение работает:

  1. С использованиемReadAsArrayпрочитать часть полного растра, полностью содержащую красную область;
  2. Определение точекp0,p1,p2представление верхнего левого, верхнего правого и нижнего левого углов красной области соответственно в пиксельных координатах;
  3. Реализация алгоритма, как описано в ссылке, для вычисления аффинного преобразования, оставляя мне красную область, повернутую в горизонтальное положение.
Другие вопросы по тегам