# 3D Orbit Calculator

This model relates 2D Keplerian orbits to their orientation in 3D space. 2D orbits are expressed in the perifocal (PQW) coordinate system whose origin is the orbit’s focus and whose unit vectors lie in the plane of the orbit and correspond to the θ=0° direction (periapsis) and θ=90°. Quaternion algebra is used to rotate between PQW coordinates and other coordinates relative to either an equatorial plane (if the orbited body is a planet) or the ecliptic plane (if the orbited body is the Sun). These rotations correspond to the definitions of orbital inclination, longitude of ascending node, and so on.

When it is Earth that is orbited (the default), nodal and apsidal precession models enable Sun-synchronous and Molniya orbits to be calculated.

Press **⏎** to see the model. Try your own inputs or the examples below. Refresh your browser to clear results.

## Circular equatorial low Earth orbit

- Calculate the position of a satellite in circular orbit at 1 minute past periapsis t = 1
**⏎**by asserting zero eccentricity 2D.e = 0**⏎**and 400 km altitude 2D.h = 400**⏎**. The ‘2D’ object is the 2D Keplerian orbit model. This step mirrors the first example on the 2D Keplerian orbit calculator page. - Assert zero inclination i = 0
**⏎**for an equatorial orbit. This special case fully orients the 2D orbit in 3D space; the general case requires additional angles.

## Sun-synchronous orbit

- A sun-synchronous Earth orbit isSunSynchronous = true
**⏎**has a nodal precession of 360° over the course of an Earth year. The model infers from this that the orbit is bounded and that its secular nodal precession rate Ω′ is 0.986°/day, corresponding to a ground track repetition period of exactly 1 Earth day. - Following Vallado‘s RADARSAT example, a circular orbit 2D.e = 0
**⏎**at 800 km altitude 2D.h = 800**⏎**is calculated to have 98.6° inclination (i**⏎**) and a 7,178 km semimajor axis (2D.a**⏎**). - But what would the altitude need to be for an eccentricity of 0.02 and the same inclination? Un-asserting the altitude 2D.h =
**⏎**then asserting eccentricity 2D.e = 0.02**⏎**and inclination i = 98.6**⏎**, the model infers a 7,179.8 km semimajor axis (2D.a**⏎**), 945 km apoapsis (2D.ha**⏎**) and 658 km periapsis (2D.hp**⏎**).

## Critically inclined orbit

- A critically inclined orbit has zero secular nodal precession «ctrl+g» w’ = 0
**⏎**. Earth orbits satisfy this condition at two particular inclinations, one prograde and the other retrograde. Asserting the retrograde case isRetrograde = true**⏎**infers 116.6° inclination. - Asserting the prograde case isRetrograde = false
**⏎**infers 63.4° inclination.

## Molniya orbit

- A Molniya orbit has zero nodal precession «ctrl+g» w’ = 0
**⏎**isRetrograde = false**⏎**and high eccentricity so that it loiters over far northern latitudes for a large fraction of its time. - For northernmost apoapsis, the orbit’s periapsis is southernmost «ctrl+g» w = 270
**⏎**(use ω=90° for an inverted Molniya orbit that loiters over far southern latitudes). - Periapsis altitude is chosen to be high enough to minimize atmospheric drag but low enough to be expeditious, 2D.hp = 450
**⏎**. - The ratio of ground track to nodal period T
_{g}/T_{n}needs to be a whole number for the ground track to exactly repeat, which is desirable for the satellite to repeatedly loiter over the same place. Choosing Tg/Tn = 1**⏎**implies an 0.84 eccentricity orbit with 24-hour Keplerian period 2D.T.h**⏎**and apoapsis at 71,000 km! An orbit with such a distant apoapsis might take a larger rocket to reach and the satellite itself would need larger apertures for imaging and communications and more power for the latter. - Changing to Tg/Tn = 2
**⏎**implies an 0.74 eccentricity orbit with 12-hour Keplerian period and apoapsis at a somewhat more modest 40,000 km. The price that is paid is that only every second apoapsis is over the desired region, with the other one occurring on the opposite side of the planet. That being said, the period is half what it was in the previous case, so the desired region is visited just as often but the loiter time is reduced.