Skip to content

A TypeScript library to calculate the position of the Sun for a given time and place on Earth.

License

Notifications You must be signed in to change notification settings

schuyler/sun-sector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sun-sector

Overview

This 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.

Usage

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. Both should be in decimal degrees, with latitude south and longitude west given as negative numbers. This function returns a View object for the given location at the current time.

.at(date) returns another View for the same location at the given date and time. It takes a single argument that can be a Date object, or any string that the built-in Date 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.

Notes

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! 🇺🇦

License

(c) Copyright 2022 Schuyler Erle.

It's Free Software, yo. See LICENSE.md for the full (3-clause BSD) license.

About

A TypeScript library to calculate the position of the Sun for a given time and place on Earth.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published