Changelog
View SourceAll notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - 2024-07-03
First public release.
Added
sonnenstandmodule with the public API:day_of_year/1,declination/1,equation_of_time/1,hour_angle/2,elevation/3, andazimuth/3.- Type specs and EDoc documentation for all public functions.
- EUnit test suite, including reference values for Berlin and a regression test for the azimuth quadrant.
- Validation suite against the NOAA Solar Calculator (Berlin, Johannesburg, and
Sydney at the solstices and equinoxes), confirming solar noon to within ~30 s
and sunrise/sunset to within a few minutes. See
test/sonnenstand_noaa_tests.erl. rebar3project setup with Dialyzer andex_docconfiguration.
Changed
- English public API replacing the previous mixed German/English names
(
hoehe→elevation,azimut→azimuth,zeitgleichung→equation_of_time,stundenwinkel→hour_angle). - Degree-to-radian conversion now uses
math:pi()/180instead of a hardcoded constant, improving precision. - Date/time inputs are now interpreted as UTC (the original algorithm was fixed to the 15° E / UTC+1 meridian). The seconds component of the time is now taken into account.
Fixed
- Azimuth quadrant bug: afternoon azimuths were mirrored onto the morning
(eastern) side because
math:acos/1only returns0..180°. Azimuths now correctly fall in the western half after solar noon.
Removed
- Unused OTP application/supervisor scaffolding (
sonnenstand_app,sonnenstand_sup);sonnenstandis now a pure library application. - Exploratory
playground_calendar/0function.