Skip to content

Commit 9c1a81a

Browse files
authored
Update CHANGELOG for v0.10.7 release (#3315)
1 parent 719cd9c commit 9c1a81a

1 file changed

Lines changed: 135 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,141 @@
22
-----------
33

44

5+
### Version 0.10.7 - 2026-06-13
6+
7+
#### New features
8+
- to_geotiff: add pack=True, the inverse of mask_and_scale (#3064) (#3065)
9+
- open_geotiff: add coregister=True (mask_and_scale + reproject + match grid) (#3069) (#3070) (#3072)
10+
- open_geotiff: pick reproject resampling by raster type under auto_reproject=True (#3067) (#3068)
11+
- open_geotiff: rename mask_and_scale to unpack and add GPU / dask+GPU support (#3075)
12+
13+
#### Bug fixes and improvements
14+
- polygonize: reject invalid return_type before running the computation (#3312)
15+
- polygonize: document that column_name is also used for geojson output (#3309)
16+
- kriging: keep template backend and variance name in the singular-matrix fallback (#3294)
17+
- rasterize: drop non-finite-coordinate geometries and clamp row casts (#3310)
18+
- merge: add GPU tests for mixed-type first/last ordering (#3296) (#3302)
19+
- interpolate: add edge-case and parameter test coverage (#3300)
20+
- polygonize: honor _xrspatial_no_georef in CRS detection (#3293) (#3308)
21+
- polygonize: jit the float-chunk region ranges scan (#3303) (#3314)
22+
- rasterize: burn each geometry once per pixel under merge='sum'/'count' (#3313)
23+
- interpolate: cut redundant work in the backends (#3311)
24+
- rasterize: widen the dtype annotation to the accepted forms (#3291) (#3297)
25+
- kriging: name the singular-fallback variance '{name}_variance' (#3289)
26+
- polygonize: cover the dask mask-rechunk path (#3299) (#3305)
27+
- polygonize: raise on uint32 region overflow in the cupy integer backend (#3292) (#3301)
28+
- interpolate: drop unused math import and fix isort drift (#3286) (#3287)
29+
- docs: add a why-xarray-spatial page, retire raster_huh (#3249) (#3284)
30+
- geotiff: fill pack=True nodata holes at the integer dtype's native width (#3277)
31+
- ci: add a docs-build job (#3252)
32+
- projection: read ITRF Helmert scale as ppm to match PROJ's data files (#3283)
33+
- projection: reject non-WGS84 ellipsoids in the fast-path dispatch (#3282)
34+
- projection: fix LAEA inverse rq normalization and authalic inverse series (#3280)
35+
- reproject: upload shared coordinate arrays once per chunk in multi-band cupy (#3279)
36+
- reproject: promote to the dask path when the output is large (#3278)
37+
- geotiff: export VRTUnsupportedError, CloudSizeLimitError, PixelSafetyLimitError publicly (#3265) (#3273)
38+
- geotiff: refuse pack=True values the packed integer dtype cannot hold (#3272)
39+
- merge: keep the shared integer input dtype instead of promoting to float64 (#3271)
40+
- geotiff: add gpu and dask+gpu legs to the pack=True feature tests (#3270)
41+
- geotiff: correct the unpack docstring (masking still runs without scale/offset) (#3263) (#3269)
42+
- geotiff: rewrap _attrs import in _writers/gpu.py to isort line_length=100 (#3259) (#3261)
43+
- docs: replace the usage page with a runnable quickstart (#3249) (#3258)
44+
- docs: rewrite the installation page (environments, extras, GPU and cloud notes) (#3257)
45+
- dask: name compute tasks xrspatial.<tool> for readable task graphs (#3255)
46+
- docs: fix stale Datashader claim and hardcoded links in getting-started (#3249) (#3251)
47+
- geotiff: coregister=True reads COG overviews and fails fast on bad templates (#3254)
48+
- geotiff: document coregister=True and register it as an experimental feature (#3248)
49+
- geotiff: warn when coregister=True covers only a small fraction of the caller grid (#3247)
50+
- proximity: replace the numpy line-sweep with an exact cKDTree query (#3245)
51+
- projection: add dask end-to-end warning test, lock note on _crs_to_dict (#3242) (#3244)
52+
- projection: silence the pyproj lossy-PROJ-string warning in param extractors (#3242) (#3243)
53+
- geotiff: stream dask input through the GPU writer one tile-row band at a time (#3241)
54+
- geotiff: fix to_geotiff(pack=True) crash on cupy and dask+cupy input (#3240)
55+
- geotiff: keep float32 sources float32 through to_geotiff(pack=True) (#3080) (#3239)
56+
- hotspots: raise instead of returning all zeros when the raster contains Inf (#3238)
57+
- geotiff: defer the pack=True NaN guard into the dask graph so chunks compute once (#3237)
58+
- geotiff: forward caller chunking to the coregister/auto_reproject output (#3236)
59+
- visibility: add cupy backend, NaN, and Fresnel-blocked coverage (#3202)
60+
- visibility: fix the cupy backend crash in cumulative_viewshed/visibility_frequency (#3205)
61+
- zonal: add GPU backend coverage for regions and crosstab (#3203)
62+
- focal: make the kernel memory guard dtype-aware (#3223) (#3232)
63+
- focal: resolve apply() default func per backend (#3215) (#3224)
64+
- focal: add edge-case and parameter tests from the test-coverage sweep (#3230)
65+
- hotspots: fix the docstring backend list and kernel weight semantics (#3216) (#3227)
66+
- clip_polygon: align dask+cupy mask chunks before map_blocks (#3186) (#3204)
67+
- focal: make output dtype consistent across backends (#3226)
68+
- clip_polygon: use the largest chunk for the rasterize mask on dask (#3191) (#3201)
69+
- visibility: compute the dask source once in cumulative_viewshed (#3185) (#3199)
70+
- polygon_clip: remove unused imports and fix import order (#3198)
71+
- visibility: align output name and frequency_mhz hint with viewshed (#3183) (#3195)
72+
- geotiff: fix to_geotiff dask+cupy crash in the CPU streaming writer (gpu=False) (#3171)
73+
- clip_polygon: make nodata dtype consistent across backends (#3208)
74+
- mcda: fix the owa() dask path and batch wpm() validation into one scheduler pass (#3158)
75+
- hypsometric_integral: validate raster inputs (#3211)
76+
- regions: vectorize the relabel loop (#3207) (#3212)
77+
- mcda: fix cupy and dask backend failures in owa, standardize, and sensitivity (#3146) (#3157)
78+
- mcda: fix API consistency (owa weights param, boolean_overlay Dataset input, ahp_weights docs, ConsistencyResult export) (#3148) (#3155)
79+
- mcda: add cupy, dask, metadata, and edge-case test coverage (#3149) (#3156)
80+
- mcda: guard monte_carlo dask materialization against OOM (#3145) (#3153)
81+
- proximity: add coverage tests (int rasters, bounded GPU metrics, empty input) (#3139) (#3140)
82+
- geotiff: add reader.unpack / writer.pack to SUPPORTED_FEATURES at experimental tier (#3172)
83+
- focal: preserve input float dtype in mean() across all backends (#3214) (#3221)
84+
- proximity: fix stale proximity/allocation/direction docstrings (#3091) (#3138)
85+
- visibility: fix isort import-ordering (#3182) (#3189)
86+
- geotiff: thread the nodata kwarg into _pack's NaN fill so pack=True holes match GDAL_NODATA (#3168) (#3174)
87+
- mcda: remove unused warnings import, fix isort drift (#3143) (#3144)
88+
- geotiff: rewrite stale per-band SCALE/OFFSET in to_geotiff(pack=True) after band-subset reads (#3175)
89+
- geotiff: validate compression_level before GPU dispatch and pass it to fallback codecs (#3167) (#3176)
90+
- vrt: place non-georeferenced tiles by explicit pixel offsets (#3116) (#3135)
91+
- projection: document actual return types of vertical datum functions (#3097) (#3134)
92+
- mcda: keep standardize piecewise/categorical on the device for cupy inputs (#3159)
93+
- geotiff: fix the compression corpus fixture path so oracle tests actually run (#3164) (#3169)
94+
- geotiff: warn when the GPU writer materializes dask input; scope streaming docs to the CPU path (#3173)
95+
- focal: hoist the input cast out of the cupy focal_stats loop (#3231) (#3233)
96+
- focal: make the memory guard backend-aware for dask input (#3218) (#3228)
97+
- clip_polygon: add backend/edge-case/metadata test coverage (#3197) (#3206)
98+
- docs: fix the README to_geotiff example that used the gated JPEG codec (#3162) (#3170)
99+
- zonal: tighten crosstab zone_ids/cat_ids type hints and fix stale nodata docstring (#3196)
100+
- mcda: preserve input attrs in constrain() (#3147) (#3154)
101+
- reproject: keep integer dtype for empty chunks (#3096) (#3133)
102+
- mcda: make monte_carlo sensitivity chunk-bounded on dask and drop constrain() deep copy (#3160)
103+
- rasterize: drop two avoidable full-raster allocations in the backends (#3107) (#3131)
104+
- proximity: fix bounded dask GREAT_CIRCLE missing antimeridian targets (#3108) (#3130)
105+
- geotiff: mask 64-bit integer sentinels at native width in eager reads (#3098) (#3128)
106+
- reproject: accept cupy and dask+cupy inputs in merge() (#3095) (#3125)
107+
- geotiff: add xfail'd GPU and dask+GPU pack=True round-trip tests (#3114) (#3127)
108+
- proximity: sort dask KDTree targets row-major so the tie-break matches numpy (#3090) (#3124)
109+
- proximity: hoist the line-sweep kernel to module level to stop per-call recompiles (#3103) (#3126)
110+
- rasterize: add all_touched-line and non-iterable-input coverage tests (#3120)
111+
- rasterize: rename use_cuda to gpu with a deprecation shim (#3089) (#3122)
112+
- geotiff: reject zero and non-finite SCALE/OFFSET under unpack=True; guard pack=True against divide-by-zero (#3104) (#3129)
113+
- reproject: gate the CUDA fast path on WGS84-compatible datums (#3094) (#3119)
114+
- geotiff: group streaming-write rows into bands so source chunks compute once (#3117) (#3136)
115+
- reproject: skip the duplicate try_numba_transform probe in the numpy chunk worker (#3123)
116+
- reproject: remove the obsolete strict xfail on the streaming 3-D test (#3100) (#3181)
117+
- reproject: add tests for the streaming fallback path (#3101) (#3118)
118+
- reproject: match streaming output dtype to the other backends (#3093) (#3111)
119+
- geotiff: name unpack instead of the deprecated mask_and_scale alias in docs and errors (#3115)
120+
- geotiff: keep regression tests and sweep state after #3109 landed the guard (#3088) (#3110)
121+
- proximity: build dask coordinate grids with chunk-aligned broadcast (#3132) (#3137)
122+
- rasterize: propagate GeoDataFrame CRS to output when like has none (#3087) (#3113)
123+
- rasterize: reject non-finite burn values against integer and bool output dtypes (#3085) (#3109)
124+
- reproject: remove unused import and dead local, fix import order in __init__.py (#3083) (#3092)
125+
- geotiff: fix isort import-ordering drift (#3082) (#3084)
126+
- merge: make the output-size guard backend-aware (#3048) (#3081)
127+
- geotiff: restore the nodata sentinel for float rasters in to_geotiff(pack=True) (#3078) (#3079)
128+
- projection: silence the pyproj PROJ-string warning in _get_datum_params (#3076) (#3077)
129+
- resample: add dask+numpy nodata-masking value-parity tests (#3073) (#3074)
130+
- rasterize: treat a LinearRing as a line; warn on dropped geometries (#3055) (#3063)
131+
- rasterize: guard against geometry/like CRS mismatch (#3058) (#3062)
132+
- rasterize: reject large integer burn values that float64 cannot hold exactly (#3056) (#3060)
133+
- geotiff: warn on non-atomic custom GPU merge over overlap (#3061)
134+
- rasterize: reject fills the output dtype cannot represent exactly (#3059)
135+
136+
#### Contributors
137+
- Thanks to @brendancol for contributions to this release.
138+
139+
5140
### Version 0.10.6 - 2026-06-08
6141

7142
#### New features

0 commit comments

Comments
 (0)