Skip to main content

Jenkinson - Collison automated gridded classification for Python

PyPI version fury.io downloads PyPI license Open In Colab

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?

Full walkthroughs: see the tutorial_sample_data.ipynb notebook for the example below using the bundled sample data, or tutorial_era5_arco.ipynb for computing circulation types directly from the cloud-hosted ARCO-ERA5 dataset (no download required). Both notebooks can be run directly in Colab via the badge at the top of this README.

Importing the module

from jcclass import compute_cts, eleven_cts, plot_cts

Computing the automated circulation types based on gridded MSLP

Sample datasets available here.

import xarray as xr
ds_mslp = xr.open_dataset("sample_data/era5_daily_lowres.nc").msl
cts_27 = compute_cts(ds_mslp)

Computing the reduced eleven circulation types

cts_11 = eleven_cts(cts_27)

Ploting the circulation types on a map

# Select a single day
date = "1979-01-31"
cts_2d = cts_27.sel(time = date) # selecting one time
fig = plot_cts(cts_2d, show=True)
  • cts_2d : a 2D xarray.DataArray of the 27 CTs for a single time step
  • show : bool, optional (default True) — set to False to return the figure without displaying it

Saving the figures

You can save anytime any of the figures using fig.savefig.

fig.savefig('figname.png', dpi = 150)

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.

Metadata

Release files for jcclass 0.0.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jcclass 0.0.11
File Size Uploaded
jcclass-0.0.11.tar.gz 25.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jcclass 0.0.11
File Interpreter ABI Platform
jcclass-0.0.11-py3-none-any.whl Python 3 none any Details

Total release size: 46.7 kB

Release files / jcclass-0.0.11.tar.gz

Download URL jcclass-0.0.11.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bff04698daab48cc0d5af40464d7c42be78113e485a599d7b700df12fe88c010
BLAKE2b-256 checksum
How to use checksums
f5a8ff9d54ecdc9b0dd6c989d78232fe0cf0fbe9330137ed6faafb76ee734a3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / jcclass-0.0.11-py3-none-any.whl

Download URL jcclass-0.0.11-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e06353b10c586b967ebb31b1424d274823ae141e0cb49d647dfdfc6b297c49f
BLAKE2b-256 checksum
How to use checksums
98a37758fb2f5820d5c60c764069c782b99f3a863bad5045827d41f95432d3f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release history Release notifications | RSS feed

0.0.12

2 release files

This release

0.0.11 This release

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page