Jenkinson and Collison automated gridded classification
Project description
Jenkinson - Collison automated gridded classification for Python
This is an adapted version for python of the Jenkinson - Collison automated classfication based on the original Lamb Weather Types. This gridded version is based on the application made by Otero (2018) using a moving central gridded point with that allows to compute the synoptic circulation types on a gridded Mean Sea Level Pressure (MSLP) domain.
How does it work?
The method uses grid-point MSLP data to obtain numerical values of wind flow and vorticity which can be used to determine Cyclonic and Anticyclonic patterns as well as their dominant advective (direction of wind flow) characteristics. The 16 gridded points are moved along the region in reference to a central point where the dominant circulation type will be designated.
The Circulation Types (CTs)
The application of the automated classification allows to derive 27 synoptic circulations. 26 of them based on the dominant pressure pattern and wind direction plus a Low Flow (LF) type which is characterised by days when pressure gradients are to weak and a dominant circulation or advective direction can not be assigned.
Name | Abreviation | Coding | Name | Abreviation | Coding | Name | Abreviation | Coding |
---|---|---|---|---|---|---|---|---|
Low Flow | LF | -1 | ||||||
Anticyclonic | A | 0 | Cyclonic | C | 20 | |||
Anticyclonic Northeasterly | ANE | 1 | Northeasterly | NE | 11 | Cyclonic Northeasterly | CNE | 21 |
Anticyclonic Easterly | AE | 2 | Easterly | E | 12 | Cyclonic Easterly | CE | 22 |
Anticyclonic Southeasterly | ASE | 3 | Southeasterly | SE | 13 | Cyclonic Southeasterly | CSE | 23 |
Anticyclonic Southerly | AS | 4 | Southerly | S | 14 | Cyclonic Southerly | CS | 24 |
Anticyclonic Southwesterly | ASW | 5 | Southwesterly | SW | 15 | Cyclonic Southwesterly | CSW | 25 |
Anticyclonic Westerly | AW | 6 | Westerly | W | 16 | Cyclonic Westerly | CW | 26 |
Anticyclonic Northwesterly | ANW | 7 | Northwesterly | NW | 17 | Cyclonic Northwesterly | CNW | 27 |
Anticyclonic Northerly | AN | 8 | Northerly | N | 18 | Cyclonic Northerly | CN | 28 |
The original 27 circulations can be reduced to a set of 11 patterns based on their dominant advection.
Name | Abreviation | Coding |
---|---|---|
Low Flow | LF | -1 |
Anticyclonic | A | 0 |
Northeasterly | NE | 1 |
Easterly | E | 2 |
Southeasterly | SE | 3 |
Southerly | S | 4 |
Southwesterly | SW | 5 |
Westerly | W | 6 |
Northwesterly | NW | 7 |
Northerly | N | 8 |
Cyclonic | C | 9 |
Working datasets
The current code has been has been tested for the following datasets:
- ERA5 Reanalysis -NOAA 20th Century Reanalysis (V3)
- Global Climate Models from the Coupled Model Intercomparison Project (CMIP6)
The method can be applied for any other netcdf files with latitude coordinates names as "latitude" or "lat", or longitudes coordinates as "longitude" or "lon" and MSLP coordinate names as "msl" or "psl".
Sample datasets from ERA5 is provided and available here
Installation
Simply run in the terminal
pip install jcclass
How to use?
Importing the module
from jcclass import jc
Computing the automated circulation types based on gridded MSLP
Sample datasets available here.
filename = 'era5_daily_lowres.nc'
cts_27 = jc(filename).classification()
Computing the reduced eleven circulation types
cts_11 = jc.eleven_cts(cts_27)
Ploting the circulation types on a map
import xarray as xr
date = cts_27.time[0] #selecting the first time
cts = cts_27.sel(time = date)
fig = jc.plot_cts(cts, *args)
- cts : a 2D['lat','lon'] xarray.DataArray of the 27 CTs
- *args : int, optional (lat_south, lat_north, lon_west, lon_east)
Plotting the circulation types and MSLP contour lines on a map
import xarray as xr
mslp = xr.open_dataset(filename).sel(time = date)
fig = jc.plot_cts_mslp(cts, mslp, *args)
- cts : a 2D['lat','lon'] xarray.DataArray of the 27 CTs
- mslp : a 2D['lat','lon'] xarray.Dataset of MSLP
- *args : int, optional (lat_south, lat_north, lon_west, lon_east)
Plotting the circulation types and MSLP contour lines on a Nearside perspective cartopy projection
fig = jc.plot_cts_globe(cts, mslp, *argsglobe)
- cts : a 2D['lat','lon'] xarray.DataArray of the 27 CTs
- mslp : a 2D['lat','lon'] xarray.Dataset of MSLP
- *argsglobe : int, optional (lat_central=30, lon_central=0)
Saving the figures
You can save anytime any of the figures using fig.savefig
.
fig.savefig('figname.png', dpi = 150)
Documentation
Detailed documentation and tutorial on the jcclass
module can be found in the Documentation
Acknowledging this work
The code can be used and modified freely without any restriction. If you use it for your own research, I would appreciate if you cite this work as follows:
Herrera-Lormendez P., 2022: PedroLormendez/jcclass: version x.y.z doi:10.5281/zenodo.7025220
Reports on errors are welcomed by raising an issue
Further literature on the method
- Jenkinson AF, Collison FP. 1977. An Initial Climatology of Gales over the North Sea. Synoptic Climatology Branch Memorandum, No. 62., Meteorological Office, Bracknell.
- Lamb HH. 1972. British Isles weather types and a register of daily sequence of circulation patterns, 1861-1971: Geophysical Memoir. HMSO.
- Jones PD, Hulme M, Briffa KR. 1993. A comparison of Lamb circulation types with an objective classification scheme. International Journal of Climatology. John Wiley & Sons, Ltd, 13(6): 655–663. https://doi.org/10.1002/joc.3370130606.
- Otero N, Sillmann J, Butler T. 2018. Assessment of an extended version of the Jenkinson–Collison classification on CMIP5 models over Europe. Climate Dynamics. Springer Verlag, 50(5–6): 1559–1579. https://doi.org/10.1007/s00382-017-3705-y.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file jcclass-0.0.2.tar.gz
.
File metadata
- Download URL: jcclass-0.0.2.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2877c7be633412ba4b8634252eca74343525ff62f4c31b00a2b71a0df7ce4788 |
|
MD5 | 9cd2e35186af51e0ecfb9ec2b53e72ab |
|
BLAKE2b-256 | e18e94dc29a9f5ccff845da82b3d2432a5a3d02e225b6638c13c38779d9971f8 |