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[] makes use of $GeoLocation and $TimeZone to determine your location and time zone.
  • The default form of the results is in the form {azimuth,altitude}.
  • Locations can be specified as Entity objects, assuming they represent objects with geographic coordinates, GeoGraphics primitives, or they can be latitude/longitude pairs, assuming degrees as units.
  • Dates can be specified as a DateObject or as a string that resolves to a date.
  • 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:
  • CelestialSystem"Horizon"whether to return azimuth/altitude or right ascension/declination
    AltitudeMethod"TrueAltitude"whether to take atmospheric refraction into account when computing altitude
  • 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:
  • "TrueAltitude"assume no atmospheric refraction for altitude computations
    "ApparentAltitude"take atmospheric refraction into account 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  (8)

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  (5)

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:

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)

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

The default setting for AltitudeMethod simulates no atmospheric refraction:

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  (3)

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:

Possible Issues  (1)

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

Neat Examples  (7)

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:

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:

Introduced in 2014
 (10.0)
 |
Updated in 2014
 (10.0.2)