Skip to main content

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: Aaron Kruskie, 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.

Metadata

Release files for tcvpigpiv 0.3.4

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

Source distribution (sdist)

Source distribution for tcvpigpiv 0.3.4
File Size Uploaded
tcvpigpiv-0.3.4.tar.gz 20.5 kB Details

Built distribution (wheel)

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

Total release size: 40.1 kB

Release files / tcvpigpiv-0.3.4.tar.gz

Download URL tcvpigpiv-0.3.4.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a2bcf6c0fe480e57dd6eccaf649065719105128f81ccf373d97f276e9a93215a
BLAKE2b-256 checksum
How to use checksums
b43271c5ecffdecf2438985150b387d79376ffcf456d3fa3bfa884480a1c0150
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 28, 2026.

Transparency log

Release files / tcvpigpiv-0.3.4-py3-none-any.whl

Download URL tcvpigpiv-0.3.4-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f2f3a99f09158414d827c659cd05b57ebc7952e24be042841162c501ecf7f5f
BLAKE2b-256 checksum
How to use checksums
6ca47003e7173ab8029c74c5aca1c88df4ae2773a7a590d09911fb0c29212509
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.4 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.0

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