{"id":18998560,"url":"https://github.com/cmeessen/velocityconversion","last_synced_at":"2026-03-08T09:36:49.034Z","repository":{"id":20941222,"uuid":"87794116","full_name":"cmeessen/VelocityConversion","owner":"cmeessen","description":"Python implementation of mantle velocity conversion by Goes et al. (2000).","archived":false,"fork":false,"pushed_at":"2023-02-11T01:28:07.000Z","size":8311,"stargazers_count":6,"open_issues_count":4,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-25T22:02:16.294Z","etag":null,"topics":["conversion","density","geophysics","mantle","temperature","velocity"],"latest_commit_sha":null,"homepage":"https://cmeessen.github.io/VelocityConversion/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmeessen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-04-10T09:41:14.000Z","updated_at":"2024-11-26T22:04:34.000Z","dependencies_parsed_at":"2023-01-14T08:00:51.762Z","dependency_job_id":"f5ea409b-eb86-40c0-b8de-be2d15260358","html_url":"https://github.com/cmeessen/VelocityConversion","commit_stats":{"total_commits":99,"total_committers":3,"mean_commits":33.0,"dds":"0.14141414141414144","last_synced_commit":"d4bdf0ee94872c66c5123d182518a4780d7b9c6b"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/cmeessen/VelocityConversion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmeessen%2FVelocityConversion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmeessen%2FVelocityConversion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmeessen%2FVelocityConversion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmeessen%2FVelocityConversion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmeessen","download_url":"https://codeload.github.com/cmeessen/VelocityConversion/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmeessen%2FVelocityConversion/sbom","scorecard":{"id":294110,"data":{"date":"2025-08-11","repo":{"name":"github.com/cmeessen/VelocityConversion","commit":"d4bdf0ee94872c66c5123d182518a4780d7b9c6b"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2,"checks":[{"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":"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":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","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":"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":"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":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"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":"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":"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:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE: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":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Vulnerabilities","score":0,"reason":"32 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2024-48 / GHSA-fj7x-q9j7-g6q6","Warn: Project is vulnerable to: PYSEC-2024-230 / GHSA-248v-346w-9cwc","Warn: Project is vulnerable to: PYSEC-2022-42986 / GHSA-43fp-rhv2-5gv8","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: GHSA-6673-4983-2vx5","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: GHSA-29gw-9793-fvw7","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: GHSA-gmj6-6f8f-6699","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: GHSA-jfmj-5v4g-7637"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T19:02:38.605Z","repository_id":20941222,"created_at":"2025-08-17T19:02:38.605Z","updated_at":"2025-08-17T19:02:38.605Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271173105,"owners_count":24711666,"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-08-19T02:00:09.176Z","response_time":63,"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":["conversion","density","geophysics","mantle","temperature","velocity"],"created_at":"2024-11-08T17:46:26.968Z","updated_at":"2026-03-08T09:36:48.979Z","avatar_url":"https://github.com/cmeessen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VelocityConversion\n\n[![DOI](https://zenodo.org/badge/87794116.svg)](https://zenodo.org/badge/latestdoi/87794116) [![PyPI version](https://badge.fury.io/py/velocityconversion.svg)](https://badge.fury.io/py/velocityconversion)\n\n- [VelocityConversion](#velocityconversion)\n  - [Introduction](#introduction)\n  - [Getting started](#getting-started)\n    - [Use the latest version not on PyPI](#use-the-latest-version-not-on-pypi)\n  - [Usage as command line tool](#usage-as-command-line-tool)\n  - [Usage as a Python module](#usage-as-a-python-module)\n  - [Modifying physical properties of the minerals](#modifying-physical-properties-of-the-minerals)\n  - [Contributing](#contributing)\n  - [Citing](#citing)\n  - [References](#references)\n  - [Licence](#licence)\n\n## Introduction\n\nThis code is a python implementation of the p- and s-wave velocity to density\nconversion approach after Goes et al. (2000). The implementation was optimised\nfor regular 3D grids using lookup tables instead of Newton iterations.\n\nGoes et al. (2000) regard the expansion coefficient as temperature dependent\nusing the relation by Saxena and Shen (1992). In `VelocityConversion`, the user\ncan additionally choose between a constant expansion coefficient or a pressure-\nand temperature dependent coefficient that was derived from Hacker and Abers\n(2004).\n\nFor detailed information on the physics behind the approach have a look at the\noriginal paper by Goes et al. (2000).\n\n## Getting started\n\n`VelocityConversion` requires Python 3 and numpy. Install `numpy` and\n`VelocityConversion` by running\n\n```bash\npip install numpy velocityconversion\n```\n\nTo uninstall `VelocityConversion`, run\n\n```bash\npip uninstall velocityconversion\n```\n\n### Use the latest version not on PyPI\n\nIf you want to use the very latest version, or want to\n[contribute](#contributing), clone the repository to you local hard drive:\n\n```bash\ngit clone https://github.com/cmeessen/VelocityConversion.git\n```\n\nor, if you haven an [SSH key](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)\nassociated to your account:\n\n```bash\ngit clone git@github.com:cmeessen/VelocityConversion.git\n```\n\nTo check whether everything is working run the tests\n\n```bash\npython test.py\n```\n\nIf the output looks like this, everything is working fine:\n\n```\ntest_vp_AlphaConst (__main__.TestVelocityConversion) ... ok\ntest_vs_AlphaConst (__main__.TestVelocityConversion) ... ok\ntest_vs_AlphaPT (__main__.TestVelocityConversion) ... ok\ntest_vs_AlphaT (__main__.TestVelocityConversion) ... ok\n\n----------------------------------------------------------------------\nRan 4 tests in 1.633s\n\nOK\n```\n\n## Usage as command line tool\n\nIn order to use the code as command line tool, add the `./Examples` directory\nto your `PATH`, e.g. in your bash profile:\n\n```bash\nexport PATH=/path/to/VelocityConversion/Examples:$PATH\n```\n\nAlternatively you can move the bash script\n[VelocityConversion](./Examples/VelocityConversion) to a place that is within\nyour `PATH`. Now the bash script `VelocityConversion` can be executed:\n\n```\nVelocityConversion\n\nUsage: VelocityConversion FileIn -type \u003cP|S\u003e [optional args]\n    Optional arguments:\n        -AlphaT\n        -AlphaPT\n        -dT \u003cval\u003e\n        -comp \u003cFilename\u003e\n        -h | --help\n        -NN\n        -out \u003cFileOut\u003e\n        -scaleV \u003cvalue\u003e\n        -setQ \u003c1|2\u003e\n        -v | -verbose\n        -XFe \u003cval\u003e\n        --version\n```\n\nThe steps to prepare a conversion are\n\n- definition of mantle rock composition in a `*.csv` file using the mineral\n  terminology of [MinDB.csv](./VelocityConversion/MinDB.csv)\n- provide a velocity distribution on a regular 3D grid where columns are `x y z\n  v`\n- run `VelocityConversion` specifying the velocity type with `-type P` or\n  `-type S`\n\nWorking examples for the usage as command line tool are provided in the script\n[RunExamples.sh](./Examples/RunExamples.sh).\n\n## Usage as a Python module\n\nVelocityConversion can also be imported as a Python module. Therefore, navigate\nto the folder that contains your clone of the repository (and\n[setup.py](./setup.py)) and execute\n\n```bash\npip install -e .\n```\n\nNow, the module can be imported to Python:\n\n```python\nfrom VelocityConversion import MantleConversion\nMC = MantleConversion()\n```\n\nA short working example for a conversion is:\n\n```python\nfrom VelocityConversion import MantleConversion\nMC = MantleConversion()\nMC.LoadFile(\"./Examples/VsSL2013.dat\")\nMC.SetVelType(\"S\")\nMC.DefaultMineralogy()\nMC.FillTables()\nMC.CalcPT()\nMC.SaveFile(\"./Examples/VsSL2013_out.dat\")\n```\n\nFor a more complete documentation on how to use `VelocityConversion` as a Python\nmodule please visit the\n[documentation](https://cmeessen.github.io/VelocityConversion/).\n\n## Modifying physical properties of the minerals\n\nThe database that contains the physical properties of the individual mineral\nphases is stored in [MinDB.csv](./VelocityConversion/MinDB.csv).\nMineral parameters can be edited, or new minerals added. A new mineral phase\nshould then be referred to in the code or the assemblage file using the name\nthat was assigned in the `phase` column of `MinDB.csv`.\n\n## Contributing\n\nPlease see [CONTRIBUTING.md](./CONTRIBUTING.md) if you want to contribute to\n`VelocityConversion`.\n\n## Citing\n\nIf you use this code, please consider citing it as\n\n\u003e Meeßen, Christian (2019): \"VelocityConversion (v1.1.2)\". Zenodo,\n\u003e http://doi.org/10.5281/zenodo.5897455.\n\nor refer to [CITATION.cff](./CITATION.cff).\n\n## References\n\nBerckhemer, H., W. Kampfmann, E. Aulbach, and H. Schmeling. “Shear Modulus and\nQ of Forsterite and Dunite near Partial Melting from Forced-Oscillation\nExperiments.” Physics of the Earth and Planetary Interiors, Special Issue\nProperties of Materials at High Pressures and High Temperatures, 29, no. 1\n(July 1, 1982): 30–41. doi:10.1016/0031-9201(82)90135-2.\n\nGoes, S., R. Govers, and P. Vacher. “Shallow Mantle Temperatures under Europe\nfrom P and S Wave Tomography.” Journal of Geophysical Research 105, no. 11\n(2000): 153–11. doi:10.1029/1999jb900300.\n\nHacker, Bradley R., and Geoffrey A. Abers. “Subduction Factory 3: An Excel\nWorksheet and Macro for Calculating the Densities, Seismic Wave Speeds, and H2O\nContents of Minerals and Rocks at Pressure and Temperature.” Geochemistry,\nGeophysics, Geosystems 5, no. 1 (January 1, 2004): Q01005.\ndoi:10.1029/2003GC000614.\n\nKennett, B. L. N., E. R. Engdahl, and R. Buland. “Constraints on Seismic\nVelocities in the Earth from Traveltimes.” Geophysical Journal International\n122, no. 1 (July 1, 1995): 108–24. doi:10.1111/j.1365-246X.1995.tb03540.x.\n\nSaxena, Surendra K., and Guoyin Shen. “Assessed Data on Heat Capacity, Thermal\nExpansion, and Compressibility for Some Oxides and Silicates.” Journal of\nGeophysical Research: Solid Earth 97, no. B13 (Dezember 1992): 19813–25.\ndoi:10.1029/92JB01555.\n\nSchaeffer, A. J., and S. Lebedev. “Global Shear Speed Structure of the Upper\nMantle and Transition Zone.” Geophysical Journal International 194, no. 1 (July\n1, 2013): 417–49. doi:10.1093/gji/ggt095.\n\nSobolev, Stephan V., Hermann Zeyen, Gerald Stoll, Friederike Werling, Rainer\nAltherr, and Karl Fuchs. “Upper Mantle Temperatures from Teleseismic Tomography\nof French Massif Central Including Effects of Composition, Mineral Reactions,\nAnharmonicity, Anelasticity and Partial Melt.” Earth and Planetary Science\nLetters 139, no. 1–2 (März 1996): 147–63. doi:10.1016/0012-821X(95)00238-8.\n\n## Licence\n\nLicence: GNU General Public Licence, Version 3, 29 June 2007\n\nCopyright (2017): Christian Meeßen, Potsdam, Germany\n\nVelocityConversion is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the Free\nSoftware Foundation, either version 3 of the License, or (at your option) any\nlater version. VelocityConversion is distributed in the hope that it will be\nuseful, but WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\nLicense for more details. You should have received a cop y of the GNU General\nPublic License along with this program. If not, see\nhttp://www.gnu.org/licenses/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmeessen%2Fvelocityconversion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmeessen%2Fvelocityconversion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmeessen%2Fvelocityconversion/lists"}