Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lzkelley/cosmopy
A simple cosmological calculator in python (API or command-line).
https://github.com/lzkelley/cosmopy
astronomy astrophysics calculator cosmology physics utility
Last synced: about 4 hours ago
JSON representation
A simple cosmological calculator in python (API or command-line).
- Host: GitHub
- URL: https://github.com/lzkelley/cosmopy
- Owner: lzkelley
- License: mit
- Created: 2017-12-24T03:30:24.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T19:20:18.000Z (10 months ago)
- Last Synced: 2024-07-29T09:13:06.133Z (7 months ago)
- Topics: astronomy, astrophysics, calculator, cosmology, physics, utility
- Language: Python
- Homepage:
- Size: 1.83 MB
- Stars: 8
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGES.rst
- License: LICENSE
Awesome Lists containing this project
README
cosmopy
=======|version| |build-status| |coverage|
Quickly calculate cosmological parameters.
- Provides both command-line and API interfaces.
- Uses the machinery from the `astropy.cosmology` package.
The user provides an input parameter (e.g. redshift or luminosity-distance) and recieves the entire set of cosmological measures corresponding to the epoch thus specified.
The below gif shows three examples: inputting a redshift, a luminosity distance (`-dl 400Mpc`), and an age of the universe (`-ta 3.2Gyr`).
.. image:: https://raw.githubusercontent.com/lzkelley/cosmopy/dev/docs/cosmopy_demo.gif
:height: 600pxInstallation
------------Using `pip`:
::
pip install cosmopy
From source:
::
git clone [email protected]:lzkelley/cosmopy.git
pip install cosmopyUsage
-----
`cosmopy` can be used via the command-line `cosmo` command, or via python API by importing the module directly.- Command Line:
::
$ cosmo --help
usage: cosmo [-h] [-z Z] [-a A] [-dc DC] [-dl DL] [-tl TL] [-ta TA] [-v]
cosmopy: cosmological calculator.
optional arguments:
-h, --help show this help message and exit
-z Z target redshift z
-a A target scale factor a
-dc DC, -cd DC target coming distance D_C
-dl DL, -ld DL target luminosity distance D_L
-tl TL, -lt TL target look-back time T_L
-ta TA, -at TA target universe age T_A
-v, --version print version information.For example, entering an input redshift of 0.2:
::
$ cosmo -z 0.2
z = 0.2000 : Redshift
a = 0.8333 : Scale-factor
D_c = 815.3960 Mpc ~ 2.5160e+27 cm : Comoving Distance
D_L = 978.4752 Mpc ~ 3.0193e+27 cm : Luminosity Distance
D_A = 679.4967 Mpc ~ 2.0967e+27 cm : Angular Diameter Distance
Arcsec = 3294.2928 pc ~ 1.0165e+22 cm : Arcsecond Scale
T_lb = 2.4277 Gyr ~ 7.6613e+16 s : Lookback Time
T_a = 11.3235 Gyr ~ 3.5734e+17 s : Age of the Universe
DM = 39.9527 : Distance Modulusor an input luminosity-distance of 400 Mpc:
::
$ cosmo -dl 400Mpc
z = 0.0880 : Redshift
a = 0.9192 : Scale-factor
D_c = 367.6631 Mpc ~ 1.1345e+27 cm : Comoving Distance
D_L = 400.0000 Mpc ~ 1.2343e+27 cm : Luminosity Distance
D_A = 337.9403 Mpc ~ 1.0428e+27 cm : Angular Diameter Distance
Arcsec = 1638.3809 pc ~ 5.0555e+21 cm : Arcsecond Scale
T_lb = 1.1496 Gyr ~ 3.6280e+16 s : Lookback Time
T_a = 12.6016 Gyr ~ 3.9768e+17 s : Age of the Universe
DM = 38.0103 : Distance Modulus- Python API
The module can be imported as `cosmopy`, from which the primary access point is the `api` function which accepts two arguments: a `key` (a target cosmological parameter) and a `value` of that parameter (optionally including units). The function returns a dictionary with the computed values as key: value pairs (both strings). For example:
::
$ python -c "import cosmopy; print(cosmopy.api('dl', '1.2 Gpc'))"
{'z': '0.2396', 'dl': '1200.0000 Mpc', 'tl': '2.8359 Gyr', 'dc': '968.0336 Mpc', 'ta': '10.9153 Gyr', 'da': '780.9075 Mpc', 'dm': '40.3959', 'arc': '3785.9464 pc', 'a': '0.8067'}.. |version| image:: https://img.shields.io/pypi/v/cosmopy
:alt: PyPI
:target: https://pypi.org/project/cosmopy/.. |build-status| image:: https://github.com/lzkelley/cosmopy/actions/workflows/build-status.yml/badge.svg
:alt: build-status
:target: https://github.com/lzkelley/cosmopy/actions/workflows/build-status.yml.. |coverage| image:: https://codecov.io/gh/lzkelley/cosmopy/branch/main/graph/badge.svg?token=ZRPgCWUaVW
:alt: coverage
:target: https://codecov.io/gh/lzkelley/cosmopy