{"adoption": {"forks": 565, "observed_at": "2026-08-28T04:04:24.184787+00:00", "stars": 1330}, "canonical_url": "https://ross.abutalabs.com/products/obspy", "card": {"archived": false, "artifact_type": "library", "description": "ObsPy: A Python Toolbox for seismology/seismological observatories.", "domain": ["data-science", "apis", "developer-tools"], "enriched": true, "function": ["parser", "http-client", "data-visualization", "sdk"], "health_score": 98, "homepage": "https://www.obspy.org", "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["obspy/obspy"], "name": "obspy/obspy", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-26T16:01:18+00:00", "repo": "obspy/obspy", "stars": 1330, "tags": ["seismology", "earthquakes", "waveform-processing", "seismic-data", "fdsn", "miniseed", "scientific-computing", "geophysics", "signal-processing", "algorithms"], "topics": ["seismology", "python", "observatories", "science", "earthquakes", "data-center", "waveforms", "signal-processing", "web-services", "lgplv3", "hacktoberfest"], "urls": [], "use_cases": ["read and write seismic waveform formats like MiniSEED, SAC, and SEG Y in Python", "download earthquake waveform and event data from FDSN web services", "filter, detrend, and process seismological time series", "compute spectrograms and beamforming for seismic arrays", "plot seismograms and beachball focal mechanisms", "pick seismic phase arrivals and compute travel times with Tau-P"], "what_it_is": "ObsPy is an open-source Python framework for processing seismological data, providing file format parsers, data center web service clients, and signal processing routines for seismological time series. It aims to facilitate rapid application development for seismology and seismological observatories.", "when_to_avoid": ["you need general-purpose audio or DSP outside seismology", "you need real-time seismic monitoring UIs rather than a processing library", "your project cannot use LGPLv3-licensed dependencies"], "when_to_choose": ["you work with seismological data in Python and need format I/O plus processing in one toolbox", "you need programmatic access to seismic data centers like IRIS/EarthScope and EIDA", "you are building research or observatory applications for earthquake analysis"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/obspy", "repo": "obspy/obspy", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/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:04:24.184787+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.184787+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:45:32.710226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c6b9748c1b44f2d46f85dbe7d47328a723bda361474a6105134c372a846958", "fetched_at": "2026-08-28T04:04:24.184787+00:00", "kind": "readme", "missing": false, "url": "https://github.com/obspy/obspy"}, {"content_hash": "9329eeb97bdce18787e6c8f98765988dd0bbe08a32c724656b4f701070de5fd2", "fetched_at": "2026-08-29T12:04:35.958123+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/obspy/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 42}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5107, "days_push": 7, "days_rel": 173, "gap_med": 317, "n_releases_24m": 2}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}