tstoolbox

Command line script and Python library to work with time-series data.

https://github.com/timcera/tstoolbox

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 7 committers (14.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

aggregate filter forecast normalization peak rank regression rolling-window time-series trend

Keywords from Contributors

tide dice-roller tidalcycles tidal sun moon template-engine dataset-generation multi-omics genomics
Last synced: 6 months ago · JSON representation ·

Repository

Command line script and Python library to work with time-series data.

Basic Info
  • Host: GitHub
  • Owner: timcera
  • License: other
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 12.6 MB
Statistics
  • Stars: 11
  • Watchers: 2
  • Forks: 6
  • Open Issues: 3
  • Releases: 0
Topics
aggregate filter forecast normalization peak rank regression rolling-window time-series trend
Created about 11 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation Authors

README.rst

.. image:: https://github.com/timcera/tstoolbox/actions/workflows/pypi-package.yml/badge.svg
    :alt: Tests
    :target: https://github.com/timcera/tstoolbox/actions/workflows/pypi-package.yml
    :height: 20

.. image:: https://img.shields.io/coveralls/github/timcera/tstoolbox
    :alt: Test Coverage
    :target: https://coveralls.io/r/timcera/tstoolbox?branch=master
    :height: 20

.. image:: https://img.shields.io/pypi/v/tstoolbox.svg
    :alt: Latest release
    :target: https://pypi.python.org/pypi/tstoolbox/
    :height: 20

.. image:: http://img.shields.io/pypi/l/tstoolbox.svg
    :alt: BSD-3 clause license
    :target: https://pypi.python.org/pypi/tstoolbox/
    :height: 20

.. image:: http://img.shields.io/pypi/dd/tstoolbox.svg
    :alt: tstoolbox downloads
    :target: https://pypi.python.org/pypi/tstoolbox/
    :height: 20

.. image:: https://img.shields.io/pypi/pyversions/tstoolbox
    :alt: PyPI - Python Version
    :target: https://pypi.org/project/tstoolbox/
    :height: 20

tstoolbox - Quick Guide
=======================
The tstoolbox is a Python script to manipulate time-series on the command line
or by function calls within Python.  Uses pandas (http://pandas.pydata.org/)
or numpy (http://numpy.scipy.org) for any heavy lifting.

Installation
------------
Should be as easy as running ``pip install tstoolbox`` or
``easy_install tstoolbox`` at any command line.  Not sure on Windows whether
this will bring in pandas, but as mentioned above, if you start with scientific
Python distribution then you shouldn't have a problem.

Usage - Command Line
--------------------
Just run 'tstoolbox --help' to get a list of subcommands::


    usage: tstoolbox [-h]
                     {accumulate, add_trend, aggregate, calculate_fdc,
                     calculate_kde, clip, convert, convert_index,
                     convert_index_to_julian, converttz, lag, correlation,
                     createts, date_offset, date_slice, describe, dtw,
                     equation, ewm_window, expanding_window, fill, filter, fit,
                     read, gof, normalization, pca, pct_change, peak_detection,
                     pick, plot, rank, regression, remove_trend, replace,
                     rolling_window, stack, stdtozrxp, tstopickle, unstack,
                     about} ...

    positional arguments:
      {accumulate, add_trend, aggregate, calculate_fdc, calculate_kde, clip,
      convert, convert_index, convert_index_to_julian, converttz, lag,
      correlation, createts, date_offset, date_slice, describe, dtw, equation,
      ewm_window, expanding_window, fill, filter, fit, read, gof,
      normalization, pca, pct_change, peak_detection, pick, plot, rank,
      regression, remove_trend, replace, rolling_window, stack, stdtozrxp,
      tstopickle, unstack, about}

    accumulate
        Calculate accumulating statistics.
    add_trend
        Add a trend.
    aggregate
        Take a time series and aggregate to specified frequency.
    calculate_fdc
        Return the frequency distribution curve.
    calculate_kde
        Return the kernel density estimation (KDE) curve.
    clip
        Return a time-series with values limited to [a_min, a_max].
    convert
        Convert values of a time series by applying a factor and offset.
    convert_index
        Convert datetime to/from Julian dates from different epochs.
    convert_index_to_julian
        DEPRECATED: Use convert_index instead.
    converttz
        Convert the time zone of the index.
    lag
        Create a series of lagged time-series.
    correlation
        Develop a correlation between time-series and potentially lags.
    createts
        Create empty time series, optionally fill with a value.
    date_offset
        Apply a date offset to a time-series index.
    date_slice
        Print out data to the screen between start_date and end_date.
    describe
        Print out statistics for the time-series.
    dtw
        Dynamic Time Warping.
    equation
        Apply  cto the time series data.
    ewm_window
        Calculate exponential weighted functions.
    expanding_window
        Calculate an expanding window statistic.
    fill
        Fill missing values (NaN) with different methods.
    filter
        Apply different filters to the time-series.
    fit
        Fit model to data.
    read
        Combines time-series from a list of pickle or csv files.
    gof
        Will calculate goodness of fit statistics between two time-series.
    normalization
        Return the normalization of the time series.
    pca
        Return the principal components analysis of the time series.
    pct_change
        Return the percent change between times.
    peak_detection
        Peak and valley detection.
    pick
        DEPRECATED: Will pick a column or list of columns from input
    plot
        Plot data.
    rank
        Compute numerical data ranks (1 through n) along axis.
    regression
        Regression of one or more time-series or indices to a time-series.
    remove_trend
        Remove a 'trend'.
    replace
        Return a time-series replacing values with others.
    rolling_window
        Calculate a rolling window statistic.
    stack
        Return the stack of the input table.
    stdtozrxp
        Print out data to the screen in a WISKI ZRXP format.
    tstopickle
        Pickle the data into a Python pickled file.
    unstack
        Return the unstack of the input table.
    about
        Display version number and system information.

    optional arguments:
      -h, --help            show this help message and exit

The default for all of the subcommands is to accept data from stdin (typically
a pipe).  If a subcommand accepts an input file for an argument, you can use
"--input_ts=input_file_name.csv", or to explicitly specify from stdin (the
default) "--input_ts='-'".

For the subcommands that output data it is printed to the screen and you can
then redirect to a file.

Usage - API
-----------
You can use all of the command line subcommands as functions.  The function
signature is identical to the command line subcommands.  The return is always
a PANDAS DataFrame.  Input can be a CSV or TAB separated file, or a PANDAS
DataFrame and is supplied to the function via the 'input_ts' keyword.

Simply import tstoolbox::

    import tstoolbox

    # Then you could call the functions
    ntsd = tstoolbox.fill(method='linear', input_ts='tests/test_fill_01.csv')

    # Once you have a PANDAS DataFrame you can use that as input to other
    # tstoolbox functions.
    ntsd = tstoolbox.aggregate(statistic='mean', groupby='D', input_ts=ntsd)

Owner

  • Name: Tim Cera
  • Login: timcera
  • Kind: user

Florida Professional Engineer working in water resources. I program to support data analysis and model simulations.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: tstoolbox
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Timothy
    family-names: Cera
    email: tim@cerazone.net
    orcid: 'https://orcid.org/0000-0003-4613-7697'
identifiers:
  - type: url
    value: 'https://pypi.org/project/tstoolbox/'
    description: Python Package Index URL for tstoolbox
repository-code: 'https://github.com/timcera/tstoolbox'
url: 'https://timcera.bitbucket.io/'
repository: 'https://bitbucket.org/timcera/tstoolbox/src/main/'
abstract: >-
  Import, calculations, transformations, statistics, and
  plots for time-series.
keywords:
  - time-series
  - filter
  - regression
  - rank
  - peak
  - normalization
  - rolling-window
license: BSD-3-Clause

GitHub Events

Total
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 9
  • Pull request event: 3
  • Create event: 1
Last Year
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 9
  • Pull request event: 3
  • Create event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 916
  • Total Committers: 7
  • Avg Commits per committer: 130.857
  • Development Distribution Score (DDS): 0.033
Past Year
  • Commits: 34
  • Committers: 1
  • Avg Commits per committer: 34.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Tim Cera t****m@c****t 886
deepsource-autofix[bot] 6****] 11
tim cera t****a@s****m 7
DeepSource Bot b****t@d****o 7
Timothy Cera t****a@n****v 3
snyk-bot s****t@s****o 1
sourcery-ai[bot] 5****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 5
  • Total pull requests: 19
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 2 days
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 0.8
  • Average comments per pull request: 1.0
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 18
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 19 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.5
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • timcera (4)
  • japageth (1)
Pull Request Authors
  • deepsource-autofix[bot] (15)
  • dependabot[bot] (2)
  • snyk-bot (1)
  • sourcery-ai[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (2) github_actions (2)

Dependencies

.github/workflows/clean-workflow-runs.yml actions
  • dmvict/clean-workflow-runs v1.0.0 composite
.github/workflows/python-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pip_requirements.txt pypi
  • pandas >=0.17.1
  • pygments >=2.7.4
  • sphinx >=3.0.4
  • sphinxcontrib-programoutput *
  • wheel *
requirements.txt pypi
  • Pint_Pandas >=0.1
  • XlsxWriter >=1.3.7
  • cltoolbox >=1.0.0
  • dateparser >=0.7.2
  • matplotlib >=3.3.3
  • numpy >=1.19.5
  • pandas >=1.2.0
  • plottoolbox >=101.4.12
  • pyaf >=2.0.1
  • pytest >=6.2.1
  • scikit_learn >=0.24.0
  • scipy >=1.6.0
  • statsmodels >=0.12.0
  • tabulate >=0.8.6
  • typical >=2.0.33
  • typing_extensions >=3.7.4.3
pyproject.toml pypi
  • HydroErr *
  • cltoolbox >= 1.0.0
  • dateparser *
  • dill *
  • numpy *
  • pandas [excel]
  • pint !=0.21.*
  • pint <0.22; python_version < '3.9'
  • pint-pandas *
  • plottoolbox >= 102.1.1
  • pydantic >= 2.0.0
  • pydot *
  • scikit-learn *
  • scipy *
  • six *
  • sqlalchemy *
  • statsmodels *
  • tabulate *
setup.py pypi