Spacex-api: Starlink orbit tracking

Created on 15 Jun 2020  ยท  17Comments  ยท  Source: r-spacex/SpaceX-API

  • Add an endpoint purely for Starlink sats and orbit tracking /starlink
  • Add auto updater job to fetch orbits
Feature

Most helpful comment

@stazrad awesome work ๐Ÿ‘

Lat/Lon, height, and velocity are live on the Starlink endpoints, and get updated hourly with the orbit updates.

Hoping to get to the rest of the tle.js integration this weekend, for stuff like ground tracks, individual sat info from a position, and getting visible sats from a position.

All 17 comments

Model should adhere to the standards for orbit data messages

Current draft schema is the following:

{
  "spaceTrack": {
    "CCSDS_OMM_VERS": "2.0",
    "COMMENT": "GENERATED VIA SPACE-TRACK.ORG API",
    "CREATION_DATE": "2020-06-19 21:36:08",
    "ORIGINATOR": "18 SPCS",
    "OBJECT_NAME": "STARLINK-55",
    "OBJECT_ID": "2019-029AK",
    "CENTER_NAME": "EARTH",
    "REF_FRAME": "TEME",
    "TIME_SYSTEM": "UTC",
    "MEAN_ELEMENT_THEORY": "SGP4",
    "EPOCH": "2020-06-19 20:00:01.000224",
    "MEAN_MOTION": 15.58451914,
    "ECCENTRICITY": 0.0000165,
    "INCLINATION": 52.993,
    "RA_OF_ASC_NODE": 151.6812,
    "ARG_OF_PERICENTER": 29.9824,
    "MEAN_ANOMALY": 201.95,
    "EPHEMERIS_TYPE": 0,
    "CLASSIFICATION_TYPE": "U",
    "NORAD_CAT_ID": 44268,
    "ELEMENT_SET_NO": 999,
    "REV_AT_EPOCH": 6007,
    "BSTAR": 0.00056,
    "MEAN_MOTION_DOT": 0.00043234,
    "MEAN_MOTION_DDOT": 0,
    "SEMIMAJOR_AXIS": 6770.273,
    "PERIOD": 92.399,
    "APOAPSIS": 392.25,
    "PERIAPSIS": 392.027,
    "OBJECT_TYPE": "PAYLOAD",
    "RCS_SIZE": "LARGE",
    "COUNTRY_CODE": "US",
    "LAUNCH_DATE": "2019-05-24",
    "SITE": "AFETR",
    "DECAY_DATE": null,
    "DECAYED": 0,
    "FILE": 2768934,
    "GP_ID": 155985474,
    "TLE_LINE0": "0 STARLINK-55",
    "TLE_LINE1": "1 44268U 19029AK  20171.83334491  .00043234  00000-0  56046-3 0  9991",
    "TLE_LINE2": "2 44268  52.9926 151.6812 0000165  29.9824 201.9500 15.58451914 60072"
  },
  "version": "v0.9",
  "launch": "5eb87d30ffd86e000604b378",
  "id": "5eed7714096e590006985635"
}

Auto update is functional, and version and launch are calculated from existing launch data

Updating should be pretty hands off, as new Starlink sats get added to their database, they automatically get added to ours. Only update will be on the calculation of Starlink version, once they push past v1.0.

@AlbericTrancart Since this was one of your feature requests, what kinds of aggregations are you looking for?

Looks nice! Right now the Starlink data on SXS is manual.
I'm doing the upgrade to the v4 then I'll automate the Starlink section.
As I'm using GatsbyJS, the site is rebuilt every 24 hours so there are no performance concerns: I'll aggregate all those numbers at build time.

Ok @jakewmeyer I found a small issue. It seems that 3 deorbited satellites are missing (with these ids: https://en.wikipedia.org/wiki/Starlink#Deorbited_satellites)

Otherwise great data, the Starlink section is completely automated now! Makes me want to do a dataviz with all Starlink sats around a globe

Tweaked the query to spacetrack a bit and they should all be in there now ๐Ÿ‘

Awesome!

Yes the tweak worked, it works perfectly :ok_hand:

This is awesome @jakewmeyer! I was just looking at the draft schema- is there anyway to use lat/long (or some other positioning logic) to indicate where (over earth) the satellites are for mapping purposes?

UPDATE:
i realize now that's a pretty complex ask- i deal with a lot of geospatial data but never have to consider the z-axis (but I'd like to learn more about developing around space!). found a useful link resolving the reverse of the equation required to map the ๐Ÿ›ฐ๏ธ to lat/lon that may be a good starting place: https://space.stackexchange.com/questions/17916/ground-longitude-latitude-under-a-satellite-cartesian-coordinates-at-a-specfic

@AlbericTrancart just saw you had the same idea to map the ๐Ÿ›ฐ๏ธ around the ๐ŸŒ -- I'm totally down to make that happen with https://github.com/MonsantoCo/ol-kit ๐Ÿ˜

Actually pretty easy ask. There's a nice lib tle.js, that does most of the heavy lifting math required.

Should be straightforward for me to integrate into the updater

Looks like they also have some neat methods for calculating satellites visible from a position, ground tracking, and info in relation to a position. I'll integrate those as well into some new routes.

oh nice- looks like i just need the TLE_LINE0, TLE_LINE1, TLE_LINE2 already provided in the payload -- thanks for the tip about that lib^ ...but if you want to expose the results of that calc in a new route i would leverage it ๐Ÿ˜‰

Feel free to use either ๐Ÿคทโ€โ™‚๏ธ , I'll expose the results for those using other languages

hi .how do we use Starlink orbit tracking for iphone

@jakewmeyer added tracking of the ISS & historical SpaceX launches to our demo site on ol-kit (checkout the screenshots in the PR)...lmk when you add lat/lon to the endpoint for the Starlink ๐Ÿ›ฐ๏ธ & I'd love to track their orbits as well!
[cc: @AlbericTrancart]

@stazrad awesome work ๐Ÿ‘

Lat/Lon, height, and velocity are live on the Starlink endpoints, and get updated hourly with the orbit updates.

Hoping to get to the rest of the tle.js integration this weekend, for stuff like ground tracks, individual sat info from a position, and getting visible sats from a position.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

russelltwarwick picture russelltwarwick  ยท  3Comments

haroldadmin picture haroldadmin  ยท  6Comments

spacexdash picture spacexdash  ยท  7Comments

Tearth picture Tearth  ยท  4Comments

samg11 picture samg11  ยท  4Comments