History#

0.12.0 (2026-04-21)#

  • MNT: Unpin xarray, require xarray >= 2026.4.0 in requirements.txt, environment.yml, ci/unittests.yml, and ci/notebooktests.yml by @aladinor

  • MNT: Clarify contributor, team-member, and maintainer roles in the contributing guide, including the pathway to greater project involvement (GH 341) by @kmuehlbauer, (PR 354) by @syedhamidali

  • FIX: open_nexradlevel2_datatree keeps sweeps with interior sweep-index gaps — derive sweep names from actual indices in nex.data instead of range(len(...)) so upstream-dropped interior cuts (e.g. [0..9, 11]) no longer raise KeyError (GH 361, PR 362) by @aladinor

  • ADD: open_cfradial2_datatree reader with grouped CfRadial2 compatibility normalization for common FM301/CfRadial2 naming differences (GH 93, GH 287), (PR 349) by @syedhamidali

  • ENH: Move station coordinates (latitude, longitude, altitude) to root node as coordinates for DataTree coordinate inheritance (GH 331, PR 333) by @aladinor

  • ENH: Add optional_groups parameter (default False) to all open_*_datatree() functions to control inclusion of /radar_parameters, /georeferencing_correction, and /radar_calibration subgroups (GH 331, PR 333) by @aladinor

  • ENH: Skip redundant station coordinate reads for subsequent sweeps in DataTree by passing site_as_coords=False and extracting shared _apply_site_as_coords helper (GH 334, PR 337) by @aladinor

  • ADD: Support list/tuple of chunk files (bytes, file-like, or paths) as input to open_nexradlevel2_datatree for streaming NEXRAD Level 2 data from S3 chunk buckets (PR 332) by @aladinor

  • ADD: incomplete_sweep parameter ("drop"/"pad") to open_nexradlevel2_datatree for handling incomplete sweeps in partial volume data (PR 332) by @aladinor

  • ADD: Notebook example for streaming NEXRAD Level 2 chunks from S3 (nexrad_read_chunks.ipynb) (PR 332) by @aladinor

  • ADD: Comprehensive test suite for chunk list-input and incomplete sweep handling (PR 332) by @aladinor

  • ENH: Expose NEXRAD ICD scan metadata (AVSET/SAILS/MRLE/MPDA/BASE TILT flags, VCP sequencing, per-sweep waveform data) as FM301-compliant user-defined attributes (GH 338, PR 339) by @aladinor

  • FIX: Set indexes and wrap variables in CopyOnWriteArray for ODIM and GAMIC backends, fixes pickle error for BufferedReader (GH 189) by @Ockenfuss, (PR 345) by @kmuehlbauer

  • FIX: Allow passing inherit parameter to apply_to_sweeps / map_over_sweeps to control coordinate inheritance from root node (GH 343, PR 344) by @aladinor

  • FIX: Use open-radar-data fixture as fallback for nexrad_read_chunks.ipynb notebook, replacing dependency on ephemeral S3 chunk data (GH 351, PR 352) by @aladinor

  • MNT: Pin open-radar-data>=0.6.0 for NEXRAD chunk test data (PR 352) by @aladinor

  • MNT: Transform ipynb notebooks to myst markdown notebooks (GH 342, PR 348) by @kmuehlbauer

  • DOC: Link WMO Manual on Codes in README.md (GH 308, PR 353 ) @kmuehlbauer

0.11.1 (2026-02-03)#

