Skip to content

Rassvet over Ukraine

Unofficial geometric coverage estimate from public orbit catalogs

Newest element-set epoch 2026-11-04 04:36 UTC
Last successful fetch 2026-11-04 14:45 UTC · CelesTrak GP

Method

This page is the contract. Numbers on the other screens are only as good as the definitions below.

Data source and refresh

Orbital data are public general-perturbations (GP) element sets from CelesTrak (JSON GP). Element sets are what catalogs often call TLEs (two-line elements). The server fetches them about every ten minutes and caches the result. If the live fetch fails, the GP snapshot saved by the altitude-history job is used. The server reads that snapshot from Blob storage first. If Blob is unconfigured, missing, or unreachable, it reads the copy on the GitHub data branch. If that file is missing too, a dated checked-in snapshot is used. Each fallback is labelled with its fetch time. This site does not invent ephemeris and does not fit custom orbits.

The user-agent on catalog requests identifies this app as an unofficial geometric coverage tracker. No Space-Track credentials are shipped to the browser.

Propagation and Earth model

Positions are propagated with SGP4/SDP4 as implemented by satellite.js from the published element set. Elevation, and so every coverage window and minute, comes from satellite.js look angles with an ellipsoidal (WGS-84) observer position. Only the footprint rings drawn on the map, and a pre-filter that skips samples far from the ground point, use the spherical small-circle formula with Re = 6371 km. That is good enough for an MVP coverage clock; it is not a precision orbit determination.

Sampling step is 30 seconds. Displayed AOS/LOS are linearly interpolated between steps and should be read as ±30 s. Passes shorter than 60 seconds after interpolation are discarded.

Coverage (this site)

Coverage (this site): at least one catalogued Rassvet object is above elevation E over point P, using public element sets.

That is the only definition used for the Now tile, the Today minutes, the city chips, the map footprints, and the next-window countdown.

Geometric line-of-sight only

Every minute, window, and footprint is geometric line-of-sight: at least one catalogued object above the elevation mask. That is the whole claim.

  • Never linked — not a terminal attached, not a session, not inter-satellite links.
  • Never encrypted.
  • Never military-ready.
  • Never 24-hour service.

Why 10° / 25° / 40°

10° is near-horizon geometric visibility. 25° is a conservative comms-like mask and the default. 40° is a stricter mask. None of these is a measured Bureau 1440 requirement. They exist so a reader can see how sensitive the minutes are to the assumed minimum elevation.

Why 450 km is the Raised gate

Public reporting on the first production batch describes flattening near about 500–550 km, not the 800 km figure that appears in filings and brochures. This site treats 450 km as a product constant for “raised”: catalogued, not decayed, with an approximate altitude from the latest element set of at least 450 km. The 800 km figure is not used as an operational gate.

Approximate altitude is the Brouwer mean semi-major axis that satellite.js computes while it initialises SGP4, minus the WGS-72 equatorial radius 6378.135 km. The catalog mean motion is Kozai’s. Initialisation converts it to the un-Kozai’d mean motion and stores that on the record as no, in radians per minute. The semi-major axis is the field a, in Earth radii, so the altitude in kilometres is a × 6378.135 − 6378.135. The gravitational parameter is μ = 398600.8 km³/s². This follows section 2 of the methodology at findrassvet.ru (V. Bulybenko). We adapted the method. We did not copy their text. That site’s figures are available under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Perigee and apogee use the same semi-major axis and the same radius with the published eccentricity.

Which satellites count

The default coverage set is production RASSVET-3 at or above 450 km. Experimental Rassvet-1 (2023) and Rassvet-2 (2024) stay out of that default. They are separate choices in the population list. They are included when the choice is every raised object or every catalogued object. A shared link with no set parameter opens the default. A link that still says set=raised or set=operational opens every raised object, including the experimentals.

An object below 450 km counts as climbing when its recent altitude history rises by more than 0.8 km/day. A history that is flat or falling is not climbing. Those objects can appear in a launch-group count or in all catalogued objects. They are left out of the climbing population, so the clock does not describe them as climbing toward service. When the rate cannot be computed, or the object’s newest epoch is more than three days behind the newest epoch in the catalog, the status is rate pending. Rate pending is not counted as climbing. A recorded public decay date marks the object decayed, and it leaves the clock. An object with no decay date whose newest epoch is more than three days behind the catalog, and whose last altitude is under 250 km or whose last rate was decaying, is reentering. It is not on orbit, and the clock does not predict passes for it.

The rate beside an altitude is a least-squares slope of Brouwer altitude against the element-set epoch. The fit uses the most recent three days. If that window has fewer than three epochs or spans less than 36 hours, it reaches back by whole epochs, up to five days from the newest epoch, until those minimums are met. One interior point that misses the track between its neighbors by at least 5 km is left out. The newest epoch stays in the fit. More than 0.8 km/day is climbing. A sustained loss, steeper than 0.8 km/day downward, is decaying, and the status shown is not climbing. A slope between those bounds is holding, also not climbing. The numbers come from a compact log of public GP altitudes, appended about twice a day. The server reads that log from Blob storage, then from the GitHub data branch when Blob is unconfigured, missing, or unreachable. When that log is missing, the window is too short, or the newest epoch is more than three days behind the catalog, the rate is unknown and the status is rate pending. This site does not turn one element set’s mean-motion derivative into a rate. A single derivative is a short-arc fit.

Window versus pass

A pass is one object above the mask. A window is the union of all such intervals: overlapping satellites do not double-count minutes. The Today tile and city chips use windows. The pass list is per-object so an analyst can see who is contributing. That split is deliberate.

Stale element sets

If the newest GP epoch for an object is older than 72 hours, the object is marked stale and still propagated, with a warning. Missing IDs that remain in the curated list but have no element set are marked missing and are omitted from Now / Today / footprints. Decayed IDs on the manual override list (and any object whose perigee is persistently below 150 km) are excluded from coverage.

A failed live fetch, or any element set past 72 hours, is called out in the header. Today minutes stay on screen, with a short mark when that snapshot or those element sets are what the count uses.

Clock within ±48 hours

The Ukraine page can hold its clock anywhere within 48 hours of wall-clock now. While the clock is held, the live tick pauses. Map positions, who is above the mask, footprints, tracks, the Today tile, city minutes, the next-window countdown, and the pass list are recomputed at that instant. “Today” is the held clock’s calendar day in the timezone you picked (Kyiv, UTC, or Moscow). The pass list is the 36 hours after the held clock, not the next 36 hours from wall-clock now.

The scrubber shades the union of geometric line-of-sight windows across the whole ±48 hours. Those bands are sampled every 60 seconds so the strip can be recomputed without following the one-second tick; the pass list stays on a 30-second step. Choosing a band holds the clock at that window’s acquisition, not at peak elevation.

The elements are still the latest public GP from CelesTrak, not an archived historical set. Geometric line-of-sight is propagated from those elements to the selected instant. Accuracy degrades away from the element epoch. Climbing or maneuvering objects can look wrong in the past or the future, because an orbit raise is not replayed.