{"id":13586125,"url":"https://github.com/trehn/termtrack","last_synced_at":"2025-04-04T08:10:03.440Z","repository":{"id":26390226,"uuid":"29839754","full_name":"trehn/termtrack","owner":"trehn","description":"Track satellites in your terminal","archived":false,"fork":false,"pushed_at":"2022-06-07T11:57:35.000Z","size":74393,"stargazers_count":505,"open_issues_count":3,"forks_count":46,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-29T01:47:23.872Z","etag":null,"topics":["astronomy","map","orbit","python","satellite","space","world"],"latest_commit_sha":null,"homepage":"","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/trehn.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-26T01:30:17.000Z","updated_at":"2025-03-13T23:47:39.000Z","dependencies_parsed_at":"2022-08-28T23:21:35.208Z","dependency_job_id":null,"html_url":"https://github.com/trehn/termtrack","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trehn%2Ftermtrack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trehn%2Ftermtrack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trehn%2Ftermtrack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trehn%2Ftermtrack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trehn","download_url":"https://codeload.github.com/trehn/termtrack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142074,"owners_count":20890653,"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":["astronomy","map","orbit","python","satellite","space","world"],"created_at":"2024-08-01T15:05:20.494Z","updated_at":"2025-04-04T08:09:59.256Z","avatar_url":"https://github.com/trehn.png","language":"Python","readme":"TermTrack\n---------\n\nTrack orbiting objects (such as the International Space Station) in your terminal!\n\n.. image:: https://raw.githubusercontent.com/trehn/termtrack/master/screenshot.png\n    :alt: Screenshot\n\nRequires Python 3.3+ and a terminal with 256 colors. A black background is highly recommended.\n\n.. code-block::\n\n\tpip3 install termtrack\n\ttermtrack -figmntxo 1 iss\n\n.. code-block::\n\n\tUsage: termtrack [OPTIONS] [SATELLITE]\n\n\t  Shows a world map tracking SATELLITE. Valid values for SATELLITE are\n\t  numbers from http://www.celestrak.com/NORAD/elements/master.php (for\n\t  your convenience, a number of aliases have been provided).\n\n\t  Example satellite aliases (find more with --aliases):\n\t      hubble          Hubble Space Telescope\n\t      iss             International Space Station\n\n\t  Hotkeys:\n\t      a       Toggle apsides markers\n\t      c       Toggle next-orbit coverage overlay\n\t      d       Toggle ascent/descent markers\n\t      f       Toggle footprint (satellite horizon)\n\t      g       Toggle latitude/longitude grid\n\t      i       Toggle info panels\n\t      n       Toggle night shading\n\t      o       Cycle through drawing 0-3 next orbits\n\t      p       Pause/resume\n\t      q       Quit\n\t      r       Reset plotted time to current\n\t      t       Toggle topography\n\t      x       Toggle crosshair\n\t      left    Small step back in time\n\t      right   Small step forward in time\n\t      down    Large step back in time\n\t      up      Large step forward in time\n\n\tOptions:\n\t  --aliases                 Show all satellite aliases and exit\n\t  --apsides                 Draw apoapsis and periapsis markers\n\t  -b, --body BODY           Which celestial body to draw: Earth, Moon or Mars\n\t                            (defaults to Earth)\n\t  -c, --coverage            Show next-orbit coverage overlay\n\t  -f, --footprint           Draw satellite footprint/horizon\n\t  --fps N                   Frames per second (defaults to 1)\n\t  -g, --grid                Draw latitude/longitude grid\n\t  -i, --info                Show info panels\n\t  -m, --me                  Auto-detect your location as observer\n\t  -n, --night               Shade night side\n\t  -o, --orbits N            Draw this many orbits ahead of the satellite\n\t  --orbit-ascdesc           Draw orbits with ascent/descent markers\n\t  -O, --observer 'LAT LON'  Space-separated latitude and longitude of an\n\t                            observer; overrides IP-geolocation\n\t  -p, --paused              Start paused\n\t  -P, --planets PLANETS     Comma-separated list of celestial objects to draw\n\t                            (e.g. 'sun,moon')\n\t  -r, --orbit-res [/]N[+]   Set distance of orbit markers: 'N' means N\n\t                            minutes, '/N' means 1/Nth of orbital period,\n\t                            append a plus sign to interpolate in between\n\t                            markers (defaults to /70)\n\t  -t, --topo                Enable coloring of topographical features\n\t  --tle FILE                read TLE data from FILE instead of downloading it\n\t                            (SATELLITE will have no effect and can be omitted)\n\t  -x, --crosshair           Draw crosshair around satellite location\n\t  --version                 Show version and exit\n\t  --help                    Show this message and exit\n\nCredit goes to `vain/asciiworld \u003chttps://github.com/vain/asciiworld\u003e`_ for inspiration and some tasty pieces of code.\n\n------------------------------------------------------------------------\n\n.. image:: http://img.shields.io/pypi/v/termtrack.svg\n    :target: https://pypi.python.org/pypi/termtrack/\n    :alt: Latest Version\n\n.. image:: http://img.shields.io/badge/Python-3.3+-green.svg\n    :target: https://pypi.python.org/pypi/termtrack/\n    :alt: Python 3.3+\n\n.. image:: http://img.shields.io/badge/License-GPLv3-red.svg\n    :target: https://pypi.python.org/pypi/termtrack/\n    :alt: License\n\n------------------------------------------------------------------------\n\nHow Stuff Works\n===============\n\nTo draw the map, TermTrack will look at a shapefile from `Natural Earth \u003chttp://www.naturalearthdata.com\u003e`_ in order to find coordinates that are within a landmass. While computationally expensive, this method yields the most accurate and good-looking maps at all terminal sizes. To determine the color of each pixel, a relatively low-resolution and low-quality JPEG image is used. If you look at the image (``termtrack/data/earth.jpg``), you'll notice it has green oceans. This is to ensure that ocean blue will not spill over into coastal areas during downsampling. Same goes for the expanded white coast of Antarctica. Finally, the image has been tuned to produce good-looking colors against a black background. The resolution and quality of the image is not really a concern since we do not need maximum per-pixel precision to make the Sahara appear yellow. After computing land/ocean status and land color, this information is cached in ``~/.termtrack_map_cache``, so it will not have to be rendered again for the current terminal size.\n\nFor Mars and the Moon there is no shapefile to read and the entire area is colored according to similar JPEG color maps.\n\nNight shading for each pixel is done by looking at the Sun's elevation (as computed by `pyephem \u003chttp://rhodesmill.org/pyephem/\u003e`_) and shifting the color of the pixel towards blue accordingly. Twilight starts when the Sun is 18° below the horizon (`astronomical twilight \u003chttps://en.wikipedia.org/wiki/Twilight#Astronomical_twilight\u003e`_) and ends when it has risen to 0°.\n\nSatellite locations are derived from `TLE \u003chttps://en.wikipedia.org/wiki/Two-line_element_set\u003e`_ data downloaded from `CelesTrak \u003chttps://celestrak.com/\u003e`_. The data is fed into pyephem where the current position of the satellite is computed using `SGP4 \u003chttps://en.wikipedia.org/wiki/Simplified_perturbations_models\u003e`_. Most of the data you see in the info panels is provided by pyephem, but the apsides' locations as well as the satellite footprint outline are computed by TermTrack itself.\n\n\nKnown Issues\n============\n\nWhen looking at the ISS, you may notice some inconsistencies:\n\n* the apoapsis/periapsis altitudes from the info panel do not match up with live altitude values when the satellite actually is at that point\n* sometimes the current altitude is lower/higher than periapsis/apoapsis altitude\n* the location of apoapsis/periapsis markers from ``--apsides`` are not located at the transition points between plus and minus signs drawn by ``--orbit-ascdesc``\n\nWhere do these errors come from? The locations of the apsides are derived from the true anomaly which matches values from http://www.satellite-calculations.com/TLETracker/SatTracker.htm so I'm assuming that's not the source of the error. The shape of the Earth also does not explain the deviations in altitude.\n\nInterestingly enough, when you look at more eccentric orbits like that of QZS-1 (37158) the errors seem to disappear, suggesting that the issue is merely inaccuracy instead of a plain wrong calculation somewhere.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrehn%2Ftermtrack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrehn%2Ftermtrack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrehn%2Ftermtrack/lists"}