Next Pass
{{ nextPassHeadline }}
{{ nextPassSubline }}
{{ selectedSatelliteName }} {{ observerLabel }} {{ lookaheadLabel }} Min elev {{ minElevationLabel }}
{{ statusHint }}
Lat Lon Alt m
hours
{{ minElevationLabel }}
sec
passes
{{ satellitesSummary }}
# Name NORAD TLE epoch
{{ row.rank }} {{ row.name }} {{ row.id }} {{ row.epochLabel }}
No satellites loaded yet. Search above or pick a preset.
No passes yet. Select a satellite and click Compute passes.
# 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 }}

                
:

Introduction:

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.

Technical Details:

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.

Processing pipeline

  1. Obtain the satellite orbit as two line elements, either from lookup or manual text.
  2. Parse the start time, defaulting to now in your local timezone.
  3. Set an end time using the lookahead window in hours.
  4. Sample the orbit every step interval and compute elevation and azimuth for your observer.
  5. Detect horizon crossings where elevation moves above or below zero degrees.
  6. Refine rise and set times with a bounded binary search to about one second.
  7. Refine the maximum elevation by re-sampling within the pass window.
  8. Filter passes below the minimum elevation and stop after the configured pass limit.

Key equations used in outputs

ds = round ( tset - trise 1000 ) azraw = azrad × 180 π azdeg = ( azraw + 360 ) mod 360 kdir = round ( azdeg 45 ) mod 8
Symbols used in pass timing and heading calculations
Symbol Meaning Unit/Datatype Source
trise Rise time expressed as milliseconds ms (number) Derived
tset Set time expressed as milliseconds ms (number) Derived
ds Pass duration rounded to the nearest second s (integer) Derived
azrad Azimuth angle in radians rad (number) Derived
azraw Azimuth converted to degrees before normalization deg (number) Derived
azdeg Azimuth normalized to 0 to 360 degrees deg (number) Derived
kdir 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.

ds = round ( 495000 - 0 1000 ) = round ( 495 ) = 495
azdeg = ( 72 + 360 ) mod 360 = 72 kdir = round ( 72 45 ) mod 8 = 2

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.

Parameters that most affect results

Core pass prediction parameters
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.

Constants and built in cutoffs

Constants used by the pass finder and chart
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.

Units, precision, and rounding

  • Angles are computed in degrees as floating point numbers and displayed with 0 to 1 decimals in the main table.
  • Duration is computed as a millisecond difference and rounded to the nearest second.
  • Lookahead hours, step size seconds, and max passes are clamped to ranges and floored to whole numbers.
  • Rise and set instants are refined to roughly one second resolution by iterative bracketing.

Validation and bounds

Input validation rules and limits
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 ...

Outputs and formats

Input and output formats supported by the tool
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

Time handling

  • Start time is read as a local datetime, and blank values start from the current moment.
  • Pass timestamps are represented internally as Date values and exported as ISO 8601 strings where applicable.
  • Calendar events are emitted with UTC timestamps and include a generated unique identifier per pass.

Networking and privacy

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.

Performance, determinism, and safety notes

  • Compute time scales roughly with lookahead_hours × 3600 / step_seconds samples.
  • Smaller step sizes can miss fewer transitions but will increase propagation work.
  • Identical inputs produce identical outputs when the same TLE text and start time are used.
  • Results can change when a newer TLE is fetched or when start time is left blank.
  • Calendar fields escape backslashes, newlines, semicolons, and commas to reduce formatting issues.

Assumptions and limitations

  • The horizon cutoff is purely geometric at 0 degrees elevation and does not model atmospheric refraction.
  • Only pass timing and pointing angles are computed, not brightness, shadows, or local lighting conditions.
  • Low elevation passes are more sensitive to small errors in orbit data and observer coordinates.
  • Search results are capped per request and may not include every matching satellite name.
  • The pass list is filtered by a minimum duration of 30 seconds.
  • Heads-up Entering an invalid latitude or longitude prevents pass computation.
  • Heads-up Leaving start time blank makes results time dependent because the scan begins from the current moment.
  • Altitude is clamped for safety between -500 and 9000 meters before use.
  • Manual TLE parsing expects recognizable line 1 and line 2 formats and may reject heavily edited text.

