Mathematica 9 is now available

 Documentation /  Scientific Astronomer /  Satellite Tracking Functions /

Satellite TrackingGetLocation

7.1 The SetOrbitalElements Function

SetOrbitalElements lets you add a new object. Many objects, such as planets and asteroids, are already built into Scientific Astronomer, but occasionally you may need to add other objects such as low-orbit Earth satellites or comets.

Most objects are in orbit around a parent body. To add such an object to Scientific Astronomer, you need to know the orbital elements of the object.

Setting the elements of a new object.

Orbital elements are a set of numbers that describe the shape, and other details, of an object's orbit. The elements are represented by the quantities OrbitalSemiMajorAxis, OrbitalEccentricity, OrbitalInclination, MeanAnomaly, PerigeeArgument, AscendingLongitude, OrbitalMeanMotion, and OrbitalDecayRate. You may choose to specify OrbitalPerigee rather than OrbitalSemiMajorAxis, and PerigeeDate rather than MeanAnomaly. Similarly, you may choose to specify OrbitalPeriod rather than OrbitalMeanMotion. Conversion formulae are discussed at the end of this section.

You can use SetOrbitalElements to add comets, such as Halley or Hale-Bopp, or other objects such as asteroids. You can even use it to add satellites in orbit about the Earth.

Often, however, you only know the NORAD two-line elements of a low-orbit satellite, rather than the proper orbital elements. Two-line elements for thousands of satellites are available and regularly updated on the Internet. You can use a function called TwoLineElements to convert the NORAD two-line elements into a form suitable for use with SetOrbitalElements.

Converting NORAD elements.

Convert the two-line elements of the Mir Space Station into a form suitable for use with SetOrbitalElements.

"1 16609U 86017A 95025.53583445 .00005100 00000-0 71581-4 0 9062",
"2 16609 51.6458 152.6933 0001412 164.2374 195.8663 15.58639897510653"]


Here the two-line elements are directly used to set the elements of Mir.

"1 16609U 86017A 95025.53583445 .00005100 00000-0 71581-4 0 9062",
"2 16609 51.6458 152.6933 0001412 164.2374 195.8663 15.58639897510653"];

These are the orbital elements of the STS-58 Space Shuttle mission.

ViewPoint -> Earth,
Date -> {1993, 1, 280.67747791,
TimeZone /. GetLocation[], 0, 0},
OrbitalMeanMotion -> 15.96123499*Revs/Day,
OrbitalDecayRate -> 0.00119475*Revs/Day^2,
OrbitalSemiMajorAxis -> 6684.521 * KiloMeter,
OrbitalEccentricity -> 0.0007676,
OrbitalInclination -> 39.0114*Degree,
MeanAnomaly -> 89.5676*Degree,
PerigeeArgument -> 272.4217*Degree,
AscendingLongitude -> 117.7673*Degree];

SetOrbitalElements allows you to add virtually any type of new object orbiting any other object. Use the function SetCoordinates if you do not want the object to gravitationally orbit another object. This function lets you define the x,y,z coordinates of the object as a function of time.

Remember that the two-line elements of any low-orbit satellite are accurate for only a few months around the epoch date, beyond which considerable error may result in an orbit calculation. The epoch date for the Mir element set used in the example earlier is the 25.5th day of 1995, so by the end of February 1995, you would not use the element set if you required high accuracy.

Element dates are usually expressed in Universal Time (UT). Scientific Astronomer, however, uses local time for all dates. Therefore, if you enter an element date via the Date option to SetOrbitalElements, you must add a time zone correction.

The element date for the STS-58 Space Shuttle example above is the instant 280.67747791 days after the beginning of 1993 in UT. Thus, the element date is entered as Date -> {1993, 1, 280.67747791, TimeZone /. GetLocation[], 0, 0}, which includes the time zone correction for your location.

An alternative is to supply the option TimeZone -> 0 to SetOrbitalElements, which temporarily switches to UT (or time zone 0). In this case, you can enter the element date as Date -> {1993,1,280.67747791}.

