Function Repository Resource:

TelescopeView3D (1.3.0) current version: 1.4.0 »

Source Notebook

Visualize the 3D appearance of planets and moons in our solar system

Contributed by: Jeff Bryant

ResourceFunction["TelescopeView3D"][target]

display a 3D view of target as observed from your current location at the current time.

ResourceFunction["TelescopeView3D"][target,date]

display a 3D view of target as observed from your current location on the specified date.

ResourceFunction["TelescopeView3D"][target,loc]

display a 3D view of target as observed from loc at the current time.

ResourceFunction["TelescopeView3D"][target,date,loc]

display a 3D view of target as observed from loc on the specified date.

Details and Options

ResourceFunction["TelescopeView3D"] supports targets that are planets or moons with known coordinates available via AstroPosition.
Textures for targets are only available for planets and major moons.
loc can either be an explicit GeoPosition or it can be an Entity that supports the "Position" property that returns a GeoPosition.
ResourceFunction["TelescopeView3D"] downloads ephemeris data files for solar system objects, storing them permanently in FileNameJoin[{$UserAddOnsDirectory,"ApplicationData","Astro"}].
ResourceFunction["TelescopeView3D"] has the same options as Graphics3D, with the following additions and changes:
"FieldWidth"Automaticangular width of the observation field
"IncludeSaturnRings"Automaticwhether to render Saturn's rings
"IncludeTextures"Truewhether to include textures on supporting bodies
"SatelliteLabels"Falsewhether to include text labesl for natural satellites
"SatelliteScalingFactor"1scaling factor for rendering natural satellites for visibility
"SatellitesToInclude"Automaticadditional natural satellites to include in the scene
"SolarSystemFeatures"{}solar system features to be labeled on the target
If the target is Saturn, the output will automatically include Saturn's rings.

Examples

Basic Examples (3) 

Visualize the face of Mars currently visible from Earth:

In[1]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"]]
Out[1]=

Visualize the face of Jupiter visible from Earth on a specific date, including the position of the Great Red Spot:

In[2]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Jupiter"], DateObject[{2023, 3, 3, 10, 9, 0}, "Instant", "Gregorian", "America/Chicago"]]
Out[2]=

Visualize the appearance of the Moon as seen from Earth on a specific date:

In[3]:=
ResourceFunction["TelescopeView3D"][Entity["PlanetaryMoon", "Moon"], DateObject[{2023, 3, 31, 3, 0, 0}, "Instant", "Gregorian", "America/Chicago"], GeoPosition[{40.11, -88.22}]]
Out[3]=

Options (11) 

FieldWidth (2) 

Use "FieldWidth" to zoom into a target:

In[4]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Neptune"], DateObject[{1989, 8, 25, 12, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> #] & /@ {Quantity[10, "Arcseconds"], Quantity[5, "Arcseconds"], Automatic}
Out[4]=

View Jupiter's moon Io as seen from the Amergin crater near the equator of Jupiter's moon Europa:

In[5]:=
origin = Entity["SolarSystemFeature", "AmerginEuropa"];
In[6]:=
date = DateObject[{2023, 3, 9, 19, 0, 0}, "Instant", "Gregorian", "America/Chicago"];
In[7]:=
ResourceFunction["TelescopeView3D"][
 Entity["PlanetaryMoon", "Io"], date, origin, "FieldWidth" -> Quantity[.01, "Radians"]]
Out[7]=

Re-orient the camera so that the north ecliptic pole is up:

In[8]:=
ResourceFunction["TelescopeView3D"][
 Entity["PlanetaryMoon", "Io"], date, origin, "FieldWidth" -> Quantity[.01, "Radians"], ViewVertical -> AstroPosition["NorthEclipticPole", {"ICRS", date, origin}, "Cartesian"]["Data"]]
Out[8]=

IncludeSaturnRings (2) 

By default, Saturn includes the rings:

In[9]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Saturn"], DateObject[{2023, 3, 4, 10, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[30, "Arcseconds"]]
Out[9]=

