{"id":13735729,"url":"https://github.com/satellogic/orbit-predictor","last_synced_at":"2025-12-26T20:23:25.371Z","repository":{"id":43212175,"uuid":"110282435","full_name":"satellogic/orbit-predictor","owner":"satellogic","description":"Python library to propagate satellite orbits.","archived":false,"fork":false,"pushed_at":"2023-11-23T16:28:37.000Z","size":328,"stargazers_count":139,"open_issues_count":17,"forks_count":43,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-11-06T18:52:14.211Z","etag":null,"topics":["ham-radio","orbits","satellites","sgp4","space"],"latest_commit_sha":null,"homepage":null,"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/satellogic.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-11-10T19:01:19.000Z","updated_at":"2024-10-07T04:10:36.000Z","dependencies_parsed_at":"2023-11-22T16:28:13.365Z","dependency_job_id":"333e0eba-4d0e-426c-8f62-aa3b8aaf803f","html_url":"https://github.com/satellogic/orbit-predictor","commit_stats":{"total_commits":246,"total_committers":18,"mean_commits":"13.666666666666666","dds":0.6260162601626016,"last_synced_commit":"8d93119aed1fa6b8062c7ab9f04f7532a125f6cb"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellogic%2Forbit-predictor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellogic%2Forbit-predictor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellogic%2Forbit-predictor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satellogic%2Forbit-predictor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satellogic","download_url":"https://codeload.github.com/satellogic/orbit-predictor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224732131,"owners_count":17360416,"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","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":["ham-radio","orbits","satellites","sgp4","space"],"created_at":"2024-08-03T03:01:10.367Z","updated_at":"2025-12-26T20:23:25.316Z","avatar_url":"https://github.com/satellogic.png","language":"Python","funding_links":[],"categories":["`Python` processing of optical imagery (non deep learning)","Python"],"sub_categories":["Company specific examples"],"readme":"Orbit Predictor\n===============\n\n.. image:: https://github.com/satellogic/orbit-predictor/workflows/Python%20package/badge.svg\n    :target: https://github.com/satellogic/orbit-predictor/actions\n.. image:: https://coveralls.io/repos/github/satellogic/orbit-predictor/badge.svg?branch=master\n    :target: https://coveralls.io/github/satellogic/orbit-predictor?branch=master\n\n\nOrbit Predictor is a Python library to propagate orbits of Earth-orbiting objects (satellites, ISS, \nSanta Claus, etc) using `TLE (Two-Line Elements set) \u003chttps://en.wikipedia.org/wiki/Two-line_element_set\u003e`_\n\nAll the hard work is done by Brandon Rhodes implementation of \n`SGP4 \u003chttps://github.com/brandon-rhodes/python-sgp4\u003e`_. \n\nWe can say *Orbit predictor* is kind of a \"wrapper\" for the python implementation of SGP4\n\nTo install it\n-------------\n\nYou can install orbit-predictor from pypi::\n\n    pip install orbit-predictor\n\nUse example\n-----------\n\nWhen will be the ISS over Argentina?\n\n:: \n\n    In [1]: from orbit_predictor.sources import EtcTLESource\n\n    In [2]: from orbit_predictor.locations import ARG\n\n    In [3]: source = EtcTLESource(filename=\"examples/iss.tle\")\n\n    In [4]: predictor = source.get_predictor(\"ISS\")\n\n    In [5]: predictor.get_next_pass(ARG)\n    Out[5]: \u003cPredictedPass ISS over ARG on 2017-11-10 22:48:10.607212\u003e\n\n    In [6]: predicted_pass = _\n\n    In [7]: position = predictor.get_position(predicted_pass.aos)\n\n    In [8]: ARG.is_visible(position)  # Can I see the ISS from this location?\n    Out[8]: True\n\n    In [9]: import datetime\n\n    In [10]: position_delta = predictor.get_position(predicted_pass.los + datetime.timedelta(minutes=20))\n\n    In [11]: ARG.is_visible(position_delta)\n    Out[11]: False\n\n    In [12]: tomorrow = datetime.datetime.utcnow() + datetime.timedelta(days=1)\n\n    In [13]: predictor.get_next_pass(ARG, tomorrow, max_elevation_gt=20)\n    Out[13]: \u003cPredictedPass ISS over ARG on 2017-11-11 23:31:36.878827\u003e\n\n\nSimplified creation of predictor from TLE lines:\n\n::\n\n    In [1]: import datetime\n\n    In [2]: from orbit_predictor.sources import get_predictor_from_tle_lines\n\n    In [3]: TLE_LINES = (\n                \"1 43204U 18015K   18339.11168986  .00000941  00000-0  42148-4 0  9999\",\n                \"2 43204  97.3719 104.7825 0016180 271.1347 174.4597 15.23621941 46156\")\n\n    In [4]: predictor = get_predictor_from_tle_lines(TLE_LINES)\n\n    In [5]: predictor.get_position(datetime.datetime(2019, 1, 1))\n    Out[5]: Position(when_utc=datetime.datetime(2019, 1, 1, 0, 0),\n        position_ecef=(-5280.795613274576, -3977.487633239489, -2061.43227648734),\n        velocity_ecef=(-2.4601788971676903, -0.47182217472755117, 7.167517631852518),\n        error_estimate=None)\n\nCurrently you have available these sources\n------------------------------------------\n\n- Memorytlesource: in memory storage.\n- EtcTLESource: a uniq TLE is stored in `/etc/latest_tle`\n- WSTLESource: It reads a REST API currently used inside Satellogic. We are are working to make it publicly available.\n\nHow to contribute\n-----------------\n\n- Write pep8 compliant code. \n- Wrap the code on 100 columns.\n- Always use a branch for each feature and Merge Proposals.\n- Always run the tests before to push. (test implies pep8 validation)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatellogic%2Forbit-predictor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatellogic%2Forbit-predictor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatellogic%2Forbit-predictor/lists"}