rasterio / affine

Affine transformation matrices
BSD 3-Clause "New" or "Revised" License
156 stars 28 forks source link

Faster __new__/from_gdal methods #78

Closed groutr closed 1 year ago

groutr commented 1 year ago

A faster implementation of Affine.__new__.

%timeit Affine(3, 2, 5, 1, 2, 3)
1.21 µs ± 48.9 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
vs.
%timeit Affine(3, 2, 5, 1, 2, 3)
727 ns ± 30.1 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)

Similar speedup in Affine.from_gdal

%timeit Affine.from_gdal(3, 2, 5, 1, 2, 3)
1.16 µs ± 11 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
vs.
%timeit Affine.from_gdal(3, 2, 5, 1, 2, 3)
784 ns ± 9.34 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)