Mathematica 9 is now available

 Documentation /  Scientific Astronomer /  Notebooks /

Large Scale StructureAstrological Readings

Some New and Improved Features

http://www.wolfram.com/applications/astronomer/index.html

Setup for Zurich, with HaleBopp, and Mir {1997,1,79} elements.

SetLocation[{8.55, 47.36},
TimeZone -> 1,
GeoAltitude -> 0.45*KiloMeter];

SetOrbitalElements[HaleBopp,
ViewPoint -> Sun,
Date -> {1997, 3, 31.8154}, TimeZone->0,
OrbitalPerigee -> 0.918046*AU,
OrbitalEccentricity -> 0.997071,
OrbitalInclination -> 88.9858*Degree,
MeanAnomaly -> 0*Degree,
PerigeeArgument -> 130.3508*Degree,
AscendingLongitude -> 282.4674*Degree];

SetOrbitalElements[Mir,
"1 16609U 86017A 97079.18563884 .00001743 00000-0 26766-4 0 1368",
"2 16609 51.6517 173.1901 0010765 198.3217 161.7336 15.60732776633138"];

Mir Transit - With an Evening Disappearance

This searches for the next transit-visible event of Mir.

mirVis1 = BestView[Mir, {1997,3,29}]

By definition of transit visible, Mir is not eclipsed from the Sun at this time. You can confirm this as follows.

EclipseQ[Mir, TransitVisible /. mirVis1]

From the site location, Mir is visible for most of the transit. The eclipse-begin time is two and a half minutes after transit.

mir1beg = EclipseBegin[Mir,
TransitVisible /. mirVis1]

At this time Mir will fade as it passes into the Earth's shadow.

EclipseQ[Mir, mir1beg + {0,0,0, 0,0,5}]

This eclipse-begin time occurs 21 degree above the horizon, when Mir is on the downward leg.

HorizonCoordinates[Mir, mir1beg,
ViewPoint->TopoCentric]

Here is the transit. The disappearance occurs after 20 minutes past the hour. The highest point, when Mir is brightest, occurs after 18 minutes past the hour. Mir rises above the horizon at about 14 minutes past the hour.

ZenithStarChart[TransitVisible /. mirVis1,
OrbitTrack->Mir];

All this takes place 75 minutes after sunset.

Mir Transit - With an Extreme Altitude

This searches for a very high (at least 80 degrees above the horizon) transit-visible event.

mirVis2 = BestView[Mir, {1997,3,29},
Altitude -> 80*Degree]

From the site location, Mir is visible throughout the transit. The eclipse-begin time is five minutes after transit.

EclipseBegin[Mir, TransitVisible /. mirVis2]

This eclipse-begin time is very close to when Mir is near the horizon.

HorizonCoordinates[Mir, %, ViewPoint->TopoCentric]

Here is the transit. The disappearance is only 1.3 degrees above the horizon at 42 minutes past the hour. The highest point, when Mir is brightest, occurs after 37 minutes past the hour. Mir rises above the horizon at 32 minutes past the hour.

ZenithStarChart[TransitVisible /. mirVis2,
OrbitTrack->Mir];

All this takes place 30 minutes after sunset. In the graphic above you can see the Sun below the western horizon.

The gray object near the 36 minute point in the graphic above is a three day old new moon.

New OrbitTrack -> object Option to Star Charts

The OrbitTrack->object option can be used in all star charts (and even the planisphere).

If the object is a low-orbit satellite like Mir, then an orbit track is plotted if the satellite is transit visible. The orbit track is labelled each minute past the hour up the the point where the satellite disappears in the evening (alternatively, from the point where the satellite appears in the morning).

In the case of the Moon, an orbit track is plotted for 28 days, with each day labelled from the beginning of the month.

In the case of the Sun, a planet such as Mars, or any other object such as HaleBopp, an orbit track is plotted for 12 months, with each month labelled from the beginning of the year.

StarChart[{{0,360},{-90,90}}, {1997,3,1},
OrbitTrack->Moon];

StarChart[{{0,360},{-90,90}}, {1997,3,1},
OrbitTrack->HaleBopp];

StarChart[{{0,360},{-90,90}},
OrbitTrack->Sun];1;

New OrbitMark -> True Option to OrbitTrackPlot

OrbitMark->True option can be used in OrbitTrackPlot.

OrbitTrackPlot[Mir, {1997,4,1, 0, 0,0},
{1997,4,1, 0,90,0},
OrbitMark -> True,
PlotPoints -> 100];

OrbitTrackPlot[Mir, {1997,4,1,0, 0,0},
{1997,4,1,0,90,0},
OrbitMark -> True,
PlotPoints -> 100,
PlotRange -> {{-90,-30},
{-60, 20}}];

