Skip to main content

Calculate the tropical cyclone ventilated Potential Intensity (vPI) and the Genesis Potential Index using vPI (GPIv) from gridded datafiles. Supports both monthly mean and hourly ERA5 data. See Chavas Camargo Tippett (2025, J. Clim.) for details.

Project description

tcvpigpiv

A Python package to calculate the tropical cyclone ventilated Potential Intensity (vPI) and the Genesis Potential Index using vPI (GPIv) from gridded datafiles.

See Chavas, Camargo, & Tippett (2025, J. Clim.) for details.

Author: Dan Chavas (2025) Collaborators: Jose Ocegueda Sanchez (2025)

Installation

pip install tcvpigpiv

Or install from source:

git clone https://github.com/drchavas/tcvpigpiv.git
cd tcvpigpiv
pip install -e .

Features

  • Monthly Mean Data: Compute GPIv from ERA5 monthly mean reanalysis (d633001)
  • Hourly Data: Compute GPIv from ERA5 hourly reanalysis (d633000) via THREDDS remote access
  • Climatology: Compute and store monthly climatologies of GPIv and its components
  • Anomalies: Calculate anomalies relative to climatological means
  • Standardized Anomalies: Compute z-scores for statistical analysis

Quick Start

Monthly Mean Computation

from tcvpigpiv import run_vpigpiv

# Compute GPIv for September 2022
results = run_vpigpiv(2022, 9)

Hourly Computation

from tcvpigpiv import run_vpigpiv_hourly

# Compute GPIv for August 15, 2020 at 12Z
results = run_vpigpiv_hourly(2020, 8, 15, hour=12)

With Anomalies

from tcvpigpiv import run_vpigpiv_hourly

# First, compute or load a climatology
results = run_vpigpiv_hourly(
    2020, 8, 15, hour=12,
    compute_anomalies=True,
    climatology_path='gpiv_climatology.nc'
)

Data Loading

The package provides flexible data loading from NCAR RDA THREDDS servers:

from tcvpigpiv import load_era5_data, load_era5_hourly

# Load monthly mean data
ds_monthly = load_era5_data(2022, 9, data_source='monthly')

# Load hourly data for a specific time
ds_hourly = load_era5_data(2020, 8, day=15, hour=12, data_source='hourly')

# Load all hours of a day
ds_day = load_era5_hourly(2020, 8, 15)

ERA5 Dataset Structure

The package accesses ERA5 data via THREDDS with the following structure:

Monthly Mean (d633001):

  • All 12 months in a single file per variable per year
  • Both surface and pressure level variables

Hourly (d633000):

  • Surface variables: Monthly files containing all hours
    • Example: e5.oper.an.sfc.128_165_10u.ll025sc.2020080100_2020083123.nc
  • Pressure level variables: Daily files containing 24 hours
    • Example: e5.oper.an.pl.128_131_u.ll025uv.2020081500_2020081523.nc

Climatology Computation

from tcvpigpiv import compute_monthly_climatology, compute_gpiv_from_dataset

# Compute 40-year climatology (1980-2020)
climatology = compute_monthly_climatology(
    compute_gpiv_from_dataset,
    years=range(1980, 2020),
    output_path='gpiv_climatology.nc'
)

Computing Components Individually

from tcvpigpiv import (
    load_era5_data,
    calculate_potential_intensity,
    calculate_vws,
    calculate_entropy_deficit,
    calculate_etac,
)

# Load data
ds = load_era5_data(2022, 9, data_source='monthly')

# Calculate individual components
PI, asdeq = calculate_potential_intensity(ds)
VWS = calculate_vws(ds)
Chi = calculate_entropy_deficit(ds, asdeq)
eta_c = calculate_etac(ds)

Output Variables

The main computation returns a dataset with:

Variable Description Units
GPIv Ventilated Genesis Potential Index -
vPI Ventilated Potential Intensity m/s
PI Potential Intensity m/s
VWS Vertical Wind Shear (200-850 hPa) m/s
Chi Entropy Deficit -
eta_c Capped Absolute Vorticity (850 hPa) s⁻¹
ventilation_index Ventilation Index -

When computing anomalies, additional fields are added:

  • *_anom: Anomaly fields
  • *_clim: Climatological values

Dependencies

  • numpy
  • xarray
  • tcpyPI
  • matplotlib (for plotting)
  • cartopy (for plotting)

License

MIT License - see LICENSE file for details.

Citation

If you use this package, please cite:

Chavas, D. R., Camargo, S. J., & Tippett, M. K. (2025). "Tropical cyclone genesis potential using a ventilated potential intensity". Journal of Climate.

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

tcvpigpiv-0.3.0.tar.gz (20.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tcvpigpiv-0.3.0-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file tcvpigpiv-0.3.0.tar.gz.

File metadata

  • Download URL: tcvpigpiv-0.3.0.tar.gz
  • Upload date:
  • Size: 20.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tcvpigpiv-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c960b76bd6b995468b38ada4a25c62d8872d4c5f6fe7b7ad426f6a224aada3e2
MD5 8dd2656c397b669f25abb98e0574dfe2
BLAKE2b-256 a53e9e08023de42c09beb42c1b344cb1736f8113e483bb8de975629a437cd8af

See more details on using hashes here.

Provenance

The following attestation bundles were made for tcvpigpiv-0.3.0.tar.gz:

Publisher: publish.yml on drchavas/tcvpigpiv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tcvpigpiv-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: tcvpigpiv-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tcvpigpiv-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 329eb7df94e693c6d2e8fd8cda4879269d28214561943587f241c5e821679842
MD5 17959f6d00e325d2e180e6b89b373dbe
BLAKE2b-256 95e535e1f5306d324d8979f0c14bb414987154d185dd34c1f4de1cd675997c72

See more details on using hashes here.

Provenance

The following attestation bundles were made for tcvpigpiv-0.3.0-py3-none-any.whl:

Publisher: publish.yml on drchavas/tcvpigpiv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page