{"id":24623481,"url":"https://github.com/fmagrini/seislib","last_synced_at":"2025-10-06T16:31:20.247Z","repository":{"id":40407264,"uuid":"449854015","full_name":"fmagrini/seislib","owner":"fmagrini","description":"Seismic imaging at local, regional, and global scale","archived":false,"fork":false,"pushed_at":"2025-03-03T12:04:58.000Z","size":7646,"stargazers_count":90,"open_issues_count":0,"forks_count":24,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-19T22:07:16.940Z","etag":null,"topics":["ambient-noise","imaging","inversion","python","seismology","surface-waves","teleseismic-earthquakes","tomography"],"latest_commit_sha":null,"homepage":"https://seislib.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fmagrini.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-19T21:01:04.000Z","updated_at":"2025-09-15T16:01:41.000Z","dependencies_parsed_at":"2024-07-17T06:29:13.312Z","dependency_job_id":"78610033-9fbb-4c45-8a54-4ad6fb820c20","html_url":"https://github.com/fmagrini/seislib","commit_stats":{"total_commits":163,"total_committers":2,"mean_commits":81.5,"dds":"0.35582822085889576","last_synced_commit":"9ae0f2c76da3a9bc66f1b7216a8b4b7897f62691"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fmagrini/seislib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmagrini%2Fseislib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmagrini%2Fseislib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmagrini%2Fseislib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmagrini%2Fseislib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fmagrini","download_url":"https://codeload.github.com/fmagrini/seislib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fmagrini%2Fseislib/sbom","scorecard":{"id":405348,"data":{"date":"2025-08-11","repo":{"name":"github.com/fmagrini/seislib","commit":"3da545c36df5670ec5102b0149341544690f04a4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Code-Review","score":1,"reason":"Found 3/16 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: MIT License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T21:06:22.631Z","repository_id":40407264,"created_at":"2025-08-18T21:06:22.631Z","updated_at":"2025-08-18T21:06:22.631Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278643624,"owners_count":26021155,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ambient-noise","imaging","inversion","python","seismology","surface-waves","teleseismic-earthquakes","tomography"],"created_at":"2025-01-25T03:57:36.021Z","updated_at":"2025-10-06T16:31:19.765Z","avatar_url":"https://github.com/fmagrini.png","language":"Python","funding_links":[],"categories":["Imaging"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"90%\" src=\"https://github.com/fmagrini/seislib/raw/master/docs/source/_static/seislib_logo.png\"\u003e\n\u003c/p\u003e\n\n[![PyPI version](https://img.shields.io/pypi/v/seislib?logo=pypi\u0026style=flat-square\u0026color=cae9ff\u0026labelColor=f8f9fa)](https://pypi.org/project/seislib/)\n[![Documentation Status](https://img.shields.io/readthedocs/seislib?logo=readthedocs\u0026style=flat-square\u0026color=fed9b7\u0026labelColor=f8f9fa\u0026logoColor=eaac8b)](https://seislib.readthedocs.io/en/latest/?badge=latest)\n\nSeisLib is a Python package that allows for obtaining seismic images of the sub-surface from the local to the global scale. It is the result of a long-term effort of our team to make efficient and open source some of the Python codes behind our seismological publications over the last few years. The library is in rapid expansion and, at present, includes:\n\n\n## **Seismic Ambient Noise Interferometry**\n*  Automated download of continuous seismograms\n* Fast cross-correlation of continuous seismograms in the frequency domain\n* Extraction of frequency-dependent phase velocities for both Rayleigh and Love waves based on pairs of receivers\n* Retrieval of frequency-dependent Rayleigh-wave attenuation coefficient based on dense seismic arrays\n\n## **Surface-Wave Tomography based on Teleseismic Earthquakes**\n* Automated download of seismograms recording strong earthquakes\n* Retrieval of frequency-dependent Rayleigh and Love phase velocities based on pairs of receivers lying on the same great-circle path as the epicentre (Two-Station Method)\n\n## **Least-Squares Imaging of Lateral Variations in Surface-Wave Velocity**\n* Equal-area and regular parameterizations, suited for data sets collected at local, regional, and global scale\n* Adaptive parameterizations, with finer resolution in the areas characterized by relatively high density of measurements\n* Linearized inversion of velocity measurements based on ray theory\n* Computational speed optimized (via Cython) for very large data sets\n* Possibility to perform L-curve analyses and resolution tests (e.g., spike, checkerboard)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"100%\" src=\"https://github.com/fmagrini/seislib/raw/master/docs/source/_static/lib_diagram.png\"\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\n## **Documentation**\n\nFor more information on SeisLib, make sure to visit our [wiki page](https://seislib.readthedocs.io/en/latest/)!\n\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\n## **Installation**\n\nFirst, make sure you have all the dependencies installed, i.e., ``obspy``, ``cartopy``, ``cython``, and ``cmcrameri``. We recommend installing such dependences using conda (see below). You will also need ``gcc`` or equivalent, to compile the cython parts of the library.\n\n```bash\nconda create -n seislib python=3.9 numpy=1.20\nconda activate seislib\nconda install -c conda-forge obspy\nconda install -c conda-forge cartopy\nconda install -c anaconda cython\n```\n\n\nOnce the above dependences have been installed, you can proceed with the installation of ``seislib``: \n\n```\npip install seislib\n```\n\nIf you run into troubles with the above, you can try the following approach:\n```\ngit clone https://github.com/fmagrini/seislib.git\ncd seislib/seislib/tomography/_ray_theory\npython setup_all.py build_ext --inplace\n```\nThe last command will compile the Cython files. If you work on an anaconda environment, you might need to replace \"python\" with, e.g., \"/home/your_name/anaconda3/bin/python\". (You can retrieve the path to your python executable by typing \"import sys; print(sys.executable)\" in your Python GUI. Make sure to then add ~/seislib to your path to being able to import its modules in your Python codes.\n\n\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\n## **References**\nSpecific to the Python package:\n- Magrini, F., Lauro, S., Kästle, E. \u0026 Boschi, L., 2022. Surface-wave tomography using SeisLib: a Python package for multi-scale seismic imaging. *Geophys. J. Int.*, ggac236, https://doi.org/10.1093/gji/ggac236\n\nAdditional references depending on the use you made of SeisLib:\n- Boschi, L. \u0026 Dziewonski, A.M., 1999. High- and low-resolution images of the Earth's mantle: Implications of different approaches to tomographic modeling. *J. Geophys. Res.*, 104(B11)\n- Boschi, L., Magrini, F., Cammarano, F., \u0026 van der Meijde, M. 2019. On seismic ambient noise cross-correlation and surface-wave attenuation. *Geophys. J. Int.*, 219(3), 1568-1589\n- Kästle, E., Soomro, R., Weemstra, C., Boschi, L. \u0026 Meier, T., 2016. Two-receiver measurements of phase velocity: cross-validation of ambient-noise and earthquake-based observations. *Geophys. J. Int.*, 207, 1493-1512\n- Magrini, F., Diaferia, G., Boschi, L. \u0026 Cammarano, F., 2020. Arrival-angle effects on two-receiver measurements of phase velocity. *Geophys. J. Int.*, 220, 1838-1844\n- Magrini, F. \u0026 Boschi, L., 2021. Surface-wave attenuation from seismic ambient noise: numerical validation and application. *J. Geophys. Res.*, 126, e2020JB019865\n- Magrini, F., Boschi, L., Gualtieri, L., Lekić, V. \u0026 Cammarano, F., 2021. Rayleigh‑wave attenuation across the conterminous United States in the microseism frequency band. *Scientific Reports*, 11, 1-9\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmagrini%2Fseislib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffmagrini%2Fseislib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffmagrini%2Fseislib/lists"}