For faster rendering, the rings can be turned off:

In[10]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Saturn"], DateObject[{2023, 3, 4, 10, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[30, "Arcseconds"], "IncludeSaturnRings" -> False]
Out[10]=

IncludeTextures (2) 

View the Earth and Moon from a Olympus Mons on Mars:

In[11]:=
origin = Entity["SolarSystemFeature", "OlympusMonsMars"];

Turn off the textures for Earth and the Moon so that their dark textures don't make it hard to see them:

In[12]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Earth"], DateObject[{2023, 3, 6, 17, 23, 58.7402054`}, "Instant", "Gregorian", -6.`], origin, "FieldWidth" -> Quantity[.25, "AngularDegrees"], "SatelliteScalingFactor" -> 2, "IncludeTextures" -> False]
Out[12]=

SatellitesToInclude (3) 

Visualize Mars and include both of its moons:

In[13]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], DateObject[{2023, 3, 3, 23, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[0.5, "Arcminutes"], "SatellitesToInclude" -> EntityClass["PlanetaryMoon", "MarsMoon"]]
Out[13]=

Enlarge the moons for better visibility:

In[14]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], DateObject[{2023, 3, 3, 23, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[0.5, "Arcminutes"], "SatellitesToInclude" -> EntityClass["PlanetaryMoon", "MarsMoon"], "SatelliteScalingFactor" -> 20]
Out[14]=

Label the moons:

In[15]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], DateObject[{2023, 3, 3, 23, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[0.5, "Arcminutes"], "SatellitesToInclude" -> EntityClass["PlanetaryMoon", "MarsMoon"], "SatelliteScalingFactor" -> 20, "SatelliteLabels" -> True]
Out[15]=

SolarSystemFeatures (2) 

Label features that are visible on Mars:

In[16]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], DateObject[{2023, 5, 15, 15, 16, 44.104283452034`}, "Instant", "Gregorian", -5.`], "SolarSystemFeatures" -> {Entity["SolarSystemFeature", "OlympusMonsMars"]}]
Out[16]=
In[17]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], DateObject[{2023, 5, 1, 8, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "SolarSystemFeatures" -> {Entity["SolarSystemFeature", "OlympusMonsMars"], Entity["SolarSystemFeature", "ArsiaMonsMars"],
    Entity["SolarSystemFeature", "PavonisMonsMars"], Entity["SolarSystemFeature", "AscraeusMonsMars"], Entity["SolarSystemFeature", "VallesMarinerisMars"]}]
Out[17]=

Label features on the Moon:

In[18]:=
ResourceFunction["TelescopeView3D"][Entity["PlanetaryMoon", "Moon"], DateObject[{2023, 4, 5, 0, 0, 0}, TimeZone -> "America/Chicago"], "SolarSystemFeatures" -> {Entity["SolarSystemFeature", "MareTranquillitatisMoon"], Entity["SolarSystemFeature", "CopernicusMoon"], Entity["SolarSystemFeature", "TychoMoon"], Entity["SolarSystemFeature", "MareSerenitatisMoon"], Entity["SolarSystemFeature", "MareImbriumMoon"], Entity["SolarSystemFeature", "MareNubiumMoon"], Entity["SolarSystemFeature", "MareFrigorisMoon"], Entity["SolarSystemFeature", "MareCrisiumMoon"], Entity["SolarSystemFeature", "MareCognitumMoon"], Entity["SolarSystemFeature", "MontesApenninusMoon"]}]
Out[18]=
In[19]:=
ResourceFunction["TelescopeView3D"][Entity["PlanetaryMoon", "Io"], DateObject[{2023, 4, 1, 20, 0, 0}, TimeZone -> "America/Chicago"], "SolarSystemFeatures" -> {Entity["SolarSystemFeature", "LokiPateraIo"], Entity["SolarSystemFeature", "BabbarPateraIo"], Entity["SolarSystemFeature", "PeleIo"]}]
Out[19]=

Applications (9) 

Show the appearance of Mars at 10 PM local time:

In[20]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], TimeObject[{22}, "Hour"]]
Out[20]=

