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:
-
Automatic returns intervals for extended locations only Interval returns intervals for all specified locations Mean returns mean value for extended locations Min returns minimum values for extended locations Max returns maximum values for extended locations StandardDeviation returns 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 allBasic 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:
Locations (6)
Options (2)
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:
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:
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