| # | Name | NORAD | TLE epoch |
|---|---|---|---|
| {{ row.rank }} | {{ row.name }} | {{ row.id }} | {{ row.epochLabel }} |
| No satellites loaded yet. Search above or pick a preset. | |||
| # | Rise | Max | Set | Duration | Max elev | Rise az | Set az | |
|---|---|---|---|---|---|---|---|---|
| {{ row.rank }} | {{ row.riseLabel }} | {{ row.maxTimeLabel }} | {{ row.setLabel }} | {{ row.durationLabel }} | {{ row.maxElLabel }} | {{ row.riseAzLabel }} | {{ row.setAzLabel }} |
{{ icsText }}
Satellite passes are brief windows when an orbiting spacecraft rises above your local horizon, climbs to a highest point, and then slips below it again as the Earth turns. If you want to predict satellite passes over your location, you need a good observing position and a recent orbit description for the satellite.
A pass forecast helps you plan viewing, photography, or radio work, and it turns a vague idea of tonight into a specific time and direction to watch. The most useful outputs are the rise, peak, and set times, plus the maximum height above the horizon so you can judge how clear the view should be.
Start by choosing the satellite you care about, then provide your latitude, longitude, and altitude, and set how far ahead you want to scan. The tool reports the next pass first and then lists each candidate with its duration, highest elevation, and the compass directions at rise and set. When you are unsure, raise the minimum elevation to focus on higher passes, and use the elevation chart to see the arc of a selected pass.
Imagine you are planning to spot the space station during an evening walk, and you only want passes that get at least 15 degrees high. After computing, you can pick the pass that peaks highest, note the rise direction, and decide where to stand to keep buildings out of the way.
Pass times are predictions, and low passes can disappear behind local obstacles, haze, or clouds even when the orbit math is correct. If you would rather not use precise coordinates, enter an approximate location or use manual orbit lines so your choices stay under your control.
From a fixed observing point on Earth, a pass is described by two angles that change with time. Elevation tells you how far above the horizon the satellite appears, while azimuth tells you the compass bearing to look toward at a given moment.
The tool computes a pass list by propagating an orbit described as two line elements (TLE) across a time window, sampling the path at a configurable step size. It detects when elevation crosses the horizon, refines the rise and set instants, and tracks the maximum elevation reached during each above horizon interval.
Results are easiest to interpret as a visibility filter. A higher maximum elevation usually means the pass is easier to notice and less likely to be blocked by nearby obstacles, while values close to the horizon are more sensitive to small modeling and measurement errors.
Comparisons are only meaningful when you hold inputs steady, especially the observer coordinates, start time, and step size. If you need repeatable results across devices or days, using the same TLE text and the same start time reduces variability.
| Symbol | Meaning | Unit/Datatype | Source |
|---|---|---|---|
| Rise time expressed as milliseconds | ms (number) | Derived | |
| Set time expressed as milliseconds | ms (number) | Derived | |
| Pass duration rounded to the nearest second | s (integer) | Derived | |
| Azimuth angle in radians | rad (number) | Derived | |
| Azimuth converted to degrees before normalization | deg (number) | Derived | |
| Azimuth normalized to 0 to 360 degrees | deg (number) | Derived | |
| Compass sector index for N, NE, E, SE, S, SW, W, NW | 0 to 7 | Derived | |
| Pi constant used in radians to degrees conversion | constant | Constant |
Worked example: The numbers below illustrate how the displayed duration and headings are derived from a computed pass.
A duration of 495 seconds is shown as 8 minutes and 15 seconds. A direction index of 2 maps to E in the eight point compass list.
| Parameter | Meaning | Unit/Datatype | Typical Range | Sensitivity | Notes |
|---|---|---|---|---|---|
| Observer latitude | North to south position of the observer | deg (number) | -90 to 90 | High | Invalid values stop computation. |
| Observer longitude | West to east position of the observer | deg (number) | -180 to 180 | High | Invalid values stop computation. |
| Observer altitude | Height above sea level used for geometry | m (number) | Clamped | Low | Internally clamped to -500 to 9000 meters. |
| Lookahead window | How far ahead passes are scanned from the start time | h (integer) | 1 to 168 | Medium | Longer windows increase compute time. |
| Start time | Beginning of the scan window | datetime | Optional | Medium | Blank or invalid starts from the current time. |
| Step size | Sampling interval for the scan | s (integer) | 5 to 120 | High | Smaller steps improve timing precision but slow down scans. |
| Minimum elevation | Filters out low passes after they are found | deg (number) | 0 to 90 | High | Use higher values to focus on clearer passes. |
| Max passes | Stops saving passes after a count limit | count (integer) | 1 to 50 | Low | Helps keep exported lists small. |
| Constant | Value | Unit | Source | Notes |
|---|---|---|---|---|
| Horizon threshold | 0 | deg | Constant | Passes begin when elevation is at or above this. |
| Crossing refinement iterations | 28 | steps | Constant | Stops earlier once the bracket is within about 1 second. |
| Crossing refinement tolerance | 1000 | ms | Constant | Target bracket size for rise and set time refinement. |
| Minimum kept pass duration | 30 | s | Constant | Shorter events are discarded. |
| Search page size | 20 | rows | Constant | Search results are capped per request. |
| Chart elevation axis range | -10 to 90 | deg | Constant | Shows a small below horizon region for context. |
| Field | Type | Min | Max | Step/Pattern | Error Text | Placeholder |
|---|---|---|---|---|---|---|
| Satellite search | text | — | — | Non empty after trim | Enter a satellite name or NORAD ID. | ISS or 25544 |
| Observer latitude | number | -90 | 90 | step 0.0001 | Enter a valid observer latitude and longitude. | — |
| Observer longitude | number | -180 | 180 | step 0.0001 | Enter a valid observer latitude and longitude. | — |
| Observer altitude | number | -500 | 9000 | step 1 | — | — |
| Lookahead | integer | 1 | 168 | step 1 | — | — |
| Start time | datetime | — | — | Blank uses current time | — | — |
| Minimum elevation | number | 0 | 90 | step 1 | — | — |
| Step size | integer | 5 | 120 | step 1 | — | — |
| Max passes | integer | 1 | 50 | step 1 | — | — |
| Manual orbit lines | text | — | — | At least 2 lines, includes a line starting with 1 and a line starting with 2 | Paste a 2-line TLE to use Manual TLE mode. Manual TLE needs at least 2 lines. Could not find valid TLE line 1 and line 2. | ISS (ZARYA) 1 25544U 98067A ... 2 25544 51.6 ... |
| Input | Accepted Families | Output | Encoding/Precision | Rounding |
|---|---|---|---|---|
| Orbit description | Lookup by name or NORAD ID, or manual TLE text | Pass list and elevation series | Text lines, processed locally for propagation | — |
| Observer and window settings | Latitude, longitude, altitude, start time, lookahead | Rise, max, set timestamps and angles | Displayed timestamps use local formatting | Duration rounded to nearest second |
| Calendar export | Computed passes | iCalendar text with one event per pass | UTC timestamps in basic format ending with Z, CRLF line endings | Max elevation in the summary is rounded to a whole degree |
| Data exports | Computed passes | JSON and CSV representations | JSON is pretty printed with two space indentation, CSV uses ISO timestamps | Angles formatted to 2 decimals in CSV rows |
| Chart export | Selected pass | Image or CSV series of elevation over time | Chart CSV includes timestamp in ms, local timestamp text, and elevation | Elevation formatted to 3 decimals in chart CSV |
The tool can query a public TLE lookup service when you search by name or NORAD ID, and it requests results without caching. Observer coordinates are used for local calculations and are not included in TLE lookup requests.
Manual TLE mode is available when you want to supply orbit lines directly, which avoids TLE lookup requests and improves repeatability when sharing inputs.
The orbit input follows the two line element format used for publicly distributed satellite catalogs, propagation uses the SGP4 family of models, and calendar output follows the iCalendar specification in RFC 5545.
Satellite pass timing becomes practical when you start from a clear orbit description and a precise observing point, then narrow to the passes that rise high enough to matter.
Example: Search for ISS, set a 24 hour lookahead, require a minimum elevation of 15 degrees, then pick the pass with the highest maximum elevation for the clearest view.
Pro tip: Keep the same location and step size when comparing passes across different satellites.
The provided logic computes passes on your device. When you search for orbit data, the request includes your search term or NORAD ID, not your observer coordinates.
If you enable geolocation, the coordinates come from your device permission prompt.Accuracy depends on how current the orbit lines are and how fine your step size is. Rise and set instants are refined to about one second, but low elevation passes remain sensitive to small errors.
Rise is when the satellite first reaches the horizon threshold, max is the time of highest elevation during that pass, and set is when it drops back below the horizon.
Angles are shown in degrees, durations are shown in seconds and minutes, and timestamps are shown in your local time formatting. Exports use ISO timestamps where applicable, and calendar events use UTC timestamps.
Yes. Manual TLE mode lets you paste orbit lines directly, and the pass finder uses that text for propagation instead of requesting orbit data from a lookup service.
Enter the NORAD catalog ID as digits in the search field, such as 25544, then select the matching satellite row before computing passes.
A borderline pass is one whose maximum elevation is close to your minimum elevation filter or close to the horizon. Small changes in inputs, orbit data, or step size can change whether it appears in the list.
This package does not include pricing or licensing text in its interface bundle. If you are using a hosted version, refer to the host site terms for usage rights.