ice_edge_latitude
Python code to calculate the latitude of the sea ice edge from climate model/observation data.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.0%) to scientific vocabulary
Repository
Python code to calculate the latitude of the sea ice edge from climate model/observation data.
Basic Info
- Host: GitHub
- Owner: jraylmer
- License: mit
- Language: Python
- Default Branch: main
- Size: 21.5 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
iceedgelatitude
Python code to calculate the latitude of the sea ice edge from climate model/observation data based on the algorithm of Eisenman (2010). This package also includes a routine for calculating sea ice extent and area, and the code should also work with other climate data provided they are transformed into the required structure.
Requirements
- Python 3 (tested on 3.7.5)
- NumPy (tested on 1.19.3)
- Tested on Windows and UNIX but should be OS-independent
This package does not provide functions for dealing with raw data, and expects input in the form of NumPy arrays. CMIP data is available in NetCDF format, which can be opened and converted to arrays using the NetCDF4 package. Interpolation of fields onto regular grids can be done on arrays directly with SciPy. The cf-python package is also recommended for interpolation, as it is specifically designed for climate data.
Package structure
- iceedgelatitude (main package)
- diagnostics (sea ice diagnostics sub-package)
ice_edge_latitude.pysea_ice_extent.py
- utilities (general functions used by the diagnostics sub-package)
math_functions.pyregions.pyutils.py
Sea ice diagnostics package: overview
The module sea_ice_extent.py provides the following function (see documentation for further details and usage):
sea_ice_extent()calculates sea ice extent or area, by hemisphere and between specified concentration contours, from sea ice concentration on arbitrary grids.
The module ice_edge_latitude.py provides the following functions:
get_ice_edge()calculates the latitude of the sea ice edge as a function of time and longitude from gridded sea ice concentration data, eliminating points within a specified distance of land. This is an implementation of the algorithm described by Eisenman (2010).ice_edge()is a wrapper function which takes global data and ensures it is in the correct format before passing toget_ice_edge(), and returns the (time series of) ice-edge latitudes for each hemisphere. Usually, and for CMIP data in particular, this is the `user-level' function.split_iel_by_region()extracts, from the output ofget_ice_edge()andice_edge(), ice edge points which lie within specified regions (e.g., for getting the ice edge in a certain ocean basin).
Example usage
Assume we have global, gridded sea ice concentration data siconc with time t, latitude lat, and longitude lon coordinates, and grid cell areas, area, on a 1° uniform grid and as NumPy arrays such that their shapes:
```
np.shape(t) (1980,) # e.g. CMIP historical simulation monthly means, 185 years * 12 months np.shape(lat) (180,) np.shape(lon) (360,) np.shape(area) (180, 360) np.shape(siconc) (1980, 180, 360)
Sea ice extent for the whole time series can be calculated (this function also works with un-gridded data):from iceedgelatitude.diagnostics import seaiceextent as sie from iceedgelatitude.diagnostics import iceedgelatitude as ielsienh, siesh = sie.seaiceextent(lat, area, siconc) # northern and southern hemispheres are returned separately
Or, e.g., total sea ice area in the marginal ice zone:siamiznh, siamizsh = sie.seaiceexent(lat, area, siconc, asarea=True, threshold=[0.15, 0.80])The time series of the latitude of the ice edge (requires gridded data):ielatnh, ielatsh = iel.iceedge(lat, siconc)The `regions.py` module of the utilities sub-package contains some pre-defined regions for filtering data using `split_iel_by_region`. For example, to get the ice edge points in the south Pacific ocean:from iceedgelatitude.utilities import regions as reg ielonsp, ielatsp = iel.splitielbyregion(lon, ielatsh, region=reg.southpacific) ```
Notes
Ensure that the sea ice concentration data and specified threshold parameters are in the same units. For sea ice extent it is necessary to use fractional concentration rather than percentage (which CMIP data often comes in).
References
Eisenman, I., 2010: Geographic muting of changes in the Arctic sea ice cover. Geophys. Res. Lett., 37, L16501, doi:10.1029/2010GL043741.
Owner
- Name: Jake Aylmer
- Login: jraylmer
- Kind: user
- Location: Reading, UK
- Company: University of Reading
- Website: https://research.reading.ac.uk/meteorology/people/jake-aylmer/
- Repositories: 1
- Profile: https://github.com/jraylmer
Postdoctoral Research Assistant in the Department of Meteorology, University of Reading, UK.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Aylmer" given-names: "Jake Robert" orcid: "https://orcid.org/0000-0002-5159-0608" title: "Sea ice-edge latitude diagnostic code" version: 1.0.0 doi: 10.5281/zenodo.5494524 date-released: 2021-09-08 url: "https://github.com/jakeaylmer/ice_edge_latitude"