SunPosition

SunPosition[]

gives the position of the Sun for the current date and location.

SunPosition[datespec]

gives the position of the Sun for the specified date.

SunPosition[locationspec]

gives the positions of the Sun for the specified location.

SunPosition[locationspec,datespec]

gives the position of the Sun for the specified date and location.

SunPosition[{{location1,date1},{location2,date2},}]

gives the positions of the Sun for all specified locations on the specified dates.

SunPosition[locationspec,datespec,func]

uses func to determine what to return for extended locations.

Details and Options

  • SunPosition returns the coordinates of the Sun on the celestial sphere as observed on any date from any location on Earth.
  • The default form of the results is in the form {azimuth,altitude}.
  • The observation location can be any point on the surface of a body in the solar system, defining the local horizon.
  • Locations can be specified as Entity objects, assuming they represent objects with geographic coordinates, or they can be latitude/longitude pairs, assuming degrees as units.
  • SunPosition[] makes use of $GeoLocation and $TimeZone to determine your location and time zone.
  • datespec can be a DateObject expression, a TimeObject expression, a date string or a {y,m,d,h,m,s} date list.
  • datespec is assumed to be in $TimeZone, unless it is a DateObject or TimeObject expression with an explicit TimeZone option value.
  • locationspec and datespec can be either individual items or lists of individual items.
  • If datespec is a list of dates, then the results will contain TimeSeries objects.
  • datespec can be specified as {start,end,increment} for compatibility with DateRange specifications.
  • SunPosition[,func] is used to specify the format of output when locations are specified.
  • Possible settings for func include:
  • Automaticreturns intervals for extended locations only
    Intervalreturns intervals for all specified locations
    Meanreturns mean value for extended locations
    Minreturns minimum values for extended locations
    Maxreturns maximum values for extended locations
    StandardDeviationreturns standard deviation for extended locations
  • SunPosition[CelestialSystem->"Equatorial"] gives the right ascension and declination of the Sun.
  • SunPosition can accept the following options:
  • AltitudeMethod "ApparentAltitude"whether to take atmospheric refraction into account when computing altitude
    CelestialSystem "Horizon"whether to return azimuth/altitude or right ascension/declination
  • Possible settings for CelestialSystem include:
  • "Horizon"returns results as a pair of azimuth/altitude (az/alt) values
    "Equatorial"returns results as a pair of right ascension/declination (/) values
  • Possible settings for AltitudeMethod include:
  • "ApparentAltitude"take atmospheric refraction into account for altitude computations
    "TrueAltitude"assume no atmospheric refraction for altitude computations

Examples

open allclose all

Basic Examples  (5)

Compute the current position of the Sun for your location:

Compute the position of the Sun for a specified date:

Compute the current position of the Sun for a specified location:

Compute the position of the Sun for a specified latitude/longitude and date:

Compute the position of the Sun for a specified city and date:

Scope  (9)

Dates  (3)

Dates can be specified as a DateObject:

Dates can be specified as a date string:

Generate the Sun's position for a range of dates:

Locations  (6)

Locations can be latitude/longitude pairs:

Cities are treated as single, specific locations:

Results for extended locations are intervals by default:

The form of the results for extended locations can be overridden:

Locations can also be off Earth:

Find the Sun's position for multiple locations:

Options  (2)

CelestialSystem  (1)

Find the right ascension and declination of the Sun for your location:

AltitudeMethod  (1)

The default setting for AltitudeMethod simulates atmospheric refraction:

Allow for no atmospheric refraction when computing the altitude of the Sun:

Applications  (2)

Plot the equation of time by finding the difference between the Sun's right ascension at noon and the sidereal time at noon:

Determine your final location if you walk toward the Sun from sunrise to sunset at a constant speed:

Iterate the bearing in 10-minute increments to obtain a new course and destination:

Visualize the resulting path:

Find the distance between the starting and ending points:

Properties & Relations  (11)

By default, location is specified by $GeoLocation and the date is specified by the current date:

Results are in the form of a TimeSeries when a range of dates is specified:

Results are multivalued for each date specification so plotting the results using DateListPlot will result in two curves, one for azimuth and one for altitude:

Find the position of the Sun for this location and date:

This can also be computed with AstroPosition:

Calculate the next sunrise, defined as when the upper edge of the Sun's apparent disk touches the horizon:

Find the position of the center of the Sun at that time:

The altitude of the Sun corresponds to its angular radius:

Eliminating atmospheric refraction effects, the true position of the Sun is revealed to be even further below the horizon at sunrise:

Generate the analemma of the Sun:

Plot the position of the Sun for your location between sunrise and sunset for the solstices and equinox:

Generate a map of Italy with the illumination set for sunrise:

Plot the angular distance between the Sun and Moon over a month:

Plot the position of the Sun and Moon on the celestial sphere:

Examine how the Sun's position changes with varying latitude and longitude:

Possible Issues  (2)

With SunPosition[locationspec,Interval], results for specific locations are coerced into intervals:

Attempting to plot the results of SunPosition using "Minute" granularity or larger can result in artifacts:

One workaround to such issues is to coerce the incoming date so that it has "Instant" granularity:

Neat Examples  (1)

Choose a location and a date:

This is the sidereal time of that location at that time:

Take the right ascensions of the Sun, the Moon and the planets:

Construct text labels for them:

Plot the directions of the Sun, the Moon and the planets as viewed from the South Pole, with respect to the fixed stars:

Wolfram Research (2014), SunPosition, Wolfram Language function, https://reference.wolfram.com/language/ref/SunPosition.html (updated 2023).

Text

Wolfram Research (2014), SunPosition, Wolfram Language function, https://reference.wolfram.com/language/ref/SunPosition.html (updated 2023).

CMS

Wolfram Language. 2014. "SunPosition." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/SunPosition.html.

APA

Wolfram Language. (2014). SunPosition. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SunPosition.html

BibTeX

@misc{reference.wolfram_2023_sunposition, author="Wolfram Research", title="{SunPosition}", year="2023", howpublished="\url{https://reference.wolfram.com/language/ref/SunPosition.html}", note=[Accessed: 19-March-2024 ]}

BibLaTeX

@online{reference.wolfram_2023_sunposition, organization={Wolfram Research}, title={SunPosition}, year={2023}, url={https://reference.wolfram.com/language/ref/SunPosition.html}, note=[Accessed: 19-March-2024 ]}