Releases: brightbandtech/ExtremeWeatherBench
v1.0.2.post1
v1.0.2
What's Changed
- Add ROCSS by @rodrigoalmeida94 in #300
- update pyproject with icechunk by @aaTman in #335
- move dask and distributed to core deps by @aaTman in #336
- Make new AR parallelization work for forecasts by @aaTman in #334
- Update to
icechunkfor example scripts by @aaTman in #333 - Make numba (more) threadsafe working with dask by @aaTman in #337
- Landfall metric fixes by @aaTman in #338
- Landfall test dim fix by @aaTman in #341
EarlySignalfixes by @aaTman in #340- Relax TC tracking criteria by @aaTman in #339
- Catch non-ocean landfalls by @aaTman in #342
- Enforce level chunk for
nantrapezoid_pressure_levelsby @aaTman in #343 - Update ARs with pressure ceiling and cleaner derived variable by @aaTman in #344
- Update GHCNh filtering by @aaTman in #346
- Avoid dask-backed array failure in EarlySignal by @aaTman in #347
- Add preprocess func for heatwaves to remove ocean gridpoints by @aaTman in #348
- Add temperature event finder scripts by @aaTman in #345
- Add
overlap_target_thresholdtoEarlySignalby @aaTman in #350 - Climatology scripting by @aaTman in #349
- added marginal severe cases by @amymcgovern in #351
- add updated quantiles to 2m temp ERA5 climatology by @aaTman in #354
- Temperature event bounds by @aaTman in #353
- Adjust some TC case bounds by @aaTman in #355
- Tune duration logic by @aaTman in #357
- Update global temp bound method; fix event case number mismatch by @aaTman in #359
- Remove no landfalling tc's (-8 TCs) by @aaTman in #361
- Manage landfall edge cases by @aaTman in #362
- Add > 15 degree latitude filter for ARs by @aaTman in #365
- Consolidate temperature data_prep scripts into temperature_events.py by @aaTman in #364
- fix: seed sample_calc_dataset fixture to eliminate flaky pressure test by @darothen in #367
- fix: correct three CIN bugs in mixed-layer CAPE/CIN computation by @darothen in #366
New Contributors
- @rodrigoalmeida94 made their first contribution in #300
Full Changelog: v1.0.1...v1.0.2
v1.0.1
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!