Beyond
======
.. image:: http://readthedocs.org/projects/beyond/badge/?version=latest
:alt: Documentation Status
:target: http://beyond.readthedocs.io/en/latest/?badge=latest
.. image:: https://app.travis-ci.com/galactics/beyond.svg?branch=master
:alt: Tests
:target: https://app.travis-ci.com/galactics/beyond
.. image:: https://coveralls.io/repos/github/galactics/beyond/badge.svg?branch=master
:alt: Coverage Status
:target: https://coveralls.io/github/galactics/beyond?branch=master
.. image:: https://img.shields.io/pypi/v/beyond.svg
:alt: PyPi version
:target: https://pypi.python.org/pypi/beyond
.. image:: https://img.shields.io/pypi/pyversions/beyond.svg
:alt: Python versions
:target: https://pypi.python.org/pypi/beyond
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
This library was started to better understand how Flight Dynamics works. It
has no intent of efficiency nor performance at the moment, and the goal is
mainly to develop a simple API for space observations.
The sources of this library can be found at `github <https://github.com/galactics/beyond>`__ and
are under the MIT license.
Installation
------------
Beyond requires Python 3.7+, numpy and `sgp4 <https://github.com/brandon-rhodes/python-sgp4>`__.
To install the library and its dependencies use pip
.. code-block:: shell
pip install beyond
Documentation
-------------
* `Last release <http://beyond.readthedocs.io/en/stable/>`__ (stable)
* `Dev <http://beyond.readthedocs.io/en/latest/>`__ (latest)
Usage
-----
.. code-block:: python
import numpy as np
from beyond.io.tle import Tle
from beyond.frames import create_station
from beyond.dates import Date, timedelta
# Parse TLE
tle = Tle("""ISS (ZARYA)
1 25544U 98067A 19072.15347313 .00000167 00000-0 10147-4 0 9997
2 25544 51.6420 118.6717 0004098 99.2855 123.2259 15.52799885160336""")
# Create a station from which to compute the pass
station = create_station('KSC', (28.524058, -80.65085, 0.0))
for orb in station.visibility(tle.orbit(), start=Date.now(), stop=timedelta(days=1), step=timedelta(minutes=2), events=True):
# As all angles are given in radians,
# there is some conversion to do
azim = -np.degrees(orb.theta) % 360
elev = np.degrees(orb.phi)
r = orb.r / 1000.
print("{event:10} {tle.name} {date:%Y-%m-%dT%H:%M:%S.%f} {azim:7.2f} {elev:7.2f} {r:10.2f}".format(
date=orb.date, r=r, azim=azim, elev=elev,
tle=tle, event=orb.event if orb.event is not None else ""
))
# Stop at the end of the first pass
if orb.event and orb.event.info == "LOS":
break
This library is used as basis for the `Space-Command <https://github.com/galactics/space-command>`__ utility.
Commons usages for this library are:
* `Predicting of satellite visibility <http://beyond.readthedocs.io/en/stable//examples.html#station-pointings>`__
* `Computing satellite ground track <http://beyond.readthedocs.io/en/stable//examples.html#ground-track>`__
* `Computing planets visibility <http://beyond.readthedocs.io/en/stable//examples.html#jupiter-and-its-moons>`__
References
----------
A lot of the formulas and flight dynamic algorithm are based on Vallado's
*Fundamentals of Astrodynamic and Applications* 4th ed.
Raw data
{
"_id": null,
"home_page": null,
"name": "beyond",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "flight dynamic, satellite, space",
"author": null,
"author_email": "Jules David <jules@onada.fr>",
"download_url": "https://files.pythonhosted.org/packages/af/b2/2b7a2d6e3cba324e8141779f99ce8c3b247a1700e0ed7aa4861184996c0d/beyond-0.8.tar.gz",
"platform": null,
"description": "Beyond\n======\n\n.. image:: http://readthedocs.org/projects/beyond/badge/?version=latest\n :alt: Documentation Status\n :target: http://beyond.readthedocs.io/en/latest/?badge=latest\n\n.. image:: https://app.travis-ci.com/galactics/beyond.svg?branch=master\n :alt: Tests\n :target: https://app.travis-ci.com/galactics/beyond\n\n.. image:: https://coveralls.io/repos/github/galactics/beyond/badge.svg?branch=master\n :alt: Coverage Status\n :target: https://coveralls.io/github/galactics/beyond?branch=master\n\n.. image:: https://img.shields.io/pypi/v/beyond.svg\n :alt: PyPi version\n :target: https://pypi.python.org/pypi/beyond\n\n.. image:: https://img.shields.io/pypi/pyversions/beyond.svg\n :alt: Python versions\n :target: https://pypi.python.org/pypi/beyond\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n\nThis library was started to better understand how Flight Dynamics works. It\nhas no intent of efficiency nor performance at the moment, and the goal is\nmainly to develop a simple API for space observations.\n\nThe sources of this library can be found at `github <https://github.com/galactics/beyond>`__ and\nare under the MIT license.\n\nInstallation\n------------\n\nBeyond requires Python 3.7+, numpy and `sgp4 <https://github.com/brandon-rhodes/python-sgp4>`__.\nTo install the library and its dependencies use pip\n\n.. code-block:: shell\n\n pip install beyond\n\nDocumentation\n-------------\n\n * `Last release <http://beyond.readthedocs.io/en/stable/>`__ (stable)\n * `Dev <http://beyond.readthedocs.io/en/latest/>`__ (latest)\n\nUsage\n-----\n\n.. code-block:: python\n\n import numpy as np\n from beyond.io.tle import Tle\n from beyond.frames import create_station\n from beyond.dates import Date, timedelta\n\n\n # Parse TLE\n tle = Tle(\"\"\"ISS (ZARYA)\n 1 25544U 98067A 19072.15347313 .00000167 00000-0 10147-4 0 9997\n 2 25544 51.6420 118.6717 0004098 99.2855 123.2259 15.52799885160336\"\"\")\n\n # Create a station from which to compute the pass\n station = create_station('KSC', (28.524058, -80.65085, 0.0))\n\n for orb in station.visibility(tle.orbit(), start=Date.now(), stop=timedelta(days=1), step=timedelta(minutes=2), events=True):\n\n # As all angles are given in radians,\n # there is some conversion to do\n azim = -np.degrees(orb.theta) % 360\n elev = np.degrees(orb.phi)\n r = orb.r / 1000.\n\n print(\"{event:10} {tle.name} {date:%Y-%m-%dT%H:%M:%S.%f} {azim:7.2f} {elev:7.2f} {r:10.2f}\".format(\n date=orb.date, r=r, azim=azim, elev=elev,\n tle=tle, event=orb.event if orb.event is not None else \"\"\n ))\n\n # Stop at the end of the first pass\n if orb.event and orb.event.info == \"LOS\":\n break\n\nThis library is used as basis for the `Space-Command <https://github.com/galactics/space-command>`__ utility.\n\nCommons usages for this library are:\n\n * `Predicting of satellite visibility <http://beyond.readthedocs.io/en/stable//examples.html#station-pointings>`__\n * `Computing satellite ground track <http://beyond.readthedocs.io/en/stable//examples.html#ground-track>`__\n * `Computing planets visibility <http://beyond.readthedocs.io/en/stable//examples.html#jupiter-and-its-moons>`__\n\nReferences\n----------\n\nA lot of the formulas and flight dynamic algorithm are based on Vallado's\n*Fundamentals of Astrodynamic and Applications* 4th ed.\n",
"bugtrack_url": null,
"license": null,
"summary": "Flight Dynamic Library",
"version": "0.8",
"project_urls": {
"Changelog": "https://github.com/galactics/beyond/blob/master/CHANGELOG.md",
"Documentation": "https://beyond.readthedocs.io",
"Homepage": "https://github.com/galactics/beyond",
"Issues": "https://github.com/galactics/beyond/issues",
"Repository": "https://github.com/galactics/beyond"
},
"split_keywords": [
"flight dynamic",
" satellite",
" space"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9b9e91437f9edfc44c008bed4815a88406304ce35bb7e260eb889d0b5f17d7c2",
"md5": "2ab5f25f73d62b02607291d18c50245f",
"sha256": "e844e4c7ed105cca2450e3275407561b455f401d20996487697076a2ab120203"
},
"downloads": -1,
"filename": "beyond-0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2ab5f25f73d62b02607291d18c50245f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 163085,
"upload_time": "2025-01-05T22:55:52",
"upload_time_iso_8601": "2025-01-05T22:55:52.070736Z",
"url": "https://files.pythonhosted.org/packages/9b/9e/91437f9edfc44c008bed4815a88406304ce35bb7e260eb889d0b5f17d7c2/beyond-0.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "afb22b7a2d6e3cba324e8141779f99ce8c3b247a1700e0ed7aa4861184996c0d",
"md5": "03089662f14d39c9d940afc02485a70d",
"sha256": "8f37f88b5405040cf14049deca08b5a5e71cd2cfb57b599bcdd4c5479f6a3f88"
},
"downloads": -1,
"filename": "beyond-0.8.tar.gz",
"has_sig": false,
"md5_digest": "03089662f14d39c9d940afc02485a70d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6559206,
"upload_time": "2025-01-05T22:55:56",
"upload_time_iso_8601": "2025-01-05T22:55:56.589082Z",
"url": "https://files.pythonhosted.org/packages/af/b2/2b7a2d6e3cba324e8141779f99ce8c3b247a1700e0ed7aa4861184996c0d/beyond-0.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-05 22:55:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "galactics",
"github_project": "beyond",
"travis_ci": true,
"coveralls": true,
"github_actions": false,
"tox": true,
"lcname": "beyond"
}