Tracking a Satellite

Once a new object like Mir has been added, you can begin to use it in other functions. In particular, you can use the object in OrbitTrack to superimpose a track of the Mir Space Station onto a star chart, if it makes a transit directly over your location.

At some point along the track, Mir disappears as it moves into the Earth's shadow. It takes less than five seconds to fade, and you can compute the precise time of the disappearance using EclipseBegin applied to the object Mir. The precise altitude, or angle above the horizon, of the disappearance is determined using HorizonCoordinates.

Compute a best visibility date of Mir.

In[6]:=BestView[Mir, {1995,1,31}]


During transit visibility, Mir takes about 10 minutes to cross from the southwest horizon to the northeast horizon. To show the track in the southern part of the sky use CompassStarChart with an Epilog option containing an OrbitTrack function.

In[7]:=CompassStarChart[South, {1995,2,1,21,50,0},
Mesh -> True,
MagnitudeRange -> 4.0,
Ecliptic -> False,
Epilog -> {
OrbitTrack[Mir, {1995,2,1,21,49-6,0},
ViewPoint -> TopoCentric,
PlotPoints -> 200],
Table[Text[m, ChartCoordinates[Mir,
ViewPoint -> TopoCentric]],
{m, 49-6, 49+6, 1}]}];

This shows that Mir disappears at 9:50:46 local time. Before this disappearance time there are several minutes of visibility.

In[8]:=EclipseBegin[Mir, {1995,2,1,21,49,0}]


Mir disappears at about 29 degrees up in the east-northeast sky.

In[9]:=HorizonCoordinates[Mir, {1995,2,1,21,50,46},
ViewPoint -> TopoCentric]


Do not forget to use the option setting ViewPoint -> TopoCentric in a function like HorizonCoordinates, when dealing with a low-orbit satellite. This applies to functions like OrbitTrack, Ephemeris, HorizonCoordinates, EquatorCoordinates, ChartCoordinates, Separation, Elongation, and Conjunction. The default for those functions is ViewPoint -> Earth, so you must specify ViewPoint -> TopoCentric as it is important to measure angles from the surface of the Earth, rather than the center, when dealing with satellites.

Adding a Comet

Although SetOrbitalElements is mainly used to add Earth satellites, such as the Mir Space Station or a Space Shuttle mission, you can use it to add other objects. For instance, if you know the orbital elements you can add Comet Halley.

This adds the new object named Halley.

ViewPoint -> Sun,
Date -> {1986, 2, 9.4589, TimeZone
/. GetLocation[], 0, 0},
OrbitalSemiMajorAxis -> 17.9416 * AU,
OrbitalEccentricity -> 0.967277,
OrbitalInclination -> 162.2422*Degree,
MeanAnomaly -> 0 *Degree,
PerigeeArgument -> 111.8657*Degree,
AscendingLongitude -> 58.8601*Degree];

Once Halley has been added, you can begin to use it in other functions. For example, you can project its motion onto a star chart just like Mir.

Sometimes the published orbital elements of an object, such as a comet, use the perigee distance rather than the semimajor axis distance. To convert, simply use the relation OrbitalSemiMajorAxis = OrbitalPerigee / (1 - OrbitalEccentricity), where OrbitalPerigee is the published perigee distance in astronomical units. Similarly, the perigee date, rather than the mean anomaly, might be given. In this case use the relation MeanAnomaly = Mod[-(PerigeeDate - Date) / (OrbitalPeriod/Day), 1] * 360*Degree. If the orbital period is not specified, use the relation OrbitalPeriod = *365.25*Day, which is applicable if the object is orbiting the Sun. Of course, if the mean motion is given, simply use OrbitalPeriod = Revs/OrbitalMeanMotion. For Comet Halley the orbital period is approximately 27757.7*Day, which is nearly 76 years.

Satellite TrackingGetLocation

Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information