File v1.4.3-transform-hotfix.patch of Package python-rasterio
From 7608a04567c9960d626b6836ae99b2665e978cee Mon Sep 17 00:00:00 2001
From: Sean Gillies <sean.gillies@gmail.com>
Date: Mon, 17 Feb 2025 16:35:19 -0700
Subject: [PATCH] Revert to using non-Numy affine transformation operation
Resolves #3310
---
rasterio/transform.py | 15 +++------------
1 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/rasterio/transform.py b/rasterio/transform.py
index db2b1a646..079b0a9ab 100644
--- a/rasterio/transform.py
+++ b/rasterio/transform.py
@@ -512,22 +512,13 @@ def __init__(self, affine_transform):
if not isinstance(affine_transform, Affine):
raise ValueError("Not an affine transform")
self._transformer = affine_transform
- self._transform_arr = np.empty((3, 3), dtype='float64')
def _transform(self, xs, ys, zs, transform_direction):
- transform = self._transform_arr
if transform_direction is TransformDirection.forward:
- transform.flat[:] = self._transformer
+ t = self._transformer
elif transform_direction is TransformDirection.reverse:
- transform.flat[:] = ~self._transformer
-
- bi = np.broadcast(xs, ys)
- input_matrix = np.empty((3, bi.size))
- input_matrix[0] = bi.iters[0]
- input_matrix[1] = bi.iters[1]
- input_matrix[2] = 1
- transform.dot(input_matrix, out=input_matrix)
- return input_matrix[0], input_matrix[1]
+ t = ~self._transformer
+ return t * (xs, ys)
def __repr__(self):