Edge cases and error sources

  • No orbit data loaded, which produces a select a satellite or provide a valid TLE style error.
  • Propagation failures at some timestamps, which can create gaps in sampling within the scan loop.
  • Pass already above the horizon at the start time, which creates a rise at the window start.
  • Pass still above the horizon at the end time, which closes the pass at the window end.
  • Very coarse step sizes that can shift rise and set times before refinement brackets them.
  • Values near the horizon threshold, where a 1 second bracket can change inclusion decisions.
  • Non finite numeric inputs such as NaN or Infinity in coordinates, which are treated as invalid.
  • Local timezone differences across devices, which affect how start time and display labels appear.
  • Geolocation permission denied or timed out, which leaves coordinates unchanged.
  • Unexpected satellite names or text with unusual Unicode, which can affect copying into other systems.
  • Calendar consumers that interpret line endings or escaping differently, which can alter event display.
  • Stale orbit data with an old epoch, which can drift predicted times and angles.

Standards and authoritative references

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.

Step-by-Step Guide:

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.

  1. Choose a Satellite by searching a name or entering a NORAD ID, or pick a preset.
  2. Set your Observer location using latitude and longitude, and add altitude if you know it.
  3. Choose a Lookahead window to control how far into the future you scan.
  4. Optionally set a Start time to scan from a specific moment instead of now.
  5. Adjust Minimum elevation to filter out low, easily blocked passes.
  6. Set Step size for speed versus timing precision, and set Max passes to cap the list.
  7. If you cannot or do not want to look up orbit data, enable Manual TLE and paste the two orbit lines.
  8. Run the computation, then review the next pass summary, the pass list, and the elevation chart for a selected pass.

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.

If you get no results, extend lookahead or lower minimum elevation.
If times look off by minutes, reduce step size for finer sampling.
If you are near tall buildings, raise minimum elevation to avoid frustration.
If you need repeatability, use manual TLE text and set a fixed start time.

Pro tip: Keep the same location and step size when comparing passes across different satellites.

FAQ:

Is my data stored?

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.
How accurate are results?

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.

What do rise and set mean?

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.

Which units are used?

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.

Can I work without lookup?

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.

How do I search by ID?

Enter the NORAD catalog ID as digits in the search field, such as 25544, then select the matching satellite row before computing passes.

What is a borderline pass?

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.

Is there a license shown?

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.

Troubleshooting:

  • No passes found: Increase lookahead hours or lower minimum elevation.
  • Passes look too short: Remember passes under 30 seconds are discarded.
  • Times feel imprecise: Reduce step size seconds to scan more finely.
  • Search returns nothing: Try a shorter name, a known NORAD ID, or a preset.
  • Manual TLE rejected: Ensure you have a line starting with 1 and a line starting with 2.
  • My location fails: Check permissions, then enter latitude and longitude manually.
  • Chart is blank: Select a pass first, then open the elevation chart view.

Advanced Tips:

  • Tip Use a fixed start time when you want consistent results across multiple runs.
  • Tip Increase minimum elevation in dense urban areas to avoid passes hidden by buildings.
  • Tip Lower step size when you need tighter rise and set timestamps, especially for short passes.
  • Tip Use manual TLE text when collaborating so everyone computes from the same orbit lines.
  • Tip Compare satellites fairly by keeping observer coordinates, lookahead, and step size identical.
  • Tip Export calendar entries for the highest elevation passes to avoid last minute schedule scrambling.

Glossary:

Pass
An interval when a satellite is above the local horizon.
Rise
The moment elevation first reaches the horizon threshold.
Set
The moment elevation drops below the horizon threshold.
Maximum elevation
The highest elevation reached during a pass.
Elevation
Angle above the horizon, measured in degrees.
Azimuth
Compass bearing to the target, measured in degrees.
NORAD ID
Catalog identifier used to look up orbit lines.
TLE
Two line elements describing an orbit at a given epoch.
Epoch
Timestamp indicating when orbit elements are most representative.
Lookahead
How far into the future the scan window extends.
Step size
Sampling interval that trades speed for timing precision.
Minimum elevation
Filter threshold that removes low maximum elevation passes.
iCalendar
Text calendar format used to create one event per pass.