{"adoption": {"forks": 156, "observed_at": "2026-08-28T04:03:34.809907+00:00", "stars": 1098}, "canonical_url": "https://ross.abutalabs.com/products/tsfel", "card": {"archived": false, "artifact_type": "library", "description": "An intuitive library to extract features from time series.", "domain": ["data-science", "machine-learning", "time-series"], "enriched": true, "function": ["machine-learning", "data-science", "etl"], "health_score": 73, "homepage": "https://tsfel.readthedocs.io", "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["fraunhoferportugal/tsfel"], "name": "fraunhoferportugal/tsfel", "platform": ["python", "cross-platform"], "pushed_at": "2026-01-30T16:06:10+00:00", "repo": "fraunhoferportugal/tsfel", "stars": 1098, "tags": ["feature-extraction", "time-series", "feature-engineering", "signal-processing", "spectral-features", "statistical-features"], "topics": ["feature-extraction", "classification", "time-series", "colab-notebook", "data-science", "feature-engineering"], "urls": [], "use_cases": ["extract features from time series for machine learning", "compute statistical and spectral features from sensor signals", "feature engineering for human activity recognition", "extract features from ECG or physiological signals", "build reproducible time series feature extraction pipelines", "prepare time series data for classification models"], "what_it_is": "TSFEL is an open-source Python library for extracting features from time series signals across statistical, temporal, spectral, and fractal domains. It provides configurable feature extraction pipelines with reproducible configuration files and extensive documentation.", "when_to_avoid": ["you need streaming or real-time feature extraction at scale", "you work outside Python or need deep learning end-to-end models", "you only need simple rolling statistics already available in pandas"], "when_to_choose": ["you need a broad, ready-made set of time series features in Python", "you want configurable, reproducible feature extraction with saved config files", "you work with sensor, ECG, or accelerometer data for classification", "you need documented, unit-tested feature implementations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tsfel", "repo": "fraunhoferportugal/tsfel", "role": "main", "score": 53}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.809907+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:46:18.890982+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9e02e64f065a3765853b5b18f98c2d45bce1ceb87c47e9d87934e7f75aa6f20f", "fetched_at": "2026-08-28T04:03:34.809907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/fraunhoferportugal/tsfel"}, {"content_hash": "cf0a4fd79a31af226eca752a1ab8ebf54692ebae58822aba17a35e8c452d8a7c", "fetched_at": "2026-08-29T12:50:13.699827+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tsfel/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 65, "longevity": 100, "rhythm": 12}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2793, "days_push": 215, "days_rel": 378, "gap_med": 342, "n_releases_24m": 2}, "score": 53, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}