Sat‑Above

About

About this site

sat-above.com predicts satellite passes and shows live satellite positions for any location on Earth. It is an independent, non-commercial project, and it runs entirely in your browser.

What this is

Give the tracker an observer location and it works out when satellites will be above your horizon: rise and set times, peak elevation, compass bearings, and a polar plot of the path across your sky. A world map shows current positions with a heading arrow and roughly an hour of ground track either side of now.

It is free, needs no account, and is aimed at anyone who wants to know when something will pass overhead — satellite spotters, amateur radio operators, students, Earth-observation users checking an acquisition, and people who just want to see the Space Station go by.

Who runs it

This is an independent, non-commercial project built and maintained by one software engineer. It is not a company, a product, or a startup. It is operated from the United States.

There is nothing to buy and nothing to sign up for. The site carries no advertising, no sponsored content, no affiliate links, and no analytics or tracking scripts of any kind.

It is not affiliated with or endorsed by NASA, ESA, EUMETSAT, Celestrak, or any government or space agency. It uses their published data under their own public terms, and credits each source below.

How it works, technically

The app is a static web page with no backend. When you load it, your browser downloads the HTML, CSS and JavaScript, and from then on every calculation — orbit propagation, look angles, pass geometry, the map — happens locally on your own machine.

Orbits are propagated with SGP4, the standard model for two-line element sets, via the open-source satellite.js library. Country and state outlines on the map come from Natural Earth data bundled with the site.

The Sun, Moon and planets — the default list — are not satellites and use different maths. Their positions come from the open-source Astronomy Engine (accurate to about an arcminute), again computed on your device with nothing to download. Each object's “pass” is one rise, highest point and set; rise and set follow the almanac convention (the upper edge of the Sun and Moon, with standard atmospheric refraction), so they match published tables — checked against NASA JPL's Horizons system to within one to two minutes. The list keeps to objects that are easy to see whenever they are up in a dark sky: Venus, Jupiter, Mars, Saturn and Mercury. No cutoff range applies to any of these.

The light on each pass is worked out locally too, and every pass is labelled Dawn, Dusk, Dark or Day. A satellite shines by reflected sunlight, so the time to look is when it is sunlit while your sky is dark — the Sun more than 6° below the horizon, the end of civil twilight. Passes with such a moment are Dusk (after sunset) or Dawn (before sunrise), with the times of that window when it covers only part of the pass. Dark means your sky is dark but the satellite stays in Earth's shadow; Day means your sky never gets dark enough.

There are no fixed twilight hours. Every point of a pass, half a minute apart, is tested for whether that exact spot in space is in sunlight, so the window follows your location, the date, the satellite's height and where it is in the sky. Before sunrise, for example, Earth's shadow still reaches over the western sky, so the eastern part of a pass is lit first and a satellite heading west can fade out as it enters the shadow; after sunset it is the western part that stays lit longest. The Sun's position comes from the Astronomical Almanac's low-precision formula (good to about 0.01°), and Earth's shadow is treated as a cylinder, which ignores the thin penumbra and can shift the moment a satellite enters or leaves it by a few seconds.

Range as a stand-in for brightness. Brightness isn't estimated, but distance goes a long way: every ten times farther costs five magnitudes, so even something the size of the International Space Station would be near the naked-eye limit at the distance of a navigation satellite (about 20,000 km) and beyond it at geostationary distance (about 36,000 km). The Cutoff Range parameter keeps only satellite passes that come within the distance you set, and in the sky view the farther parts of a track are dashed. About 5,000 km is a practical limit for looking by eye: it never affects satellites in low orbit (at most a few thousand kilometres away, even on the horizon) but leaves out navigation and geostationary satellites. It defaults to 1,000 km, which keeps the close passes and leaves out anything orbiting higher than that — raise or clear it for those. Radio and radar work is range-limited too, by transmit power and receiver sensitivity, so there it is worth setting to the reach of the equipment. It does not apply to the Sun, Moon and planets — distance says nothing useful about how bright they look — so it is switched off while they are selected, and your setting returns when you choose satellites again.

There is no application server, no database of users, and no login for the site itself. The only server-side code in the entire project is three small Cloudflare Pages Functions: one that redirects the hosting provider's default address to this domain, one that receives messages from the feedback form, and one that fetches a laser-ranging prediction file when you press Latest from ILRS (that archive does not let web pages fetch from it directly). None of them calculates anything: every prediction is still worked out in your browser.

