Calculate solar azimuth & elevation given location and time.
npm install sun-sectorThis very smol TypeScript library implements rough calculations for the azimuth
and elevation of the sun for any location on Earth at a particular time, as well
as providing times for rise, set, and noon.
``
import {SunSector} from 'sun-sector';
const sun = SunSector.from(31.34635, -93.82015)
.at("2003-02-01T08:59:00-06:00");
console.log("Azimuth º:", sun.azimuth);
console.log("Elevation º:", sun.elevation);
console.log("Sunrise:", sun.rise);
console.log("Noon:", sun.noon);
console.log("Sunset:", sun.set);
`
SunSector.from() takes two arguments, a _latitude_ and a _longitude_. BothView
should be in decimal degrees, with latitude south and longitude west given as
negative numbers. This function returns a object for the given location
at the current time.
.at(date) returns another View for the same location at the given date andDate
time. It takes a single argument that can be a Date object, or any string that
the built-in constructor accepts.
The .elevation property returns the number of degrees above the horizon..azimuth returns degrees, clockwise from due north (0º).
The .rise, .noon, and .set properties all return Date` objects.
This code basically implements Louis Strous's excellent tutorial on computing
the position of the Sun from his Astronomy
Answers site.
When compared to online solar position calculators like
nrel.gov or
gml.noaa.gov, this code returns azimuth
and elevation that are within 0.5º, noon within a minute, and rise/set times
that are within 2 minutes. So it's not perfect, but it's close enough for my
purposes.
You should probably check out Volodymyr
Agafonkin's more fully-featured
SunCalc library. Slava Ukraini! 🇺🇦
(c) Copyright 2022 Schuyler Erle.
It's Free Software, yo. See LICENSE.md for the full (3-clause BSD)
license.