├── .github ├── pull_request_template.md └── workflows │ └── ci.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── Justfile ├── LICENSE ├── Makefile ├── README.md ├── data_prep ├── ar_bounds.py ├── combined_lsr_processing.py ├── convert_to_kerchunk.py ├── generate_cape_reference_data.py ├── generate_ghcnh.py ├── ibtracs_bounds.py ├── practically_perfect_hindcast_from_lsr.py ├── severe_convection_bounds.py └── subset_heat_cold_events.py ├── docs ├── events │ ├── AllCaseStudies.md │ ├── AtmosphericRivers.md │ ├── CaseStudyYamlDetails.md │ ├── ConvectiveWx.md │ ├── Derechos.md │ ├── Flooding.md │ ├── FreezeEvents.md │ ├── Hailstorms.md │ ├── Heatwaves.md │ ├── OtherFloods.md │ ├── OverallSevereDays.md │ ├── SevereBustDays.md │ ├── SnowEvents.md │ ├── TCFloods.md │ ├── TCTornadoOutbreaks.md │ ├── TornadoOutbreaks.md │ ├── TropicalCyclones.md │ ├── WindEvents.md │ └── WinterWeather.md ├── examples │ ├── applied_ar.py │ ├── applied_freeze.py │ ├── applied_heatwave.py │ ├── applied_severe.py │ ├── applied_tc.py │ └── example_config.py └── notebooks │ └── quickstart.ipynb ├── pyproject.toml ├── pytest.ini ├── scripts ├── brightband_evaluation.py └── validate_events_yaml.py ├── src └── extremeweatherbench │ ├── __init__.py │ ├── _cape.py │ ├── calc.py │ ├── cases.py │ ├── data │ ├── events.yaml │ └── long_events.yaml │ ├── defaults.py │ ├── derived.py │ ├── evaluate.py │ ├── evaluate_cli.py │ ├── events │ ├── __init__.py │ ├── atmospheric_river.py │ ├── severe_convection.py │ └── tropical_cyclone.py │ ├── inputs.py │ ├── metrics.py │ ├── regions.py │ ├── sources │ ├── __init__.py │ ├── base.py │ ├── pandas_dataframe.py │ ├── polars_lazyframe.py │ ├── xarray_dataarray.py │ └── xarray_dataset.py │ └── utils.py ├── tests ├── __init__.py ├── conftest.py ├── data │ ├── arrays.npz │ ├── era5_reference.npz │ ├── generate_cape_reference_data.py │ └── pathological_profiles.npz ├── test_atmospheric_river.py ├── test_calc.py ├── test_cape.py ├── test_cases.py ├── test_defaults.py ├── test_derived.py ├── test_evaluate.py ├── test_evaluate_cli.py ├── test_inputs.py ├── test_integration.py ├── test_metrics.py ├── test_regions.py ├── test_severe_convection.py ├── test_sources.py ├── test_tropical_cyclone.py └── test_utils.py └── uv.lock /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /Justfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/Justfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/README.md -------------------------------------------------------------------------------- /data_prep/ar_bounds.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/ar_bounds.py -------------------------------------------------------------------------------- /data_prep/combined_lsr_processing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/combined_lsr_processing.py -------------------------------------------------------------------------------- /data_prep/convert_to_kerchunk.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/convert_to_kerchunk.py -------------------------------------------------------------------------------- /data_prep/generate_cape_reference_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/generate_cape_reference_data.py -------------------------------------------------------------------------------- /data_prep/generate_ghcnh.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/generate_ghcnh.py -------------------------------------------------------------------------------- /data_prep/ibtracs_bounds.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/ibtracs_bounds.py -------------------------------------------------------------------------------- /data_prep/practically_perfect_hindcast_from_lsr.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/practically_perfect_hindcast_from_lsr.py -------------------------------------------------------------------------------- /data_prep/severe_convection_bounds.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/severe_convection_bounds.py -------------------------------------------------------------------------------- /data_prep/subset_heat_cold_events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/data_prep/subset_heat_cold_events.py -------------------------------------------------------------------------------- /docs/events/AllCaseStudies.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/AllCaseStudies.md -------------------------------------------------------------------------------- /docs/events/AtmosphericRivers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/AtmosphericRivers.md -------------------------------------------------------------------------------- /docs/events/CaseStudyYamlDetails.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/CaseStudyYamlDetails.md -------------------------------------------------------------------------------- /docs/events/ConvectiveWx.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/ConvectiveWx.md -------------------------------------------------------------------------------- /docs/events/Derechos.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/Derechos.md -------------------------------------------------------------------------------- /docs/events/Flooding.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/Flooding.md -------------------------------------------------------------------------------- /docs/events/FreezeEvents.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/FreezeEvents.md -------------------------------------------------------------------------------- /docs/events/Hailstorms.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/Hailstorms.md -------------------------------------------------------------------------------- /docs/events/Heatwaves.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/Heatwaves.md -------------------------------------------------------------------------------- /docs/events/OtherFloods.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/OtherFloods.md -------------------------------------------------------------------------------- /docs/events/OverallSevereDays.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/OverallSevereDays.md -------------------------------------------------------------------------------- /docs/events/SevereBustDays.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/SevereBustDays.md -------------------------------------------------------------------------------- /docs/events/SnowEvents.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/SnowEvents.md -------------------------------------------------------------------------------- /docs/events/TCFloods.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/TCFloods.md -------------------------------------------------------------------------------- /docs/events/TCTornadoOutbreaks.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/TCTornadoOutbreaks.md -------------------------------------------------------------------------------- /docs/events/TornadoOutbreaks.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/TornadoOutbreaks.md -------------------------------------------------------------------------------- /docs/events/TropicalCyclones.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/TropicalCyclones.md -------------------------------------------------------------------------------- /docs/events/WindEvents.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/WindEvents.md -------------------------------------------------------------------------------- /docs/events/WinterWeather.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/events/WinterWeather.md -------------------------------------------------------------------------------- /docs/examples/applied_ar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/examples/applied_ar.py -------------------------------------------------------------------------------- /docs/examples/applied_freeze.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/examples/applied_freeze.py -------------------------------------------------------------------------------- /docs/examples/applied_heatwave.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/examples/applied_heatwave.py -------------------------------------------------------------------------------- /docs/examples/applied_severe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/examples/applied_severe.py -------------------------------------------------------------------------------- /docs/examples/applied_tc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/examples/applied_tc.py -------------------------------------------------------------------------------- /docs/examples/example_config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/examples/example_config.py -------------------------------------------------------------------------------- /docs/notebooks/quickstart.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/docs/notebooks/quickstart.ipynb -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/pyproject.toml -------------------------------------------------------------------------------- /pytest.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/pytest.ini -------------------------------------------------------------------------------- /scripts/brightband_evaluation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/scripts/brightband_evaluation.py -------------------------------------------------------------------------------- /scripts/validate_events_yaml.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/scripts/validate_events_yaml.py -------------------------------------------------------------------------------- /src/extremeweatherbench/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/extremeweatherbench/_cape.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/_cape.py -------------------------------------------------------------------------------- /src/extremeweatherbench/calc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/calc.py -------------------------------------------------------------------------------- /src/extremeweatherbench/cases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/cases.py -------------------------------------------------------------------------------- /src/extremeweatherbench/data/events.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/data/events.yaml -------------------------------------------------------------------------------- /src/extremeweatherbench/data/long_events.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/data/long_events.yaml -------------------------------------------------------------------------------- /src/extremeweatherbench/defaults.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/defaults.py -------------------------------------------------------------------------------- /src/extremeweatherbench/derived.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/derived.py -------------------------------------------------------------------------------- /src/extremeweatherbench/evaluate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/evaluate.py -------------------------------------------------------------------------------- /src/extremeweatherbench/evaluate_cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/evaluate_cli.py -------------------------------------------------------------------------------- /src/extremeweatherbench/events/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/extremeweatherbench/events/atmospheric_river.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/events/atmospheric_river.py -------------------------------------------------------------------------------- /src/extremeweatherbench/events/severe_convection.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/events/severe_convection.py -------------------------------------------------------------------------------- /src/extremeweatherbench/events/tropical_cyclone.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/events/tropical_cyclone.py -------------------------------------------------------------------------------- /src/extremeweatherbench/inputs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/inputs.py -------------------------------------------------------------------------------- /src/extremeweatherbench/metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/metrics.py -------------------------------------------------------------------------------- /src/extremeweatherbench/regions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/regions.py -------------------------------------------------------------------------------- /src/extremeweatherbench/sources/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/sources/__init__.py -------------------------------------------------------------------------------- /src/extremeweatherbench/sources/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/sources/base.py -------------------------------------------------------------------------------- /src/extremeweatherbench/sources/pandas_dataframe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/sources/pandas_dataframe.py -------------------------------------------------------------------------------- /src/extremeweatherbench/sources/polars_lazyframe.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/sources/polars_lazyframe.py -------------------------------------------------------------------------------- /src/extremeweatherbench/sources/xarray_dataarray.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/sources/xarray_dataarray.py -------------------------------------------------------------------------------- /src/extremeweatherbench/sources/xarray_dataset.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/sources/xarray_dataset.py -------------------------------------------------------------------------------- /src/extremeweatherbench/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/src/extremeweatherbench/utils.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/data/arrays.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/data/arrays.npz -------------------------------------------------------------------------------- /tests/data/era5_reference.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/data/era5_reference.npz -------------------------------------------------------------------------------- /tests/data/generate_cape_reference_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/data/generate_cape_reference_data.py -------------------------------------------------------------------------------- /tests/data/pathological_profiles.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/data/pathological_profiles.npz -------------------------------------------------------------------------------- /tests/test_atmospheric_river.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_atmospheric_river.py -------------------------------------------------------------------------------- /tests/test_calc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_calc.py -------------------------------------------------------------------------------- /tests/test_cape.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_cape.py -------------------------------------------------------------------------------- /tests/test_cases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_cases.py -------------------------------------------------------------------------------- /tests/test_defaults.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_defaults.py -------------------------------------------------------------------------------- /tests/test_derived.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_derived.py -------------------------------------------------------------------------------- /tests/test_evaluate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_evaluate.py -------------------------------------------------------------------------------- /tests/test_evaluate_cli.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_evaluate_cli.py -------------------------------------------------------------------------------- /tests/test_inputs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_inputs.py -------------------------------------------------------------------------------- /tests/test_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_integration.py -------------------------------------------------------------------------------- /tests/test_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_metrics.py -------------------------------------------------------------------------------- /tests/test_regions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_regions.py -------------------------------------------------------------------------------- /tests/test_severe_convection.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_severe_convection.py -------------------------------------------------------------------------------- /tests/test_sources.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_sources.py -------------------------------------------------------------------------------- /tests/test_tropical_cyclone.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_tropical_cyclone.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/tests/test_utils.py -------------------------------------------------------------------------------- /uv.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brightbandtech/ExtremeWeatherBench/HEAD/uv.lock --------------------------------------------------------------------------------