Releases: brightbandtech/ExtremeWeatherBench
v1.0.0
What's Changed
- v1.0.0 PR in #325 for reference
- Updated API to utilize
import extremeweatherbench as ewb, simplifying the import approaches - Added a golden test module for use to confirm with significant version changes to the codebase
Full Changelog: v0.3.0...v1.0.0
v0.3.0
Full Changelog: v0.2.0...v0.3.0
Note: Due to cleaning up the repository using git-filter-repo and the subsequent rebase, automated comparison between 0.2.0 and 0.3.0 isn't possible. The changelog will be hard to follow as a result; key updates are in #322:
- Remove IndividualCaseCollection
- Fix DurationMeanError and IBTrACS memory issues
- Add wrapper for custom xarray Datasets
- Simply YAML to be a list of dicts instead of a dict of a list of dicts
- Fix geopotential calculations to properly reflect geopotential height conversion
- Add CIRA Icechunk store
- Update readthedocs and docstrings throughout repo
v0.2.0
Key Changes
- All 5 events (heatwave, freeze, atmospheric river, tropical cyclone, severe convection) available to run, new MLCAPE calculation by @darothen
- Metrics updated: binary threshold metrics, landfall metrics, duration mean error, all included in update. Metric names made more explicit
- New API for running an evaluation, simplifying and abstracting parallelism using
joblib - Simplified
DerivedVariablecreation, requiringvariablesand including an optionaloutput_variablesargument on instantiation to include one or more outputs if multiple variables are calculated - New
sourcesmodule using Protocols to determine incoming data type for pipeline - More efficient checking of data availability in forecast and target data earlier in pipeline
- Improved docstrings, comments, and formatting throughout repository
- Utilization of
sparselibrary for point obs data such as GHCNh - Changes to case bounds and reference scripts to generate them
- Scripts included to reproduce generation of certain datasets e.g. local storm reports
What's Changed (Auto-Generated)
- clarified and cleaned up some of the metrics; documentation and naming by @aaTman in #30
- Taylor/ope-65-fix-mypy-testing-issues by @aaTman in #33
- Taylor/ope-64-metric-testing by @aaTman in #35
- set up logging in main evaluate function w/ basic receipt by @aaTman in #36
- Amy/ope 69 case information publicized on repository by @amymcgovern in #42
- Taylor/ope-66-update-mae-metrics-to-limit-potential-forecast-deviation-by by @aaTman in #37
- Taylor/ope-71-running-ewb-when-installed-via-conda-fails-due-to-path-issue by @aaTman in #44
- change package-data paths by @aaTman in #51
- Taylor/ope-73-dependency-cleanup by @aaTman in #52
- Updated the main case study entry page to be much easier to read and … by @amymcgovern in #56
- Taylor/ope-67-point-sources-generated-for-each-case by @aaTman in #46
- Taylor/ope-91-create-better-handling-approach-to-evaluating-point-and by @aaTman in #70
- renaming by @aaTman in #71
- add pathlib to config links by @aaTman in #72
- remove data from repo that now exists on public bucket by @aaTman in #73
- Renaming-cf-vars by @aaTman in #75
- Taylor/ope-88-add-core-point-subsetting-logic by @aaTman in #66
- Taylor/ope-89-update-evaluate-code-to-include-point-obs by @aaTman in #69
- Add point obs to EWB by @aaTman in #77
- Speed up point obs processing when forecast data already loaded into memory by @aaTman in #79
- Dataframe groupby optimization for point obs by @aaTman in #80
- Restructuring docs by @amymcgovern in #81
- Simplify evaluate output by @aaTman in #82
- Modularize data loading by @aaTman in #78
- Taylor/ewb-23-reconfigure-dry-run-to-more-clearly-return-case-metadata by @aaTman in #85
- add nonetype check to load_data by @aaTman in #88
- Add-point-obs-schema by @aaTman in #89
- Move mapping function outside of loop by @aaTman in #91
- Taylor/ewb-25-point-obs-fails-out-when-data-is-missing by @aaTman in #90
- Consolidate schemas into main config by @aaTman in #92
- Command Line Initialization by @aaTman in #93
- Update GHCN URI by @aaTman in #96
- change all instances of id to case_id_number by @aaTman in #98
- Bounding Box + Shapefile Functionality by @aaTman in #99
- Longitude Ordering Hotfix by @aaTman in #100
- Manage Longitude Conversions and Plotting (Indirectly) by @aaTman in #101
- EWB Refactor by @aaTman in #108
- Update tropical cyclone metadata by @aaTman in #109
- Fix tc dates and add pre-commit check by @aaTman in #112
- Separate output columns by @aaTman in #119
- Add in derived variable name catch by @aaTman in #122
- add slow pytest marker by @aaTman in #126
- Update haversine function by @aaTman in #127
- Default name attributes + setter for input classes by @aaTman in #128
- add input type attribute + tests by @aaTman in #130
- Clean up calc in prep for TCs by @aaTman in #131
- remove unused calc function by @aaTman in #132
- Catch maybe_derive_variable scenarios by @aaTman in #123
- Hotfix/cli-errors by @aaTman in #136
- Clarify naming for metric vars by @aaTman in #135
- Remove placeholder DerivedVariables by @aaTman in #137
- Replace duplicate case 16 with South Asia heatwave by @aaTman in #143
- Update GHCNh dataset by @aaTman in #144
- Remove local file paths by @aaTman in #145
- Move case functions to cases.py by @aaTman in #146
- Fix exception when target data has more than one time resolution by @aaTman in #147
- Swap from len() to .size for xarray objects by @aaTman in #149
- Add an extra check for an empty sizes dict by @aaTman in #151
- Add sort in GHCN polars function and test to confirm functionality by @aaTman in #150
- Handle metric edge cases with multiple valid timesteps by @aaTman in #152
build_case_operatorsuses both a dict and IndividualCaseCollection by @aaTman in #153- Update duplication handling in GHCN data by @aaTman in #157
- Pandas concatenation helper function by @aaTman in #158
- Remove logging setlevels from modules by @aaTman in #159
- Remove medicanes (for now) by @aaTman in #160
- Add severe convection cases from 2020-2023 by @aaTman in #162
joblibparallelism abstracted into ExtremeWeatherBench by @aaTman in #155- Add default attributes to era5, ghcn, pph, lsr, ibtracs by @aaTman in #163
- Evaluate types, documentation, grammar, logs by @aaTman in #164
- Update readme by @aaTman in #166
- Update heat wave and freeze event case bounds by @aaTman in #167
- Prep tropical cyclone cases and bounding script by @aaTman in #168
- Update freeze event bounds by @aaTman in #169
- Update 100m wind mapping name by @aaTman in #171
- Add genera...
Preview Release v0.1.0
The preview release of ExtremeWeatherBench provides initial functionality alongside sample forecast datasets to test out core functionality, specifically oriented on three metrics and two event types:
Events: Heat waves and freezes (cold snaps).
Metrics: Regional RMSE, Maximum temperature MAE (for heat waves), and Maximum, or highest, Minimum temperature MAE (also for heat waves).
Within this release also has 29 heat wave events and 6 freeze events identified and included in the events.yaml file within assets/data.
We encourage any issues, thoughts, discussions, etc. as we continue to build the core and extended functionality of EWB!