Skip to content

Releases: xarray-contrib/xarray-spatial

v0.10.16

Choose a tag to compare

@brendancol brendancol released this 09 Jul 20:55
275240f

New features

  • bump: add a name parameter to name the output DataArray (#3610)
  • pathfinding: accept Datasets in a_star_search and add type hints and defaults (#3653)

Bug fixes and improvements

  • pathfinding: validate barriers, search_radius, start/goal points, and dims (#3664)
  • pathfinding: stitch multi_stop_search segments lazily on dask backends (#3666)
  • pathfinding: route the HPA* coarse grid without value barriers (#3659)
  • pathfinding: reset the dask graph-token name on outputs (#3656)
  • pathfinding: reuse symmetric costs in optimize_order instead of running reverse A* searches (#3667)
  • pathfinding: fix multi_stop_search on the cupy and dask+cupy backends (#3637)
  • pathfinding: return all-NaN from HPA* when a segment cannot be refined (#3638)
  • pathfinding: map points to the nearest cell center and reject out-of-bounds points in _get_pixel_id (#3635)
  • pathfinding: add golden-value reference tests for a_star_search (#3663)
  • pathfinding: drop the unused has_dask_array import and fix isort ordering (#3658)
  • kde: fix dask backends dropping points on descending-coordinate templates (#3633)
  • kde/line_density: drop non-finite points and segments (#3636)
  • convolution: validate kernel and agg inputs (#3624)
  • convolution: align the dask output dtype with numpy and cupy (#3622)
  • convolution: parallelize the convolve_2d numpy kernel (#3616)
  • convolution: document the cross-correlation convention and pin it with a test (#3619)
  • convolution: fill docstring gaps and fix stale examples (#3620)
  • convolution: drop an unused import and fix isort ordering (#3613)
  • bump: validate agg, count, and spread inputs (#3614)
  • bump: correct the height_func contract and count default in the docstring (#3607)
  • bump: vectorise _partition_bumps to fix the O(n_chunks x count) dask graph build (#3617)
  • bump: fix isort import-ordering drift (#3611)
  • geotiff: pad category_names to pixel indices in _parse_rat for sparse RATs (#3643)
  • geotiff: reject 0D/1D DataArray in to_geotiff with a clear "Expected 2D or 3D" error (#3604)
  • geotiff: remove the previous file's PAM sidecar when to_geotiff overwrites a path (#3599)
  • geotiff: stop a non-finite RAT value in a PAM sidecar from crashing open_geotiff (#3594)
  • geotiff: accumulate color_ramp stats during the streaming dask write (#3600)
  • geotiff: document PAM categorical sidecar behavior and category attrs (#3598)
  • geotiff: fix the to_geotiff docstring tier for extra_tags pass-through (#3596)
  • geotiff: add asv benchmark coverage for read/write paths (#3603)
  • geotiff: add tests for PAM sidecar reader edges and symbology dask stats (#3605)
  • geotiff: fix isort drift in the writer and symbology test (#3589)
  • sky_view_factor: aim rays in ground azimuth space (#3634)
  • bilateral: honor the boundary parameter on the cupy backend (#3632)
  • mahalanobis: add Examples and document NaN propagation (#3581)
  • mahalanobis: test Inf input, all-NaN, and degenerate shapes (#3584)
  • mahalanobis: drop an unused import and fix isort drift (#3582)
  • pycnophylactic: fix a crash on all-NaN zones or unmatched zone ids (#3586)
  • cost_distance: add a backend statement and Examples to the docstring (#3642)
  • templates: cap eager coordinate allocation on the from_template dask path (#3585)
  • templates: test tuple chunks and the explicit-shape chunk-cap message (#3580)
  • templates: sort imports to match the isort config (#3578)
  • analytics: remove the unused xrspatial.analytics module (#3602)
  • ci: pin libjxl to 0.11.* in the geotiff-corpus and cog-validator envs (#3639)
  • docs: point the README AI-review link to the xarray-spatial-skills repo (#3669)

Thanks

Thanks to @Melissari1997 for code and test contributions to this release.

v0.10.15

Choose a tag to compare

@brendancol brendancol released this 29 Jun 21:11
76ebd7e

Bug fixes and improvements

  • terrain: map the generate_terrain dask backends over an empty skeleton so from_template grids no longer drop out of the task graph (#3575)

v0.10.14

Choose a tag to compare

@brendancol brendancol released this 29 Jun 04:22
6383ead

New features

  • templates: add regional templates to from_template for Africa, Asia, the Americas, and Oceania (#3553)
  • templates: add global-projection templates to from_template (web_mercator, wgs84/latlon, equal_earth) (#3550)
  • templates: accept explicit height/width and produce dask-aligned extents in from_template (#3567)
  • templates: add coregister and neighborhood-friendly dask chunks to from_template (#3562)
  • accessor: expose multi_stop_search on the .xrs DataArray and Dataset accessors (#3564)

Bug fixes and improvements

  • preview: recompute the res attribute for downsampled preview() output (#3570)
  • rasterize/kde/line_density: set output attrs['res'] when the grid resolution changes (#3572)
  • classify: return all-NaN instead of crashing on all-non-finite input (#3548)
  • proximity: match the cKDTree max_distance check to the brute-force float32 convention (#3555)
  • templates: guard dask grids against task-graph explosion (#3559)
  • templates: skip the cell cap for lazy dask grids when chunks is supplied (#3556)
  • terrain: speed up the generate_terrain numpy backend with a fused parallel kernel (#3566)
  • templates: add type hints to from_template and list_templates (#3543)
  • interpolate: add IDW examples and backend-support notes to the docs (#3547)
  • templates: fix a stale UTM zone in the from_template FRA example (#3544)
  • benchmark: guard the datashader import in the rasterizer benchmark (#3560)
  • geotiff: cover symbology sidecars on dask, dask+GPU, 3D single-band, and color_ramp_range (#3546)
  • templates: cover single-pixel/strip grids and resolution-tuple validation in tests (#3540)
  • curvature: fix isort import-ordering (#3568)

v0.10.13

Choose a tag to compare

@brendancol brendancol released this 26 Jun 18:26
5da5062

New features

  • geotiff: write continuous-raster symbology sidecars (.qml + PAM statistics) from to_geotiff (#3537) (#3538)
  • templates: add list_templates() to discover from_template names (#3536)
  • templates: add major world cities as bounding-box templates in from_template (#3534)
  • fire: accept m/min spread rate in fireline_intensity by default (#3527) (#3529)
  • hydrology: make routing the sole public hydrology API surface (#3528) (#3530)
  • accessor: add coregister=True to .xrs.rasterize (#3492) (#3493)

Bug fixes and improvements

  • flood: fix float32 dtype leak in flood_depth/curve_number_runoff dask backends (#3499) (#3509)
  • flood: fix dask backends emitting float32 output for float32 input (#3498)
  • flood: make mannings_n DataArray validation lazy-safe (#3503) (#3507)
  • flood: fix E305 and collapse utils import (#3504)
  • flood: add missing reference entries, examples, and backend notes (#3502)
  • binary: output float32 on all backends (#3514)
  • binary: type the dask+cupy meta so the lazy dtype matches float32 (#3508) (#3513)
  • geotiff: stop a short-row PAM RAT from crashing open_geotiff (#3522)
  • geotiff: add Examples section to to_geotiff docstring (#3521)
  • geotiff: cover categorical PAM sidecar round-trip on dask and GPU write paths (#3518) (#3519)
  • geotiff: join backslash-continued import in test (isort) (#3517)
  • templates: use CF Conventions metadata instead of crs_units/crs_name (#3532)
  • templates: fill all-NaN templates in generate_terrain (numpy/cupy) (#3526)
  • templates: honor requested resolution exactly in from_template() (#3494) (#3495)
  • classify: fix stale example outputs and add missing examples (#3516)
  • classify: cover all-NaN degenerate input across classifiers (#3515)
  • classify: document num_sample=None in natural_breaks docstring (#3505)
  • fire: add Examples sections and backend-support notes to docstrings (#3512)
  • fire: add Inf/-Inf regression tests (#3500)
  • multispectral: test vegetation_roughness ndvi on dask+cupy backend (#3497)

v0.10.12

Choose a tag to compare

@brendancol brendancol released this 25 Jun 15:07
ada7d9b

New features

  • templates: add from_template() for empty study-area DataArrays over common regions (#3484) (#3487)
  • accessor: add .xrs.validate() to check a raster against the xarray-spatial contract (#3486)
  • accessor: add a categorized repr to the .xrs accessor (#3476) (#3477)
  • accessor: forward per-tool repr to the accessed tool (#3478) (#3479)
  • interpolation: accept GeoDataFrames and expose on the .xrs accessor with coregister (#3481)
  • rasterize: support string/categorical columns with QGIS-visible labels (#3483)

Bug fixes and improvements

  • proximity: fix EUCLIDEAN proximity/allocation/direction dropping targets at exact max_distance (#3443)
  • perlin: preserve input x/y coordinates on the output (#3470)
  • perlin: preserve input dtype on the dask backends (#3471)
  • perlin: fix dask OOM by dropping a redundant dask.persist (#3469) (#3473)
  • perlin: document the name parameter in the docstring (#3468)
  • perlin: document name param, float-dtype requirement, and ValueError (#3467)
  • perlin: drop unused not_implemented_func import, fix isort wrap (#3466)
  • perlin: add test coverage for params, degenerate shapes, and metadata (#3472)
  • perlin: fix stale test_perlin coords assertion after coords preservation (#3489)
  • generate_terrain: preserve caller coords/res/crs (#3474) (#3475)
  • least_cost_corridor: propagate friction geo-attrs (#3446) (#3449)
  • corridor: validate matching shapes for precomputed surfaces (#3447)
  • corridor: add strip, cross-backend, param, and metadata test coverage (#3448)
  • fire: add test coverage for dask+cupy dispatch and metadata preservation (#3444)

v0.10.11

Choose a tag to compare

@brendancol brendancol released this 22 Jun 13:51
4108b32

Bug fixes and improvements

  • classify: align natural_breaks parameter order with sibling classifiers (#3418)
  • multispectral: propagate input dims/coords through true_color() (#3429) (#3434)
  • multispectral: fix nbr() docstring parameter name to match signature (swir2_agg) (#3435)
  • multispectral: remove unused import and fix import ordering (#3428) (#3432)
  • multispectral: add test coverage for true_color edges and evi/savi validation (#3436)
  • diffusion: drop unused import, sort imports (#3421) (#3423)
  • diffusion: add test coverage for cupy/dask+cupy, reflect boundary, and edge shapes (#3424)
  • disaggregate: fix limiting_variable silently losing a zone's value (#3403) (#3414)
  • disaggregate: vectorize the zone-membership loop (#3408) (#3420)
  • dasymetric: add test coverage for metadata, 1x1, Inf weight, 3-class limiting_variable (#3419)
  • dasymetric: clean up lint (F401, E128, isort) (#3411)
  • classify: keep the large-array sampler O(num_sample) in host memory (#3416)
  • classify: add edge-case and error-path test coverage (#3417)
  • classify: remove unused import and fix isort ordering (#3405)
  • morphology: remove unused imports and dead local, fix import order (#3413)
  • morphology: skip the memory guard for lazy dask inputs (#3401) (#3410)
  • morphology: add missing accessor methods (#3409)
  • morphology: add test coverage for edge inputs (Inf, all-NaN, strip, integer) (#3415)
  • viewshed: add tests for 1x1, all-NaN, and Inf-terrain edge cases (#3425) (#3426)
  • proximity: match GPU max_distance precision to the CPU brute-force (#3389) (#3391)
  • proximity: fix isort import-ordering drift (#3393)
  • proximity: cover Dataset input for proximity/allocation/direction (#3390)
  • fire: declare float32 dtype on the dask+numpy backend (#3394) (#3396)
  • fire: drop dead code and fix import ordering (#3395) (#3397)
  • aspect: sort imports per isort config (#3437) (#3438)
  • aspect: test Inf and all-NaN elevation input across backends (#3439) (#3440)
  • engine: carry the coregister/auto_reproject target on the parameter value (#3380)
  • rasterize: match dask all_touched polygon boundary to eager on grid lines (#3384) (#3386)
  • rasterize: add validation-guard test coverage (#3383) (#3385)
  • zonal: vectorize _sort_and_stride 3D reindex, drop deepcopy (#3381) (#3382)

v0.10.10

Choose a tag to compare

@brendancol brendancol released this 17 Jun 20:53
9704307

New features

  • geotiff: expose the GeoTIFF loader as an xarray backend engine (#3365) (#3375)
  • geotiff: expose coregistered reads through the xarray engine via like= (#3376) (#3377)

Bug fixes and improvements

  • geotiff: read and parse a local file once on the chunked GPU read path (#3373) (#3374)
  • geotiff: reject predictor with jpeg2000/lerc/jpeg compression (#3371) (#3372)
  • cost_distance: fix Dijkstra heap overflow on non-uniform friction (#3370)
  • cost_distance: add test for the dask all-impassable early return (#3367) (#3368)
  • ci: add free-threaded Python 3.14 (3.14t) to the test matrix (#3360)
  • ci: make test_chunks_is_lazy counter thread-safe for free-threaded CI (#3363) (#3364)
  • ci: scope the 'performance' labeler to benchmarked modules (#3357)
  • remove AI-assistant tooling definitions (#3362)

v0.10.9

Choose a tag to compare

@brendancol brendancol released this 15 Jun 19:23
ef65fa3

Bug fixes and improvements

  • cost_distance: route bounded large-radius dask path to iterative Dijkstra (#3345)
  • cost_distance: guard the numpy dask chunk path with _check_memory (#3346)
  • cost_distance: fix leaking dask task name as output .name (#3349)
  • cost_distance: replace mutable default target_values=[] with a None sentinel (#3348)
  • cost_distance: add tests for 1x1 raster, Inf friction, and metadata (#3347)
  • cost_distance: fix flake8/isort findings (#3350)
  • contour: batch dask chunk compute to bound client memory (#3334)
  • contour: remove redundant np.empty_like allocation in the coordinate transform (#3354)
  • contour: add test coverage for all-equal auto-levels and empty explicit levels (#3353)
  • geotiff: reject a zero or non-finite ModelPixelScale on read (#3332)
  • geotiff: fix isort import ordering in _writers/eager.py (#3330)
  • docs: fix file paths in the deep-sweep documentation (#3336)

Thanks

Thanks to @Melissari1997 for code and test contributions to this release.

v0.10.8

Choose a tag to compare

@brendancol brendancol released this 15 Jun 12:47
e2c258b

Bug fixes and improvements

  • geotiff: gate dict gdal_metadata behind the experimental rich-tag opt-in (#3327)
  • name dask tasks for remaining xrspatial tool modules (#3326)
  • geotiff: don't flip masked_nodata True on a caller dtype= cast of an unmasked buffer (#3325)
  • to_geotiff: type-check compression_level (#3324)
  • rasterize: burn all_touched lines with the supercover walk (#3322)
  • focal: handle empty rasters consistently across backends (#3319)
  • reproject: promote large-output in-memory cupy inputs to dask (#3318)
  • reproject: serialize all parallel=True kernel launches behind one lock (#3317)
  • docs: add an examples-and-data getting-started page and landing index (#3316)

v0.10.7

Choose a tag to compare

@brendancol brendancol released this 14 Jun 04:51
9c1a81a

Version 0.10.7 - 2026-06-13

New features

  • to_geotiff: add pack=True, the inverse of mask_and_scale (#3064) (#3065)
  • open_geotiff: add coregister=True (mask_and_scale + reproject + match grid) (#3069) (#3070) (#3072)
  • open_geotiff: pick reproject resampling by raster type under auto_reproject=True (#3067) (#3068)
  • open_geotiff: rename mask_and_scale to unpack and add GPU / dask+GPU support (#3075)

Bug fixes and improvements

  • polygonize: reject invalid return_type before running the computation (#3312)
  • polygonize: document that column_name is also used for geojson output (#3309)
  • kriging: keep template backend and variance name in the singular-matrix fallback (#3294)
  • rasterize: drop non-finite-coordinate geometries and clamp row casts (#3310)
  • merge: add GPU tests for mixed-type first/last ordering (#3296) (#3302)
  • interpolate: add edge-case and parameter test coverage (#3300)
  • polygonize: honor _xrspatial_no_georef in CRS detection (#3293) (#3308)
  • polygonize: jit the float-chunk region ranges scan (#3303) (#3314)
  • rasterize: burn each geometry once per pixel under merge='sum'/'count' (#3313)
  • interpolate: cut redundant work in the backends (#3311)
  • rasterize: widen the dtype annotation to the accepted forms (#3291) (#3297)
  • kriging: name the singular-fallback variance '{name}_variance' (#3289)
  • polygonize: cover the dask mask-rechunk path (#3299) (#3305)
  • polygonize: raise on uint32 region overflow in the cupy integer backend (#3292) (#3301)
  • interpolate: drop unused math import and fix isort drift (#3286) (#3287)
  • docs: add a why-xarray-spatial page, retire raster_huh (#3249) (#3284)
  • geotiff: fill pack=True nodata holes at the integer dtype's native width (#3277)
  • ci: add a docs-build job (#3252)
  • projection: read ITRF Helmert scale as ppm to match PROJ's data files (#3283)
  • projection: reject non-WGS84 ellipsoids in the fast-path dispatch (#3282)
  • projection: fix LAEA inverse rq normalization and authalic inverse series (#3280)
  • reproject: upload shared coordinate arrays once per chunk in multi-band cupy (#3279)
  • reproject: promote to the dask path when the output is large (#3278)
  • geotiff: export VRTUnsupportedError, CloudSizeLimitError, PixelSafetyLimitError publicly (#3265) (#3273)
  • geotiff: refuse pack=True values the packed integer dtype cannot hold (#3272)
  • merge: keep the shared integer input dtype instead of promoting to float64 (#3271)
  • geotiff: add gpu and dask+gpu legs to the pack=True feature tests (#3270)
  • geotiff: correct the unpack docstring (masking still runs without scale/offset) (#3263) (#3269)
  • geotiff: rewrap _attrs import in _writers/gpu.py to isort line_length=100 (#3259) (#3261)
  • docs: replace the usage page with a runnable quickstart (#3249) (#3258)
  • docs: rewrite the installation page (environments, extras, GPU and cloud notes) (#3257)
  • dask: name compute tasks xrspatial. for readable task graphs (#3255)
  • docs: fix stale Datashader claim and hardcoded links in getting-started (#3249) (#3251)
  • geotiff: coregister=True reads COG overviews and fails fast on bad templates (#3254)
  • geotiff: document coregister=True and register it as an experimental feature (#3248)
  • geotiff: warn when coregister=True covers only a small fraction of the caller grid (#3247)
  • proximity: replace the numpy line-sweep with an exact cKDTree query (#3245)
  • projection: add dask end-to-end warning test, lock note on _crs_to_dict (#3242) (#3244)
  • projection: silence the pyproj lossy-PROJ-string warning in param extractors (#3242) (#3243)
  • geotiff: stream dask input through the GPU writer one tile-row band at a time (#3241)
  • geotiff: fix to_geotiff(pack=True) crash on cupy and dask+cupy input (#3240)
  • geotiff: keep float32 sources float32 through to_geotiff(pack=True) (#3080) (#3239)
  • hotspots: raise instead of returning all zeros when the raster contains Inf (#3238)
  • geotiff: defer the pack=True NaN guard into the dask graph so chunks compute once (#3237)
  • geotiff: forward caller chunking to the coregister/auto_reproject output (#3236)
  • visibility: add cupy backend, NaN, and Fresnel-blocked coverage (#3202)
  • visibility: fix the cupy backend crash in cumulative_viewshed/visibility_frequency (#3205)
  • zonal: add GPU backend coverage for regions and crosstab (#3203)
  • focal: make the kernel memory guard dtype-aware (#3223) (#3232)
  • focal: resolve apply() default func per backend (#3215) (#3224)
  • focal: add edge-case and parameter tests from the test-coverage sweep (#3230)
  • hotspots: fix the docstring backend list and kernel weight semantics (#3216) (#3227)
  • clip_polygon: align dask+cupy mask chunks before map_blocks (#3186) (#3204)
  • focal: make output dtype consistent across backends (#3226)
  • clip_polygon: use the largest chunk for the rasterize mask on dask (#3191) (#3201)
  • visibility: compute the dask source once in cumulative_viewshed (#3185) (#3199)
  • polygon_clip: remove unused imports and fix import order (#3198)
  • visibility: align output name and frequency_mhz hint with viewshed (#3183) (#3195)
  • geotiff: fix to_geotiff dask+cupy crash in the CPU streaming writer (gpu=False) (#3171)
  • clip_polygon: make nodata dtype consistent across backends (#3208)
  • mcda: fix the owa() dask path and batch wpm() validation into one scheduler pass (#3158)
  • hypsometric_integral: validate raster inputs (#3211)
  • regions: vectorize the relabel loop (#3207) (#3212)
  • mcda: fix cupy and dask backend failures in owa, standardize, and sensitivity (#3146) (#3157)
  • mcda: fix API consistency (owa weights param, boolean_overlay Dataset input, ahp_weights docs, ConsistencyResult export) (#3148) (#3155)
  • mcda: add cupy, dask, metadata, and edge-case test coverage (#3149) (#3156)
  • mcda: guard monte_carlo dask materialization against OOM (#3145) (#3153)
  • proximity: add coverage tests (int rasters, bounded GPU metrics, empty input) (#3139) (#3140)
  • geotiff: add reader.unpack / writer.pack to SUPPORTED_FEATURES at experimental tier (#3172)
  • focal: preserve input float dtype in mean() across all backends (#3214) (#3221)
  • proximity: fix stale proximity/allocation/direction docstrings (#3091) (#3138)
  • visibility: fix isort import-ordering (#3182) (#3189)
  • geotiff: thread the nodata kwarg into _pack's NaN fill so pack=True holes match GDAL_NODATA (#3168) (#3174)
  • mcda: remove unused warnings import, fix isort drift (#3143) (#3144)
  • geotiff: rewrite stale per-band SCALE/OFFSET in to_geotiff(pack=True) after band-subset reads (#3175)
  • geotiff: validate compression_level before GPU dispatch and pass it to fallback codecs (#3167) (#3176)
  • vrt: place non-georeferenced tiles by explicit pixel offsets (#3116) (#3135)
  • projection: document actual return types of vertical datum functions (#3097) (#3134)
  • mcda: keep standardize piecewise/categorical on the device for cupy inputs (#3159)
  • geotiff: fix the compression corpus fixture path so oracle tests actually run (#3164) (#3169)
  • geotiff: warn when the GPU writer materializes dask input; scope streaming docs to the CPU path (#3173)
  • focal: hoist the input cast out of the cupy focal_stats loop (#3231) (#3233)
  • focal: make the memory guard backend-aware for dask input (#3218) (#3228)
  • clip_polygon: add backend/edge-case/metadata test coverage (#3197) (#3206)
  • docs: fix the README to_geotiff example that used the gated JPEG codec (#3162) (#3170)
  • zonal: tighten crosstab zone_ids/cat_ids type hints and fix stale nodata docstring (#3196)
  • mcda: preserve input attrs in constrain() (#3147) (#3154)
  • reproject: keep integer dtype for empty chunks (#3096) (#3133)
  • mcda: make monte_carlo sensitivity chunk-bounded on dask and drop constrain() deep copy (#3160)
  • rasterize: drop two avoidable full-raster allocations in the backends (#3107) (#3131)
  • proximity: fix bounded dask GREAT_CIRCLE missing antimeridian targets (#3108) (#3130)
  • geotiff: mask 64-bit integer sentinels at native width in eager reads (#3098) (#3128)
  • reproject: accept cupy and dask+cupy inputs in merge() (#3095) (#3125)
  • geotiff: add xfail'd GPU and dask+GPU pack=True round-trip tests (#3114) (#3127)
  • proximity: sort dask KDTree targets row-major so the tie-break matches numpy (#3090) (#3124)
  • proximity: hoist the line-sweep kernel to module level to stop per-call recompiles (#3103) (#3126)
  • rasterize: add all_touched-line and non-iterable-input coverage tests (#3120)
  • rasterize: rename use_cuda to gpu with a deprecation shim (#3089) (#3122)
  • geotiff: reject zero and non-finite SCALE/OFFSET under unpack=True; guard pack=True against divide-by-zero (#3104) (#3129)
  • reproject: gate the CUDA fast path on WGS84-compatible datums (#3094) (#3119)
  • geotiff: group streaming-write rows into bands so source chunks compute once (#3117) (#3136)
  • reproject: skip the duplicate try_numba_transform probe in the numpy chunk worker (#3123)
  • reproject: remove the obsolete strict xfail on the streaming 3-D test (#3100) (#3181)
  • reproject: add tests for the streaming fallback path (#3101) (#3118)
  • reproject: match streaming output dtype to the other backends (#3093) (#3111)
  • geotiff: name unpack instead of the deprecated mask_and_scale alias in docs and errors (#3115)
  • geotiff: keep regression tests and sweep state after #3109 landed the guard (#3088) (#3110)
  • proximity: build dask coordinate grids with chunk-aligned broadcast (#3132) (#3137)
  • rasterize: propagate GeoDataFrame CRS to output when like has none (#3087) (#3113)
  • rasterize: reject non-finite burn values against integer and bool output dtypes (#3085) (#3109)
  • reproject: remove unused import and dead local, fix import order in init.py (#3083) (#3092)
  • geotiff: fix isort import-ordering drift (#3082) (#3084)
  • merge: make the output-size guard backend-aware (#3048) (#3081)
  • geotiff: restore the nodata sentinel for float rasters in to_geotiff(pack=True) (#3078) (#3079)
  • projection: silence the pyproj PROJ-string warning in _get_datum_params (#3076) (#3077)
  • resample: add ...
Read more