History#
Development#
FIX:
open_nexradlevel2_datatree(..., incomplete_sweep="pad")pads incomplete sweeps on the nominal azimuth grid from the MSG_31azimuth_resolution(0.5° / 1.0°, i.e. 720 / 360 rays) instead of the spacing inferred from the jittery measured azimuths (e.g. 0.49° → 735 rays) (GH 396, PR 447) by @syedhamidaliDOC: Add
Griddingnotebook showing how to grid xradar volumes into 3D Cartesian grids with Py-ART (grid_from_radars) and wradlib (vpr.CAPPIand sweep-wise.wrl.ipol.interpolatewith vertical interpolation), compare the products (CAPPIs, column maximum, cross-section), with links to further examples (Py-ART, wradlib, Project Pythia, ERAD short courses), and point to it from the README (GH 135, PR 432) by @syedhamidaliENH: New
reindex_coordbackend kwarg replacingreindex_angle: a nested dictreindex_coord=dict(angle=dict(...), range=dict(...))reindexes angle (duplicates removed,util.reindex_angle,util.ipol_time) and/or range (newutil.reindex_range, analogous toreindex_angle) for all backends and datatree openers (HPL newly supported).reindex_anglestill works but emits aFutureWarning; non-dict values now raise a clear error. TheMulti-Volume-Concatenationnotebook uses it to align the slightly differing ranges of its volumes (GH 407) by @syedhamidaliFIX: IRIS
site_coordsfolded southern-hemisphere latitudes (BIN4 > 180°) with the longitude, solatitudecame out aslongitude - 360; fold the latitude itself (GH 391) by @syedhamidaliFIX: ODIM reader no longer fails on quality groups carrying a compound-dtype
legendtable (ODIM_H5 2.4, e.g. the FMI open archive since 2026-06); the table is attached to the group’s classification variable as CFflag_values/flag_meanings(ODIM 2.3/2.4 Section 6.2key/valueand FMIcode/classlayouts) instead of being merged as ray data, and awhat/legendstring attribute is kept aslegend(GH 395) by @syedhamidaliFIX:
open_odim_datatree,open_rainbow_datatree,open_hpl_datatreeandopen_metek_datatreemapped a list of integer sweeps with an offset of one (sweep=[0]opened the second sweep, or failed for single-sweep files); integer lists now select the same sweeps as single integers andsweep_Nnames, as in all other backends (GH 412) by @syedhamidaliFIX: Fix spacing_is_constant being incorrectly set to false for float32 ranges due to floating-point precision when comparing gate spacing. (PR 402 ) by @mats-knmi
DOC: Fix the
Multi-Volume-Concatenationnotebook for xarray 2026.9 — determine the rotation direction from the time-ordered azimuth differences instead ofdiff("time")on a sweep whose dimension isazimuth(older xarray silently ignored the missing dimension, newer raises) (PR 406 ) by @syedhamidaliFIX: CfRadial1 reader handles a variable number of gates per ray within a sweep — each ray is unpacked by its own
ray_n_gatesand shorter rays are padded with NaN, instead of assuming the first ray’s gate count for the whole sweep. Also restore RHI detection (elevationas first dimension), which broke in PR 320, and decodesweep_modeafter computing so dask-backed inputs keep the full string (GH 322) (PR 405) by @syedhamidaliMNT: Refactor the CfRadial1 writer for code quality ahead of v1.0 — descriptive helper names (
_main_info_mapper→_extract_root_dataset,_variable_mapper→_combine_sweeps,_calib_mapper→_map_radar_calibration,_sweep_info_mapper→_collect_sweep_metadata), clearer locals, fix thecalibsbool/variable name collision, robusthistoryattribute and missing-elevationhandling, and a shared_build_cfradial1_datasetreused byxradar.transform.to_cfradial1to remove duplication (GH 379) by @syedhamidaliENH: When importing ODIM files, extract the global attributes “wmo__id”, “node”, “wmo__originating_centre” and “wmo__wsi” from the ODIM /what/source attribute
FIX: Require
zarr>=3soDataTree.to_zarr()works with current xarray (which forwards azarr_formatargument thatzarr<3’sopen_group()rejects), and fill masked moments (e.g. IRISVRADH) in themultiple-sweeps-into-volume-scannotebook before writing, since zarr v3 codecs cannot serialize numpyMaskedArray(GH 398) by @syedhamidaliFIX:
open_nexradlevel2_datatreedecodes volumes with interior sweep-index gaps end-to-end — translate sweep label → compact position inNexradLevel2Store.open_store_coordinatesso the per-sweep entrypoint stops positionally indexing the compactedmsg_31_header(follow-up to PR 362) (GH 366, PR 374) by @aladinorDOC:
nexrad_read_chunksnotebook now falls back to the open-radar-data fixture when the live S3 listing yields no complete sweep. The guard only caughtValueError, but a listing holding just the start (S) chunk parses fine and returns aDataTreewith no sweep groups, so the fallback was skipped and the notebook failed ondtree["sweep_0"](PR 377) by @aladinorFIX: NEXRAD Level 2 reader drops MSG_31 records when an LDM Compressed Record carries MSG_2 (RDA Status) alongside the 120 radials —
NEXRADRecordFile.init_recordhard-coded a 120-message stride; per ICD2620010J§7.3.4 the LDM holds “120 radial messages (type 31) plus 0 or more RDA Status messages (type 2)”. Replace the synthetic mod-120 stride with a byte-walk that detects end-of-LDM by buffer length, with a recnum-position cache forget_data’s per-moment replay (GH 376, PR 377) by @aladinorFIX: ensure
to_cfradial2correctly selects the default storage engine when none is provided, (PR 378) by @chferMNT: Add
cfradial1_sgp_filesession fixture and refactor 8 tests intest_util.py/test_accessors.pyto share it instead of inliningDATASETS.fetch("sample_sgp_data.nc"). Fixture returns the filename so each test opens its own DataTree, avoiding cross-test mutation (GH 346, PR 347) by @aladinorFIX: IRIS reader rotates the first-loaded moment in each sweep by 1 ray —
IrisRawFile._get_ray_record_offsets_and_datainitialisedj = -1so the first matching ray of the first-loaded moment was written toraw_data[-1]; affects files withoutDB_XHDR(data-type bit 0) whereDB_DBTbecomes the rotated moment (GH 357, PR 375) by @aladinorDOC: Add projection comparison and cartopy map examples to
Georeference_TargetCRSnotebook by @syedhamidaliDOC: Add full-form descriptions for all supported radar formats in README.md by @syedhamidali
ADD: India Meteorological Department (IMD) radar NetCDF reader (
IMDBackendEntrypoint,open_imd_datatree). IMD stores one sweep per file;open_imd_datatreeaccepts a single file or a list of files to assemble a multi-sweep volume (GH 368, PR 367) by @syedhamidaliFIX: Preserve CfRadial metadata groups during CfRadial1/CfRadial2 transforms, allow
to_cfradial2to reopen root-onlyengine="cfradial1"datasets, and normalize sweep metadata aftermap_over_sweepsoperations so filtered volumes can be exported to CfRadial1 again (GH 254, GH 322) by @syedhamidaliENH: Expose
target_crson.xradar.georeference()accessor for DataArray, Dataset and DataTree, enabling reprojection via e.g.radar.xradar.georeference(target_crs=4326)(GH 243) by @syedhamidaliFIX: set
id-token: writein CI testpypi publisher for trusted publishing (GH 364) by @aladinor, (PR 372 ) by @kmuehlbauerMNT: use xarray from PyPI, update pin to xarray=2026.9.0 (last xarray version with Python 3.11) (PR 404 ) by @kmuehlbauer
FIX: CfRadial1 export of files with a variable number of gates no longer writes the ragged-layout index variables
ray_n_gates/ray_start_index(and setsn_gates_varytofalse); the data are written padded to(time, range), and the leftover variables made the file unreadable for xradar and field-less for Py-ART (GH 416) by @syedhamidaliFIX: Correct the global attribute assignment in
to_cfradial2(Conventions,versionandhistoryare now set on the exported root), and preserve the input DataTree by working on a copy, which is shallow by default; usedeepcopy=Truefor a deep copy (PR 384) by @chferDOC: Fix the roundtrip example in
CfRadial1_Model_Transformation.mdby settingfirst_dim="time"andoptional=Falsewhen creatingdtree3, so the CfRadial1-to-CfRadial2 roundtrip assertion is meaningful and passes (PR 384) by @chferFIX: IRIS/Sigmet 8-bit types without decoding function (
DB_HCLASS,DB_ORAIN,DB_ALBEDO8) are unpacked to oneuint8value per range bin; they were returned as packedint16words holding two bins each.DB_HCLASS/DB_HCLASS2get CFflag_masks/flag_values/flag_meaningsfor the HydroClass bit segments, from the classifiers stored intask_end_info(IRIS Programming Guide 4.4.14) (GH 390, PR 444) by @syedhamidaliFIX: CfRadial1 export writes string variables (
time_coverage_start,instrument_type,prt_mode, …) as char arrays instead of NC_STRING, which Py-ART could not read, and no longer writes"None"placeholder global attributes or a"None: ..."history (GH 417) by @syedhamidaliFIX: CfRadial1 export writes boolean attributes (e.g. NEXRAD
mpda_vcp,avset_enabled) as"true"/"false"instead of failing, as netCDF attributes can’t be bool (GH 418) by @syedhamidali
0.12.0 (2026-04-21)#
MNT: Unpin xarray, require
xarray >= 2026.4.0inrequirements.txt,environment.yml,ci/unittests.yml, andci/notebooktests.ymlby @aladinorMNT: 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_datatreekeeps sweeps with interior sweep-index gaps — derive sweep names from actual indices innex.datainstead ofrange(len(...))so upstream-dropped interior cuts (e.g.[0..9, 11]) no longer raiseKeyError(GH 361, PR 362) by @aladinorADD:
open_cfradial2_datatreereader with grouped CfRadial2 compatibility normalization for common FM301/CfRadial2 naming differences (GH 93, GH 287), (PR 349) by @syedhamidaliENH: Move station coordinates (
latitude,longitude,altitude) to root node as coordinates for DataTree coordinate inheritance (GH 331, PR 333) by @aladinorENH: Add
optional_groupsparameter (defaultFalse) to allopen_*_datatree()functions to control inclusion of/radar_parameters,/georeferencing_correction, and/radar_calibrationsubgroups (GH 331, PR 333) by @aladinorENH: Skip redundant station coordinate reads for subsequent sweeps in DataTree by passing
site_as_coords=Falseand extracting shared_apply_site_as_coordshelper (GH 334, PR 337) by @aladinorADD: Support list/tuple of chunk files (bytes, file-like, or paths) as input to
open_nexradlevel2_datatreefor streaming NEXRAD Level 2 data from S3 chunk buckets (PR 332) by @aladinorADD:
incomplete_sweepparameter ("drop"/"pad") toopen_nexradlevel2_datatreefor handling incomplete sweeps in partial volume data (PR 332) by @aladinorADD: Notebook example for streaming NEXRAD Level 2 chunks from S3 (
nexrad_read_chunks.ipynb) (PR 332) by @aladinorADD: 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 @kmuehlbauerFIX: Allow passing
inheritparameter toapply_to_sweeps/map_over_sweepsto control coordinate inheritance from root node (GH 343, PR 344) by @aladinorFIX: Use
open-radar-datafixture as fallback fornexrad_read_chunks.ipynbnotebook, replacing dependency on ephemeral S3 chunk data (GH 351, PR 352) by @aladinorMNT: Pin
open-radar-data>=0.6.0for NEXRAD chunk test data (PR 352) by @aladinorMNT: 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)#
MNT: Pre-commit update + lint (PR 325) by @kmuehlbauer
FIX: Use
dtypewith fallback in odim export (PR 324) by @katelbachFIX: Prevent azimuth-folding for RHI for gamic reader (PR 326) by @kmuehlbauer
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",toxr.merge()in_get_subgroupto 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
ENH: Add
combine_sweepsfunction to stack sweeps into a single radar volume with optional time and angle filtering (PR 307) by @egoudenFIX: 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_datatreefunction for all backends. Adding “scan_name” to nexradlevel2 datatree attributes (PR 238) by @aladinorFIX: Improving performance of
open_nexradlevel2_datatreefunction and adding tests forsweepparameter. (GH 239) (PR 240) by @aladinorFIX: Keeping attributes at each variable when using
open_nexradlevel2_datatree. (GH 241) (PR 242) by @aladinorFIX: 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 @aladinorADD: 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_dictdatatree constructor. Test for_get_required_root,_get_subgroup, and_get_radar_calibrationwere also added (PR 221) by @aladinorENH: Added pytests to the missing functions in the
test_xradarandtest_irisin order to increase codecov in (PR 228) by @syedhamidali.ENH: Updated Readme (PR 226) by @syedhamidali.
ADD: Added new module
transformfor 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_sweepsfor 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_sweepsfunction for applying custom operations to all sweeps in aDataTreeradar 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)#
FIX: Notebooks are now conforming to ruff’s style checks by @rcjackson, (PR 199) by @rcjackson.
FIX: use dict.get() to retrieve attribute key and return “None” if not available, (PR 200) by @kmuehlbauer
0.6.3 (2024-08-13)#
FIX: use rstart in meter for ODIM_H5/V2_4 (GH 196) by @kmuehlbauer, (PR 197) by @kmuehlbauer.
0.6.2 (2024-08-12)#
0.6.1 (2024-08-07)#
MNT: minimize CI (PR 192) by @kmuehlbauer.
FIX: properly read CfRadial1 n_points files (GH 188) by @aladinor, (PR 190) by @kmuehlbauer.
0.6.0 (2024-08-05)#
FIX: Nexrad level2 time offset of 1 day, skip reading missing elevations, introduce new radial_status of 5 (GH 180) by @ghiggi, (PR 180) by @kmuehlbauer.
ADD: Reader for Halo Photonics Doppler lidar data by @rcjackson
0.5.1 (2024-07-05)#
ENH: Adding global variables and attributes to iris datatree (PR 166) by @aladinor.
FIX: Set fillvalue before applying scale/offset when exporting to odim (GH 122) by @pavlikp, (PR 173) by @kmuehlbauer.
FIX: Fix use of ruff, CI and numpy2 (PR 177) by @mgrover1 and @kmuehlbauer.
0.5.0 (2024-03-28)#
MNT: Update GitHub actions, address DeprecationWarnings (PR 153) by @kmuehlbauer.
MNT: restructure odim.py/gamic.py, add test_odim.py/test_gamic.py (PR 154) by @kmuehlbauer.
MNT: use CODECOV token (PR 155) by @kmuehlbauer.
MNT: fix path for notebook coverage (PR 157) by @kmuehlbauer.
ADD: NEXRAD Level2 structured reader (PR 158) by @kmuehlbauer and @mgrover1.
FIX: Add the proper elevation angle to fixed angle (PR 162) by @mgrover1.
ENH: Add a utility for finding sweep number keys (PR 167) by @mgrover1.
0.4.3 (2024-02-24)#
MNT: address black style changes, update pre-commit-config.yaml (PR 152) by @kmuehlbauer.
FIX: use len(unique) to estimate unique entry for odim range (PR 151) by @martinpaule.
0.4.2 (2023-11-02)#
FIX: Fix handling of sweep_mode attributes (PR 143) by @mgrover1
FIX: explicitely check for “False” in get_crs() PR 142) by @kmuehlbauer.
0.4.1 (2023-10-26)#
FIX: Add history to cfradial1 output, and fix minor error in CfRadial1_Export.ipynb notebook(PR 132) by @syedhamidali
FIX: fix readthedocs build for python 3.12 (PR 140) by @kmuehlbauer.
FIX: align coordinates in backends, pin python >3.9,<=3.12 in environment.yml (PR 139) by @kmuehlbauer
FIX: prevent integer overflow when calculating azimuth in FURUNO scn files (GH 137) by @giacant , (PR 138) by @kmuehlbauer
0.4.0 (2023-09-27)#
ENH: Add cfradial1 exporter (GH 124) by @syedhamidali, (PR 126) by @syedhamidali
FIX: use datastore._group instead of variable[“sweep_number”] (GH 121) by @aladinor , (PR 123) by @kmuehlbauer
MIN: use “crs_wkt” instead of deprecated “spatial_ref” when adding CRS (PR 127) by @kmuehlbauer
FIX: always read nodata and undetect attributes from ODIM file (PR 125) by @egouden
MIN: use
cmweathercolormaps in xradar (PR 128) by @kmuehlbauer.
0.3.0 (2023-07-11)#
ENH: Add new examples using radar data on AWS s3 bucket (PR 102) by @aladinor
FIX: Correct DB_DBTE8/DB_DBZE8 and DB_DBTE16/DB_DBZE16 decoding for iris-backend (PR 110) by @kmuehlbauer
FIX: Cast boolean string to int in rainbow dictionary (PR 113) by @egouden
MNT: switch to mamba-org/setup-micromamba, split CI tests (GH 115), (PR 116) by @kmuehlbauer
FIX: time interpolation (PR 117) by @kmuehlbauer
FIX: robust
angle_resretrieval inextract_angle_parameters(GH 112), (PR 118) by @kmuehlbauerFIX: robust radar identifier in
to_odim()(PR 120) by @kmuehlbauer
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)#
ENH: add IRIS
DB_VELCdecoding and tests (GH 78), (PR 83) by @kmuehlbauerFIX: furuno backend inconsistencies (GH 77), (PR 82) by @kmuehlbauer
FIX: ODIM_H5 backend inconsistencies (GH 80), (PR 81) by @kmuehlbauer
0.0.11 (2023-02-06)#
fix
_Undetect/_FillValuein odim writer (PR 71) by @kmuehlbauerport more backend tests from wradlib (PR 73) by @kmuehlbauer
0.0.10 (2023-02-01)#
add WRN110 scn format to Furuno reader (PR 65) by @kmuehlbauer
Adapt to new build process, pyproject.toml only, use
rufffor linting (PR 67) by @kmuehlbauer
0.0.9 (2022-12-11)#
add ODIM_H5 exporter (PR 39) by @kmuehlbauer
fetch radar data from open-radar-data (PR 44) by @kmuehlbauer
align readers with CfRadial2, add CfRadial2 exporter (PR 45), (PR 49), (PR 53), (PR 56), (PR 57) and (PR 58) by @kmuehlbauer
add georeference accessor, update examples (PR 60), (PR 61) by @mgrover1
refactored and partly reimplemented angle reindexing (GH 55), (PR 62) by @kmuehlbauer
0.0.8 (2022-09-28)#
add GAMIC HDF5 importer (PR 29) by @kmuehlbauer
add Furuno SCN/SCNX importer (PR 30) by @kmuehlbauer
add Rainbow5 importer (PR 32) by @kmuehlbauer
add Iris/Sigmet importer (PR 33) by @kmuehlbauer
0.0.7 (2022-09-21)#
Fix version on RTD (PR 23) by @kmuehlbauer
Add minimal documentation for Datamodel (PR 24) by @kmuehlbauer
0.0.6 (2022-09-19)#
Improve installation and contribution guide, update README.md with more badges, add version and date of release to docs, update install process (PR 19) by @kmuehlbauer
Add minimal documentation for CfRadial1 and ODIM_H5 importers (PR 20) by @kmuehlbauer
Add accessors.py submodule, add accessors showcase (PR 21) by @kmuehlbauer
0.0.5 (2022-09-14)#
Data Model, CfRadial1 Backend (PR 13) by @kmuehlbauer
ODIM_H5 Backend (PR 14) by @kmuehlbauer
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.