У меня есть изображение, которое представляет геопространственные данные. Это изображение было записано с использованием системы ETRS89 (EPSG: 5243). Другими словами, я сохранил изображение и координаты четырех углов этого изображения. Я хочу сделать очень простое преобразование изображения из EPSG: 5243 в EPSG: 4326. Другими словами, я хочу преобразовать форму изображения так, чтобы оно могло уместиться на карте WSG84.
Мое изображение уже имеет форму простой матрицы.
Я пытался использовать растерио дляпреобразование, но у меня проблема в том, что я не вижу хороший способ вычислить src_transform и dst_transform. Насколько я знаю, они должны описывать связь между пикселем и координатами. Мой самый большой вопрос: нужны ли мне оба эти преобразования? Я имею в виду, что Растерио знает систему назначения, поэтому нужен только один. Правильно? Значением по умолчанию является None, но я не уверен, нужно ли его заполнять.
from rasterio import Affine
from rasterio.warp import reproject, Resampling
matrix = get_np_matrix_of_img()
matrix_transform = np.zeros(matrix.shape, float)
x_max = self.shape.get_ETRS89_bounds().x_max
y_max = self.shape.get_ETRS89_bounds().y_max
x_min = self.shape.get_ETRS89_bounds().x_min
y_min = self.shape.get_ETRS89_bounds().y_min
src_transform = [1.0, 0.0, 0.0, -1.0, x_min, y_max] # might be wrong
reproject(
matrix,
matrix_transform,
src_crs={'init': 'EPSG:5243'},
src_transform = src_transform
dst_crs={'init': 'EPSG:4326'},
dst_transform = None, #I do not believe I need that, is this correct?
resampling=Resampling.bilinear)
# Assert that the destination is only partly filled.
assert matrix_transform.any()
assert not matrix_transform.all()
img = self._make_img_from_matrix(matrix_transform)
Код выдает ошибку "rasterio.errors.CRSError: Invalid CRS"