Time-Stream

Time Series Toolkit for Rapid Environmental Analysis and Monitoring: An open-source Python library for handling and analysing timeseries data with a focus on maintaining the integrity of the temporal properties of the data.

TimeSeries Data Model

A powerful core object for managing time series with integrated metadata and flags.

Time Periods & Alignments

In-built functionality for handling timeseries resolution, periodicity and alignment.

Aggregation

Robust time-based aggregation methods which also provide rich supplementary data about data completeness.

Flag Systems & QC

Define bitwise flag systems, manage flag columns, and run quality checks.

Infilling

Fill gaps in your timeseries with interpolation and advanced infill strategies, safely and reproducibly.

Metadata

Keep important metadata about your timeseries along with the data. Either timeseries-level metadata, or metadata of individual columns.

Why Time-Stream?

The goal of Time-Stream is to provide a user friendly Python library for processing time series data, particularly in the hydrological and environmental domain. It is built on top of Polars, which handles efficient DataFrame processes, whilst adding on specific functionality to help you manage time properties such as resolution, periodicity, and anchor points.

  • Explicit time property management: Perform methods on your data without worrying about whether it’s handling your time data correctly.

  • Domain knowledge: Built by software engineers and data scientists from UKCEH, with years of experience working with hydrological and environmental data.

  • Building blocks: Modular design for aggregation, flagging, QC, and infilling.

  • Polars performance: Polars under the hood, vectorized paths where possible.

Community

Developed at UKCEH, welcoming community engagement and contributions. Below are some of the top contributors to the project:

Contributing

We welcome contributions! See Contributing for setup, coding standards, documentation guidelines, and CI.

License

This project is licensed under the GNU General Public License v3.0.