0.11.0 (2026-01-12)#

  • ENH: get radar coordinates with given reference system (GH 243) (PR 300) by @egouden

  • ENH: Disable fill value in rainbow reader (GH 103) (PR 290) by @egouden

  • ADD: read nyquist_velocity in ODIM and GAMIC HDF5 files (PR 291) by @katelbach

  • MNT: update and harden CI, add zizmor to precommit, add dependabot (PR 294) by @kmuehlbauer

  • FIX: Return float32 for float types (keep other dtypes) and remove erroneous “units” from time attrs for hpl reader. (GH 296) (PR 297) by @kmuehlbauer

  • MNT: Fix Windows errors in file handling (PR 295) by @egouden

  • MNT: do not overwrite Dataset for Dataset.update (PR 302) by @kmuehlbauer

  • FIX: Properly handle zero and NaN values during IRIS/Sigmet KDP decode. (PR 301) by @billvieux

  • FIX: NEXRAD Level2 backend compatibility with older files and VCP-0 (GH 311, PR 312) by @aladinor

  • FIX: Add explicit compat="no_conflicts", to xr.merge() in _get_subgroup to silence xarray FutureWarning (GH 313, PR 314) by @aladinor.

  • MNT: create individual notebook tests with pytest_generate_tests and use tmp_path-fixture (PR 316) by @kmuehlbauer

  • FIX: Ensure backend closers are available (PR 318) by @kmuehlbauer

  • MNT: Enhance contributing experience (PR 315) by @egouden

  • ENH: Add combine_sweeps function to stack sweeps into a single radar volume with optional time and angle filtering (PR 307) by @egouden

  • FIX: Use time-dimension to stack/unstack CfRadial1 data for variable number of gates, properly handle duplicates (GH 317), (PR 320) by @kmuehlbauer

0.10.0 (2025-07-11)#

  • FIX: Use fixture for making temp file to avoid permission issue on Windows

  • ENH: Supporting for streaming NEXRAD Level 2 data via file-like objects and byte streams. (GH 265) (PR 280) by @aladinor

  • ADD: function to select dataset variables in sweep (GH 104) (PR 254) by @egouden

  • ADD: function to get dataset variables in sweep

  • ADD: function to get metadata variables in sweep

  • FIX: typo in accessors module: Dataarray -> Dataset

  • FIX: Update missing deps for virtualenv environments via “requirements_dev.txt”. (GH 253) (PR 274) by @Steve-Roderick.

  • FIX: Prevent literal timedelta decoding for new xarray versions, fix tests, update pinnings (PR 278) by @kmuehlbauer.

  • MNT: Package and Documentation cleanup (GH 273), PR 284) by @kmuehlbauer.

  • ADD: Support Universal Format (UF) (GH 275) (PR 276) by @kmuehlbauer.

  • ADD: NDPointIndex Notebook example (PR 276) by @kmuehlbauer.

0.9.0 (2025-02-07)#

  • ENH: Adding test to open_datatree function for all backends. Adding “scan_name” to nexradlevel2 datatree attributes (PR 238) by @aladinor

  • FIX: Improving performance of open_nexradlevel2_datatree function and adding tests for sweep parameter. (GH 239) (PR 240) by @aladinor

  • FIX: Keeping attributes at each variable when using open_nexradlevel2_datatree. (GH 241) (PR 242) by @aladinor

  • FIX: Correctly read transition rays in RHI scans (GH 247) (PR 250) by @rcjackson

  • FIX: Correctly open NEXRAD files when split cut mode is enable ({issue} 245) (PR 246) by @aladinor

  • ADD: Example Notebook for assigning geocoords. (GH 243) and (PR 251) by @syedhamidali

  • FIX: DataTree reader now works with sweeps containing different variables (PR 252) by @egouden.

  • FIX: Correct retrieval of intermediate records in nexrad level2 reader (GH 259) (PR 261) by @kmuehlbauer.

  • FIX: Test for magic number BZhX1AY&SY (where X is any number between 0..9) when retrieving BZ2 record indices in nexrad level2 reader (GH 264) (PR 266) by @kmuehlbauer.

  • ENH: Add message type 1 decoding to nexrad level 2 reader (GH 256) (PR 267) by @kmuehlbauer.

  • ENH: Introduce file locks for nexrad level2 and iris backend (GH 207) (PR 268) by @kmuehlbauer.

0.8.0 (2024-11-04)#