The marks are in minutes past the beginning of the hour of the first date.

Mir - Animation of Orbital Shape Relative to Sun

Things are never simple. Mir is in an orbit tilted 57 degrees to the Earth's equator. The Earth's equator is itself tilted 23 degrees to the ecliptic. The orbital plane of Mir rotates, due to tidal effects of both the Moon and Sun. At various times, the tilts of Mir's orbit and the Earth's equator can add causing Mir's orbit to be tilted 80 degrees to the ecliptic. If this happens in June or December, when the Earth's equator is tilted away from the Sun, then this places the orbit of Mir at near right angles to the direction of the Sun. At such times Mir will be constantly illuminated by sunlight for a week or more.

Here is an example of the normal situation. Mir orbits Earth every 90 minutes and spends at least 50 minutes in sunlight and at most 40 minutes in shadow behind the Earth. In this animation the Earth is the purple disk, and the yellow ring is the current orbit of Mir. The animation is viewed from the Sun.

Do[
date = {1997,3,d};
view = 100*Coordinates[Sun, date];
norm = {view[[2]], -view[[1]], 0};
norm /= Sqrt[norm.norm];
r = 6378.387/149597900; (* Earth's radius *)
p1=OrbitPlot3D[Mir, date,
Distance -> 7000*KiloMeter,
ViewPoint -> view,
Axes -> False,
Background -> GrayLevel[0.5],
PlotStyle -> RGBColor[1,1,0],
PlotRegion -> {{-0.3,1.3},
{-0.3,1.3}},
SphericalRegion -> True,
DisplayFunction -> Identity];
p2=Graphics3D[{Polygon[r*Table[Cos[t]*norm +
Sin[t]*{0,0,1},
{t, 0, N[2Pi],
N[2Pi/32]}]]}];
Show[p1, p2,
ViewPoint -> view,
DisplayFunction -> $DisplayFunction],
{d, 0, 58, 2}]

At the start of June, the tilt of Mir's orbit happens to add to the tilt of the Earth's equator. In the third frame below you can see the orbit of Mir is nowhere blocked from sunlight.

Do[
date = {1997,6,d};
view = 100*Coordinates[Sun, date];
norm = {view[[2]], -view[[1]], 0};
norm /= Sqrt[norm.norm];
r = 6378.387/149597900; (* Earth's radius *)
p1=OrbitPlot3D[Mir, date,
Distance -> 7000*KiloMeter,
ViewPoint -> view,
Axes -> False,
Background -> GrayLevel[0.5],
PlotStyle -> RGBColor[1,1,0],
PlotRegion -> {{-0.3,1.3},
{-0.3,1.3}},
SphericalRegion -> True,
DisplayFunction -> Identity];
p2=Graphics3D[{
Polygon[r*Table[Cos[t]*norm +
Sin[t]*{0,0,1},
{t, 0, N[2Pi],
N[2Pi/32]}]]}];
Show[p1, p2,
ViewPoint -> view,
DisplayFunction -> $DisplayFunction],
{d, 0, 58, 2}]

Lunar Occultations of the Star Spica

This determines when Spica is next occluded by the Moon for some observer on the Earth.

spica1beg = EclipseBegin[Earth, Moon, Spica]

spica1end = EclipseEnd[Earth, Moon, Spica,
spica1beg]

The only sites that can see this occultation are in eastern Europe, which does not include our site.

The following determines when Spica is next occluded by the Moon for our site location after the given date.

spica2beg = EclipseBegin[Spica, Moon, TopoCentric,
{2050,11,1}]

The occultation is indeed visible from the site location, and luckily occurs at night - one hour before dawn.

EclipseTrackPlot[Earth, Moon, Spica, spica2beg,
LocationRing -> True,
Shading -> True];

SunRise[spica2beg]

The occultation ends after the Sun has risen.

spica2end = EclipseEnd[Spica, Moon, TopoCentric,
spica2beg]

The occultation occurs two days before a new moon. The occultation, therefore, occurs when the Sun is nearby. Not a good event.

NewMoon[spica2beg]

Separation[Sun, Spica, spica2beg]

Here is a track of the occultation. The graphic is aligned so that the vertical corresponds to the direction of the north celestial pole.

EclipseTrackPlot[Spica, Moon, TopoCentric,
spica2beg];

The separation of the Moon and the star at the start of the occultation is 0.249 degrees, which is the same as the apparent radius of the Moon at that time.

Separation[Spica, Moon, spica2beg,
ViewPoint -> TopoCentric]

ApparentDiameter/2 /.
Appearance[Moon, spica2beg,
ViewPoint -> TopoCentric]

Halfway between the begin and end times of the occultation, Spica is well hidden behind the lunar disk. It is only 0.10 degrees, or two fifth of a lunar radius from the center.

Separation[Spica, Moon, spica2beg+{0,0,0,0,25,0},
ViewPoint -> TopoCentric]

Lunar Occultations of the Planet Mars

Occultations of planets are harder to compute - planets keep moving! And Mars in particular can undergo retrograde motion, which means multiple occultations over several weeks are theoretically possible.

This determines when Mars is next occluded by the Moon for some observer on the Earth.

mars1beg = EclipseBegin[Earth, Moon, Mars,
{1998,1,1}]

The first event after the year 2001 is:

mars1beg = EclipseBegin[Earth, Moon, Mars,
{2001,1,1}]

Our site location, at the center of the green ring, is well outside the shaded eclipse visible area, however.

EclipseTrackPlot[Earth, Moon, Mars, mars1beg,
LocationRing -> True];

This determines when Mars is next occluded by the Moon for our site location.

EclipseBegin[Mars, Moon, TopoCentric]

Although the three objects are in line, the topocentric point is on the wrong side of the Earth. That is, the event happens below the horizon. One way to test this is:

EclipseQ[Mars, Earth, TopoCentric, %]

So let us look for another event. This determines when Mars is next occluded by the Moon for our site location after the given date.

mars2beg = EclipseBegin[
Mars, Moon, TopoCentric,
{2008,1,1}]

This occultation, however, occurs during the day. But let us ignore that.

EclipseTrackPlot[Earth, Moon, Mars, mars2beg,
LocationRing -> True,
Shading -> True];

The occultation begins at this time.

EclipseQ[Mars, Moon, TopoCentric, mars2beg]

Ten seconds earlier, Mars is still visible (that is, it is not eclipsed).

EclipseQ[Mars, Moon, TopoCentric,
mars2beg + {0,0,0, 0,0,-10}]

The occultation ends about 60 minutes later.

mars2end = EclipseEnd[Mars, Moon, TopoCentric,
mars2beg]

EclipseTrackPlot[Mars, Moon, TopoCentric,
mars2beg];

The separation of the Moon and Mars at the start of the occultation is 0.270 degrees, which is the same as the apparent radius of the Moon at that time.

Separation[Mars, Moon, mars2beg,
ViewPoint -> TopoCentric]

ApparentDiameter/2 /.
Appearance[Moon, mars2beg,
ViewPoint -> TopoCentric]

Halfway between the begin and end times of the occultation, Mars is hidden behind the lunar disk. It is only 0.12 degrees, or one half a lunar radius from the center.

Separation[Mars, Moon,
mars2beg + {0,0,0, 0,30,0},
ViewPoint -> TopoCentric]

Notes on EclipseBegin/EclipseEnd

Note EclipseBegin[obj1, obj2, obj3, inputdate] and EclipseEnd[obj1, obj2, obj3, inputdate] should have the property that the end date is the event corresponding to the begin date. That is, the end should be at most within a few hours after begin. An exception to this is EclipseEnd[object, Earth, TopoCentric, inputdate] and EclipseBegin[object, Earth, TopoCentric, inputdate], which give the corresponding rise and setting time of an object.

Also, rather than insist that the begin date is strictly later than the input date, it is possible for EclipseBegin to return an event up to 24 hours before the input date. This is to allow the following to work:

SetLocation[{8.55,47.36}, TimeZone->1];
EclipseBegin[Sun, Moon, TopoCentric,
SolarEclipse[{1999,8,11}]]

If one insisted on the begin date being strictly later than the input date, then this example would find the next partial solar eclipse on {2000,7,31}. [Note EclipseBegin/EclipseEnd are for *partial* solar eclipses.]

Testing for hidden events

TopoCentric does not have a two-sided property. So if you do:

event = EclipseBegin[object, Moon, TopoCentric]

then you should test:

Not[EclipseQ[object, Earth, TopoCentric, event]]

and see if it returns True. If it is False, then the event is not visible, as the object is below the horizon. Similary, you can select nighttime events by typing:

EclipseQ[Sun, Earth, TopoCentric, event]

If it returns True, then it is nighttime. If it is False, then the event happens during the day.

If the above two tests are True, then the following should show both your location in darkness, and also the object eclipse shadow over your location.

EclipseTrackPlot[Earth, Moon, object, event,
Shading -> True,
Location -> True];

To see the track of the object behind the Moon from your location, type.

EclipseTrackPlot[object, Moon, TopoCentric, event]

To make all the above much easier, there is a single function called LunarOccultation.

LunarOccultation automatic selects only the visible events (with the object above the horizon, and the Sun below the horizon).

The case when the object is the Sun itself, the events with the Sun above the horizon are selected. LunarOccultation in this case returns the begin and end times of the next *partial* eclipse.

Mars Pathfinder Mission

SetOrbitalElements[Pathfinder,
ViewPoint -> Sun, Epoch -> 2000.,
Date -> {1997,3,1}, TimeZone -> 0,
OrbitalSemiMajorAxis -> 1.29157234471*AU,
OrbitalPeriod -> 536.138*Day,
OrbitalEccentricity -> 0.236386,
OrbitalInclination -> 0.104*Degree,
MeanAnomaly -> 58.807*Degree,
PerigeeArgument -> -9.635*Degree,
AscendingLongitude -> 81.218*Degree];

doit[object_] := Table[
Take[Coordinates[object, {1997,m,1},
ViewPoint->Sun],
2], {m,1,7}]

OrbitPlot[{Earth, Mars, Pathfinder},
Distance -> 2*AU,
Epilog -> {PointSize[0.02],
RGBColor[1,0,0], Point /@ doit[Mars],
RGBColor[0,1,0], Point /@ doit[Pathfinder],
RGBColor[0,0,1], Point /@ doit[Earth]}];

A better way to do all the above is to use the OrbitMark function inside an Epilog.

markers[object_] := Table[
OrbitMark[object, {1997,m,1}, PlotLabel->m],
{m,2,7}]

OrbitPlot[{Earth, Mars, Pathfinder},
Distance -> 1.8*AU,
Axes -> False,
PlotStyle -> GrayLevel[0.7],
Epilog -> {
OrbitMark[Sun, PlotLabel -> "Sun"],
OrbitMark[Earth, {1997,1,1},
PlotLabel -> "Earth"],
OrbitMark[Mars, {1997,1,1},
PlotLabel -> "Mars"],
OrbitMark[Earth, {1996,12,4},
PlotLabel -> "Launch"],
RGBColor[1,0,0], markers[Mars],
RGBColor[0,0,0], markers[Pathfinder],
RGBColor[0,0,1], markers[Earth]
}];

3D Solar Eclipse Plots

eclipse = SolarEclipse[{1998,2,27}];
PlanetPlot3D[Earth, eclipse,
ViewPoint->MoonShadow[eclipse]];
eclipse2 = eclipse + {0,0,0,1,0,0};
PlanetPlot3D[Earth, eclipse2,
ViewPoint->MoonShadow[eclipse2]];
PlanetPlot3D[Earth, eclipse2];1;

New BoundingCircle Function

The Separation function will now accept more than two objects. It returns the diameter of the smallest circle that encloses all the objects. For two objects this is the same as the angular separation.

A BoundingCircle function has been added. This returns the smallest diameter circle that bounds all the objects on a date.

?BoundingCircle

SetLocation[TimeZone -> 0];

On 2000 May 5, the following seven objects are within 26 degrees.

Separation[Sun, Moon, Mercury, Venus,
Mars, Jupiter, Saturn,
{2000,5,5}]

Here is how to draw the circle bounding these objects.

StarChart[Sun, {2000,5,5},
RadialAngle -> 20*Degree,
StarLabels -> True,
Planets -> All,
PlanetLabels -> True,
Features ->
BoundingCircle[Sun, Moon, Mercury,
Venus, Mars, Jupiter, Saturn,
{2000,5,5}]];

On 2000 May 10, four of the objects are even closer.

StarChart[Sun, {2000,5,10},
RadialAngle -> 3*Degree,
Planets -> All,
PlanetLabels -> True,
Features ->
BoundingCircle[Sun, Mercury, Jupiter, Saturn,
{2000,5,10}]];

Here is the group of seven rising after sunrise on 2000 May 5.

ZenithStarChart[
SunRise[{2000,5,5}]+{0,0,0,1,0,0},
Planets -> All,
Features ->
BoundingCircle[Sun, Moon, Mercury,
Venus, Mars, Jupiter, Saturn,
{2000,5,5}]];

The Pleiades star cluster is also on the edge of the planet cluster!. So you have seven moving objects meeting the Seven Sister (Pleiades).

Separation[Sun, Moon, Mercury, Venus,
Mars, Jupiter, Saturn,
Pleiades,
{2000,5,5}]

Another example:

StarChart[Orion,
StarLabels -> True,
Features -> {RGBColor[1,0,0],
BoundingCircle[Betelgeuse, Rigel],
BoundingCircle[Zeta.Orion,
Epsilon.Orion,
Delta.Orion]}];

Large BoundingCircle's will appear as circles on the star charts. This is not strictly correct as a distorted circle should be drawn (like LocationRing draws). Might fix that eventually. But small bounding circles will be the common use.

The following is the Grand Conjunction of 2040 September 8.5. The separation is 9.5 degrees.

FindMinimum[Separation[Moon, Mercury, Venus,
Mars, Jupiter, Saturn,
{2040,9,d}]/Degrees,
{d,1,2}]

Large Scale StructureAstrological Readings



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.