Description
Calculate Sun Position, Sunrise, Sunset, Solar Noon and Twilight.
Description
Provides a set of convenient functions for calculating sun-related information, including the sun's position (elevation and azimuth), and the times of sunrise, sunset, solar noon, and twilight for any given geographical location on Earth. These calculations are based on equations provided by the National Oceanic & Atmospheric Administration (NOAA) <https://gml.noaa.gov/grad/solcalc/calcdetails.html> as described in "Astronomical Algorithms" by Jean Meeus (1991, ISBN: 978-0-943396-35-4). A resource for researchers and professionals working in fields such as climatology, biology, and renewable energy.
README.md
suntools
suntools provides functions for calculating the sun's position, sunrise, sunset, solar noon, and crepuscular (twilight) times for any given geographical location and time on earth. Functions in suntools used to be part of the maptools package. The functions are based on equations provided by the National Oceanic & Atmospheric Administration (NOAA).
Main package functions:
crepuscule()
: Calculates crepuscular (twilight) times, i.e. the time of dawn or dusk.sunriset()
: Calculates the times of sunrise and sunset at a given location.solarpos()
: Calculates the solar position (elevation and azimuth) at a given location and time.solarnoon()
: Calculates solar noon time at a given location.
Installation
You can install the released version of suntools from CRAN with:
install.packages("suntools")
Alternatively, you can install the development version from GitHub with:
devtools::install_github("adokter/suntools")
Example
library(suntools)
#Calculate sunset in Ithaca, NY, USA on June 1, 2023
sunriset(
matrix(c(-76.4511, 42.4800), nrow = 1),
as.POSIXct("2023-06-01", tz = "America/New_York"),
direction='sunset',
POSIXct.out=TRUE
)
# day_frac time
#1 0.858628 2023-06-01 20:36:25
Author(s)
- Greg Pelletier ([email protected]) - Original VBA code available from Ecology WA Gov: Models & Tools for TMDLs, who in turn translated it from original Javascript code by NOAA
- Sebastian P. Luque ([email protected]), translated from Greg Pelletier's code
- Roger Bivand ([email protected]) adapted the code to work with sp classes.
- Adriaan M. Dokter ([email protected]) adapted the code to work with sf classes.
- Pieter Huijbrechts ([email protected]) set up continuous integration and automated tests.
- Alexander Tedeschi ([email protected]) made tests and documentation roxygen compatible
References
This package uses algorithms provided by the National Oceanic & Atmospheric Administration (NOAA), for more information see
- Meeus, J. (1991) Astronomical Algorithms. Willmann-Bell, Inc.
- NOAA's Sunrise/Sunset Calculator
- NOAA's Solar Position Calculator
- NOAA'S Solar Calculation Details.