This is the first version which uses datatree directly from xarray. Thus, xarray is pinned to version >= 2024.10.0.

  • FIX: Convert volumes to_cfradial1 containing sweeps with different range and azimuth shapes, raise for different range bin sizes (GH 233) by @syedhamidali, (PR 234) by @kmuehlbauer.

  • FIX: Correctly handle 8bit/16bit, big-endian/little-endian in nexrad reader (PHI and ZDR) (GH 230) by @syedhamidali, (PR 231) by @kmuehlbauer.

  • ENH: Refactoring all xradar backends to use from_dict datatree constructor. Test for _get_required_root, _get_subgroup, and _get_radar_calibration were also added (PR 221) by @aladinor

  • ENH: Added pytests to the missing functions in the test_xradar and test_iris in order to increase codecov in (PR 228) by @syedhamidali.

  • ENH: Updated Readme (PR 226) by @syedhamidali.

  • ADD: Added new module transform for transforming CF1 data to CF2 and vice versa (PR 224) by @syedhamidali.

  • Use DataTree from xarray and add xarray nightly run (PR 213, PR 214, PR 215, PR 218) by @kmuehlbauer.

  • ADD: Added new accessor map_over_sweeps for volume operations on DataTrees and a matching decorator (PR 203) by @syedhamidali.

0.7.0 (2024-10-26)#

This is the last version which uses datatree from xarray-contrib/datatree. Thus, xarray is pinned to version 2024.9.0.

  • ADD: Added apply_to_sweeps function for applying custom operations to all sweeps in a DataTree radar volume Implemented by @syedhamidali, (PR 202).

  • ADD: Metek Micro Rain Radar 2 reader by @rcjackson, (PR 200) by @rcjackson.

0.6.5 (2024-09-20)#

  • FIX: Azimuth dimension now labelled correctly for Halo Photonics data (PR 206) by @rcjackson.

  • FIX: do not apply scale/offset in datamet reader, leave it to xarray instead (PR 209) by @kmuehlbauer.

0.6.4 (2024-08-30)#

0.6.3 (2024-08-13)#

0.6.2 (2024-08-12)#

  • FIX: Passing ‘engine’ kwarg in “open_cfradial1_datatree” method to enable fsspec.open when using url (GH 194) by @aladinor, (PR 195) by @aladinor

0.6.1 (2024-08-07)#

0.6.0 (2024-08-05)#

0.5.1 (2024-07-05)#

0.5.0 (2024-03-28)#

0.4.3 (2024-02-24)#

0.4.2 (2023-11-02)#

0.4.1 (2023-10-26)#

0.4.0 (2023-09-27)#

0.3.0 (2023-07-11)#

0.2.0 (2023-03-24)#

  • ENH: switch to add optional how attributes in ODIM format writer (PR 97) by @egouden

  • FIX: add keyword argument for mandatory source attribute in ODIM format writer (PR 96) by @egouden

  • FIX: check for dim0 if not given, only swap_dims if needed (GH 92), (PR 94) by @kmuehlbauer

  • FIX+ENH: need array copy before overwriting and make compression available in to_odim (PR 95) by @kmuehlbauer

0.1.0 (2023-02-23)#

  • Add an example on reading multiple sweeps into a single object (PR 69) by @mgrover1

  • ENH: add spatial_ref with pyproj when georeferencing, add/adapt methods/tests (GH 38), (PR 87) by @kmuehlbauer

  • Docs/docstring updates, PULL_REQUEST_TEMPLATE.md (PR 89) by @kmuehlbauer

  • Finalize release 0.1.0, add testpypi upload on push to main (PR 91) by @kmuehlbauer

0.0.13 (2023-02-09)#

  • FIX: only skip setting cf-attributes if both gain and offset are unused (PR 85) by @kmuehlbauer

0.0.12 (2023-02-09)#

0.0.11 (2023-02-06)#

0.0.10 (2023-02-01)#

0.0.9 (2022-12-11)#

0.0.8 (2022-09-28)#

0.0.7 (2022-09-21)#

0.0.6 (2022-09-19)#

0.0.5 (2022-09-14)#

0.0.4 (2022-09-01)#

Setting up CI workflow and build, @mgrover1 and @kmuehlbauer

0.0.1 (2022-09-01)#

  • First release on PyPI.