Simulate the occultation of Mars by the Moon:

In[21]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mars"], DateObject[{2022, 12, 7, 21, 10, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[7, "Arcminutes"]]
Out[21]=

Simulate Neptune being occulted by Mercury as observed at the North Pole of the Earth:

In[22]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Mercury"], DateObject[{2067, 7, 15, 11, 53, 30}, "Instant", "Gregorian", 0.`], GeoPosition[{90, 0}], "FieldWidth" -> Quantity[20, "Arcseconds"]]
Out[22]=

Reproduce the observations of Galileo on Jan 8, 1610:

In[23]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Jupiter"], DateObject[{1610, 1, 8, 18, 0, 0}, "Instant", "Gregorian", "Europe/Rome"], Entity["City", {"Padova", "Veneto", "Italy"}], "FieldWidth" -> Quantity[0.4, "AngularDegrees"], "SatellitesToInclude" -> EntityClass["PlanetaryMoon", "GalileanMoon"], "SatelliteScalingFactor" -> 10]
Out[23]=

Explore the positions of some of Saturn's small moons near the rings:

In[24]:=
ResourceFunction["TelescopeView3D"][
 Entity["PlanetaryMoon", "Prometheus"], DateObject[{2022, 11, 21, 1, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[20, "Arcseconds"], "SatelliteLabels" -> True, "SatelliteScalingFactor" -> 10, "SatellitesToInclude" -> {Entity["PlanetaryMoon", "Atlas"], Entity["PlanetaryMoon", "Pan"], Entity["PlanetaryMoon", "Prometheus"], Entity["PlanetaryMoon", "Pandora"], Entity["PlanetaryMoon", "Telesto"]}, "IncludeSaturnRings" -> True]
Out[24]=

Explore a typical backyard telescopic view of Saturn's larger moons:

In[25]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Saturn"], DateObject[{2022, 11, 21, 1, 0, 0}, "Instant", "Gregorian", "America/Chicago"], "FieldWidth" -> Quantity[6, "Arcminutes"], "SatelliteScalingFactor" -> 10, "SatellitesToInclude" -> {Entity["PlanetaryMoon", "Titan"], Entity["PlanetaryMoon", "Rhea"], Entity["PlanetaryMoon", "Tethys"],
    Entity["PlanetaryMoon", "Dione"], Entity["PlanetaryMoon", "Enceladus"], Entity["PlanetaryMoon", "Mimas"]}]
Out[25]=

Recreate an occultation of Saturn by Venus in 1771:

In[26]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Saturn"], DateObject[{1771, 8, 29, 19, 38, 0}, "Instant", "Gregorian", 0.`], GeoPosition[{-26.19, 28.04}], "FieldWidth" -> Quantity[40, "Arcseconds"]]
Out[26]=

Re-create a view of crescent Venus and a crescent Moon next to each other:

In[27]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Venus"], DateObject[{2020, 6, 19, 4, 19, 0}, "Instant", "Gregorian", -3.`], GeoPosition[{46.15, -60.17}], "FieldWidth" -> Quantity[13.3, "Arcminutes"]]
Out[27]=

Simulate the view from Apollo 8 during the famous "Earthrise" photograph. Assume a position near the equator of the Moon and slightly on the Earth‐side of the Moon. Africa can be seen on the terminator:

In[28]:=
ResourceFunction["TelescopeView3D"][Entity["Planet", "Earth"], DateObject[{1968, 12, 24, 15, 40, 0}, "Instant", "Gregorian", 0.`], GeoPosition[{0, 85}, Entity["PlanetaryMoon", "Moon"]], "FieldWidth" -> Quantity[5, "AngularDegrees"]]
Out[28]=

Version History

  • 1.4.0 – 19 July 2024
  • 1.3.0 – 15 May 2023
  • 1.2.0 – 22 March 2023
  • 1.1.0 – 13 March 2023
  • 1.0.0 – 10 March 2023

Related Resources

License Information