Because everything is local, the tracker also works offline. A service worker caches the app so it keeps running without a connection, using the most recent orbital data your browser already downloaded.

You can verify all of this yourself. The site is plain client-side JavaScript — open your browser's developer tools and read the source, or watch the network tab and see exactly which requests are made.

Where the data comes from

About the optional Copernicus sign-in

One feature asks for a username and password, so it deserves a plain explanation.

ESA publishes precise orbit files for the Sentinel satellites, accurate to centimetres rather than the kilometres a TLE gives you. Downloading them requires a free account with ESA's Copernicus Data Space Ecosystem. If you want that precision, the tracker offers a sign-in box. It is entirely optional — every other feature works without it, and most people never touch it.

What happens to what you type:

These are credentials for ESA's service, used against ESA's own servers. If you would rather not enter them here at all, that is a reasonable choice: skip the feature and the tracker works normally on public TLE data.

The Radar Calibration list

The Radar Calibration source is a short, hand-picked list for checking a radar against something whose answer is known. A satellite earns a place when an accurate, public account of where it is exists independently of this site — for pointing (azimuth, elevation), range and timing the bar is an angular error under 0.002° as seen from the ground, available within a day of the pass — or, for one target, when its radar cross-section (RCS) is known from its shape.

Lower satellites were measured too and left out: below roughly 550 km, air drag — strong near the peak of the solar cycle — makes predictions for Swarm, GRACE-FO, TerraSAR-X and PAZ miss by tens of metres to kilometres within a day, almost all of it along the track (a timing error); CryoSat-2 and SARAL missed by tens of metres. Their centimetre orbits (from NASA Earthdata, for example) arrive days to weeks after a pass and need a sign-in that this site cannot make from the browser.

Getting the precise position. In a pass's details, the Sentinels have Latest from Copernicus (after the pass; needs the free ESA sign-in) and the eight laser-ranging targets have Latest from ILRS (any pass the newest prediction covers; no sign-in). Either replaces the TLE-based state vector at the highest point with the precise one. Latest from ILRS uses the newest prediction that covers the pass and warns when the pass is further ahead of it than that satellite was measured to hold 0.002° — five days for LARES, four for Ajisai and Starlette, two for Sentinel-6B, one for SWOT, Jason-3 and HY-2B, 18 hours for Sentinel-6A. Pressed a day after the pass, it is always within that span, and for a pass before the prediction's issue time the position is fitted to tracking data, the most accurate kind.

The precise figures belong to those external products. The pass list itself is still predicted from the public TLEs, good to roughly a kilometre (about 0.06° at 1,000 km): use it to find and plan the passes, and the precise positions as the truth.

Accuracy and limits

Pass predictions are only as good as the orbital data behind them. TLEs are updated regularly but drift, so predictions degrade the older the element set is and the further into the future you look. Expect good results for the next few days and progressively looser ones after that.

SGP4 is an analytical model with known approximations. Atmospheric drag varies with solar activity, satellites manoeuvre without notice, and newly launched objects take time to be catalogued accurately.

Dawn and Dusk describe the light, not a promise that you will see the satellite. Brightness is not estimated — the cutoff range (1,000 km unless you change it) narrows things down but is not a substitute — so a small or dark object within it (many CubeSats and small debris) may be too faint even in the right light, and haze, city light or a low horizon can hide a pass. For the Sun, Moon and planets, magnitude is shown in each object's details instead. Other trackers use the same −6° darkness cut-off but also count only the part of a pass above about 10° of elevation or brighter than a set magnitude, so they may leave out a pass low in the twilight that this site labels Dusk or Dawn.

This site is for observation and general interest. It is not suitable for operational, navigational, or safety-critical use, and comes with no warranty of any kind.

Privacy

No accounts, no cookies set by this site, no advertising or analytics scripts, and nothing about your observer location ever leaves your browser. The privacy page sets out exactly what is and is not collected, including the small amount of information stored when you use the feedback form.

Contact

Questions, bug reports, a satellite you think belongs in the default list, or security and site-categorisation enquiries:

[email protected]

There is also a feedback form on the tracker itself, under Feedback in the top bar, if you would rather not use email.

This is a one-person project, so replies are best-effort and may take a while. Bug reports are most useful with your browser, the satellite involved, and what you expected to happen.

Go to the tracker