You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
geotiff: GPU stripped windowed read of non-georef TIFF emits float64 coords (regression of #1710) #1753
open_geotiff(path, gpu=True, window=...) on a TIFF with no GeoTIFF tags (no ModelPixelScale / ModelTiepoint / GeoKeyDirectory) returns float64 coords like [-0.5, -1.5, ...] synthesised from the default unit GeoTransform, instead of integer pixel coords [0, 1, 2, ...] that the eager numpy and dask paths emit.
This was fixed in #1710 for the eager numpy path (open_geotiff), the dask path (read_geotiff_dask), and the tiled GPU path (_gpu_apply_window_band). The stripped-fallback branch in read_geotiff_gpu was missed.
The eager / dask / tiled-GPU paths all guard on geo_info.has_georef. The stripped-GPU fallback in read_geotiff_gpu only checks t is None, which is never true for non-georef files because _extract_transform returns a default GeoTransform() instance with has_georef=False. The default transform has pixel_width=1.0, pixel_height=-1.0, so the PixelIsArea branch produces (c0 + 0.5) * 1.0 + 0 and (r0 + 0.5) * -1.0 + 0 -> [-0.5, -1.5, ...].
Affected backends
gpu=True stripped reads with window=...
gpu=True, chunks=... stripped reads with window=...
The tiled-GPU and CPU paths are not affected.
Severity
HIGH (Cat 2 - coords preservation). Coord dtype changes silently between the input full-read (int64) and the windowed-read on the GPU backend (float64), breaking backend parity. Downstream coord-based math (clipping, interp, xarray slicing) gets different answers depending on which backend is active.
Activity
geotiff: route stripped-GPU windowed reads of non-georef TIFFs throug…
test(geotiff): assert x-axis dtype parity in #1753 regression test
geotiff: GPU stripped windowed coords honour has_georef=False (#1753)
test(geotiff): assert x-axis dtype parity in #1753 regression test
geotiff: GPU stripped windowed coords honour has_georef=False (#1753) (…
geotiff tests: consolidate GPU reader cluster (Sub-PR A of #2438) (#2471