- Fix ongoing numpy dependency issue and update requirement for numpy version so it is less strict
- Remove warnings.RankWarning fix for quadratic function. This should fix Cattiaux
- Fix scipy.optimize.least_sq depreciation warning
- Fix xarray groupby squeeze depreciation warning
- Fix numpy depreciation warning
- Fix scipy.ndimage maximum filter error
- Corrects Kuang et al. 2014 and Schiemann et al. 2009 methods
- Add expand_dims and squeeze to time dimensions of 'run_jet_core_and_region_algorithm_on_one_day' to fix manney_et_al_2011
- Fix scipy.ndimage depreciation warning
- Change argmax to nanargmax
- update max numpy version to 1.26 so 'np.RankWarning' still exists (in future prepare for np v2.0)
- Make sure requirement files have same versions
- Add example of assigning units to plev in for docstrings in data_utils
- Add step-security-bot and dependenabot for OSSF scorecard
- Update dependencies and workflows
- Add example of assigning units to plev in data_utils
- Overhaul Kuang et al. 2014 method to work with plev-lat center check rather than lat-long jet center check.
- Use maximum filter from scipy ndimage for diagonal check from 'find_local_maxima_in_2d_dataarray_with_diagonals' used in M11 and K14
- Also makes a change to Manney et al. 2011 method if using diagonal check (should not affect results as it was working before)
- Fix error when checking for plev units in data_utils
- Reduce README content
- Update Manney et al. 2011 method to include 'check_diagonals' parameter
- Update Manney et al. 2011 method to select maximum windspeed if no cores found above threshold
- Add 'slice_array_by_index_breaks' to data utils
- Update examples of use and quick start table in docs
- Add check for plev units to data_utils
- Update Archer & Calidera to more properly check for whether data plev coords are Pa or hPa.
- Fix typos and clarify writing in docs
- Fix CI and Github actions
- Finish overhaul the ReadTheDocs documentation in the package
- Confirm completed and to verify metrics
- Update Schiemann et al. 2009 method to run faster and introduce u_threshold parameter default
- Add more complete inline 'Steps' to each metric in the package for readability.
- Remove Screen & Simmonds and Local Wave Activity leftover code
- Update Manney et al. 2011 further with padding to capture cores near the edge of dataset
- Changes:
- MAJOR: Rename to Barnes & Polvani 2014 and update tests and all mentions of
- Update Cattiaux method to deal with Matplotlib depreciation warning about using 'allsegs' or 'collections' in contour plot
- Add tests for new spatial utils method 'seperate_one_contour_into_line_segments'
- Add readthedocs.yml
- Rename to Barnes & Polvani 2014 and update tests and all mentions of
- Update Cattiaux method to deal with Matplotlib depreciation warning about using 'allsegs' or 'collections' in contour plot
- Add tests for new spatial utils method 'seperate_one_contour_into_line_segments'
- Overhaul the ReadTheDocs documentation in the package
- Write a more detailed description of each metric
- Add examples and implementation notes to each metric
- Update listing in 'details_for_all_metrics.py'
- Update the 'Why jsmetrics' section with notes about what jets are and quick start help
- Add some Examples of Use for each type of metric
- Add ws_threshold parameter to Pena-Ortiz method
- Rename Pena-Ortiz method to 'pena_ortiz_et_al_2016' (as earlier paper)
- Fix Manney et al. 2011 implementation
- Correct Manney 2011 method
- Move old method to new metric: 'jet_core_identification_algorithm'
- Update docs for Manney 2011 and sub-components
- Update Schiemann method with new variable name (jet occurence), docstring and changes to sub-component function names
- Add ws_threshold parameter to Schiemann
- Update methods that work on one time unit of data and add squeeze method to properly deal if time not in dims
- Add basic outline of jet core algorithm docstrings
- Begin overhaul of ReadTheDocs documentation
- Add notes and example to Koch et al. 2006 metric
- Rename variable returned by K06 to jet_events_ws
- Add new metric to package: Zappa et al. 2018 (This method builds on Ceppi et al. 2018)
- Raise KeyError if no time coordinate is passed to a given metrics
- add KeyError raise if no time coordinate is passed to various metrics
- Add "method='nearest'" to jet statistics and core algorithms for cases when coords cannot be represented within float precision range.
- Fix Barnes & Polvani 2013 to better deal when min max jet lat is at edge data
- Add check for NoLeapDatetime
- Add check for NoLeapDatetime
- Fix Woollings et al. 2010 and filter windows to use day timeunits for window to stop it removing too much data.
- Add data util function to add number of days to 360Day Datetime type
- add parameter for Kerr et al. 2020
- Add Ceppi et al jet speed adaptation from Screen et al. 2022
- Add fix for sort_xarray_data_coords so it works when only one coord value in coordinate (i.e. so each metric can work when only one longitude)
- Supress warning for quadratic func
- Add fix for Kuang to run when there is no time dim
- Add fix for BP15 to except errors where all nan data
- Add warning for BS17 when more than 10 days resolution
- MAJOR UPDATE: re-organise the structure of the package into core, metrics and utils
- rename jet statistics, waviness metrics and jet core algorithm files
- add wrappers to check data is xarray and is sorted in descending order (in core/check_data.py)
- move waviness metrics to new file
- Update appropriate tests
- Update JetStreamOccurenceAndCentreAlgorithm to skip longitude values outside lon range in data
- Make changes to work with Shapely version 1.8/2.0. Means changes to Cattiaux et al. 2016
- update fitted parabola func for Barnes & Polvani 2015
- Add Blackport & Fyfe 2022
- update Barnes & Simpson 2017 to drop all NaN slices
- update to check for more than one time step for time groupby methods
- add test to check all metrics when input is one time step
- add try and except for Grise & Polvani 2017 to account for missing vals
- skipna=True for calc_latitude_and_speed_where_max_ws
- Barnes and Simpson mean over longitude for jet lat
- rename max_lat_0.01 to jet_lat for Grise & Polvani 2017
- Fix get_3_latitudes_and_speed_around_max_ws to work with isel around lon
- Fix barnes polvani parabola to deal with nan values
- add plev mean to Bracegirdle
- update Pena Ortiz so that it returns monthyear and by day local wind maxima
- remove make_empty_local_wind_maxima_data func
- Fix CI
- Add millibars to get_all_hPa_list
- fix workflow for publish to PyPi and TestPyPi
- fix kuang to work for southern hemisphere as well
- add workflow for publish to PyPi
- Update calc_latitude_and_speed_where_max_ws to use numpy methods
- Fix Barnes and Simpson 2017 method so it runs on each longitude
- Update and fix the JetStreamOccurenceAndCentreAlgorithm method for Kuang
- Change LICENSE
- Upload to Zenodo
- First release to pypi
- Clean up rst docs
- Finish tests
- Remove TODOs
- Outline metric_verification notebooks
- Improve docs
- Format the readme
- seperate metrics into metrics and algorithms
- Reorder and write better docstrings for the utils files
- Update year on LICENSE
- swap 'plev' and 'lat' in manney_et_al_2011 method so that it groups cores better
- rename 'sinouisity' to 'sinuosity'
- update spatial_utils with lazy method for guessing bounds and assuming a regular grid (func is "_standardise_diffs_by_making_all_most_common_diff")
- update Pena-Ortiz method to seperate into subtropical and polar front jet
- remove prints from windspeed utils
- rename bp13 jet lat
- add Barnes & Polvani 2015
- add Kerr et al. 2020
- add nearest method function to general utils
- Speed up Ceppi and fix integration method within (still need to verify)
- Add spatial utils for grid cell m2 method
- Fix 'get_latitude_and_speed_where_max_ws_at_reduced_resolution' with check for np.nans
- add Barnes & Polvani 2013
- Fix 'get_latitude_and_speed_where_max_ws' so it can take one value
- Fix Barnes & Simpson 2017 and Woollings et al. 2010 and change name of col
- Fix Barnes & Polvani neighbouring lats and speed
- add Barnes & Simpson 2017
- Update 'get_latitude_and_speed_where_max_ws' function
- Update calc_mass_weighted wind
- Change the 'get_latitude_and_speed_where_max_ws' function to take abs() max -> will mean that negative u-wind values can be considered the jet lat
- update Woollings et al. 2010 with seasonal cycle
- update metric details dict with 'plev_units' argument
- fix archer and caldiera call to mass weighted ws (STILL TODO: better plev understanding)
- add metric verification notebooks
- add description, name and DOI to metric details dict
- remove Docker
- remove get data scripts
- remove python 3.6 compatibility
- update environment yml (still broken)
- Use real part from fourier filter to Woollings and its tests
- Remove main and experiment related files (moved to another directory so this one is cleaner)
- First release on github
- Add docstrings to all metrics and sub-components
- Add docstrings to Archer & Calidera metric
- Allow jsmetric to call jetstream_metrics and utils
- Add currently existing metrics