Timeseries utilities

The pyam package includes several utility functions for working with timeseries data formatted as pandas.Series that have the time dimension as index.


Not all pyam functions currently support continuous-time formats. Please reach out via our mailing list or GitHub issues if you are not sure whether your use case is supported.

pyam.cumulative(x, first_year, last_year)[source]

Returns the cumulative sum of a timeseries

This function implements linear interpolation between years and ignores nan’s in the range. The function includes the last-year value of the series, and raises a warning if start_year or last_year is outside of the timeseries range and returns nan


a timeseries to be summed over time


first year of the sum


last year of the sum (inclusive)

pyam.fill_series(x, time)[source]

Returns the timeseries value at a point in time by linear interpolation


a timeseries to be interpolated

timeint or pandas.datetime

year or datetime to interpolate

pyam.cross_threshold(x, threshold=0, direction=['from above', 'from below'], return_type=<class 'int'>)[source]

Returns a list of the years in which a timeseries crosses a threshold


A timeseries indexed over years (as integers)

thresholdfloat, optional

The threshold that the timeseries is checked against

directionstr, optional

Whether to return all years where the threshold is crossed or only where threshold is crossed in a specific direction

return_typetype, optional

Whether to cast the returned values to integer (years)