Is there a build in way in rasterio to compute the inverse affine transform of an rasterio.transform.Affine
object?
I'm currently doing the following:
from rasterio.transform import Affine
import numpy as np
transform = Affine(29.976, 0, 5.12e5, 0, -29.976, 6.94e6)
matrix_form_transform = np.vstack(
[
np.array(transform.column_vectors).T,
np.array([0,0,1])
]
)
matrix_form_inverse_transform = np.linalg.inv(matrix_form_transform)
inverse_transform = Affine(*matrix_form_inverse_transform[:2, :].ravel())
print(inverse_transform * transform)
# Affine(1.0, 0.0, 0.0,
# -0.0, 1.0, 0.0)
This is quite clunky and I feel like there should be a builtin way to get to this but I can't find it.