Page actions
instrument mechanism / verified-clean
Sunrise/Sunset Calculator mechanism
The inspectable method record for Sunrise/Sunset Calculator, kept separate from implementation and qualification.
Model scope
The core NOAA-style sunrise/sunset method is standard when the stated assumptions are implemented. The specification needs explicit formulas, zenith definitions, sign conventions, DST behavior, leap-year handling, polar-case behavior, and a consistent computational-engine description before it can receive PASS. Twilight outputs are currently underspecified and cannot be verified from the provided formula alone.
- The specification names the NOAA sunrise equation but does not define the complete declination and equation-of-time approximation, day-number convention, or whether leap years are handled.
- Twilight times require explicit solar zenith angles, such as civil twilight 96 degrees, nautical twilight 102 degrees, and astronomical twilight 108 degrees; the specification does not state these.
- The output time convention is ambiguous: timezone offset, daylight-saving-time status, UTC/local formatting, and longitude sign convention are unspecified.
- The declared engine is a lookup table, while the formula and data_needs fields describe an on-device astronomical calculation. These are materially different implementations.
- The standard NOAA sunrise/sunset zenith is approximately 90.833 degrees, incorporating standard refraction and solar-disk radius; this assumption is not stated.
- At high latitudes, the hour-angle argument can be outside [-1,1]. The implementation must explicitly return polar day or polar night rather than pass the value to acos.
Units and conventions
- Latitude and longitude are in decimal degrees; north and east are positive, west and south are negative.
- Timezone is a numeric UTC offset in hours, including daylight-saving adjustment where applicable.
- Times below use local civil time in 24-hour notation.
- The worked checks use the NOAA daily approximation: gamma = 2*pi*(N-1)/365 at local solar noon, with N counted from 1 on January 1.
- Declination is in radians in the formula and converted to degrees for reporting: d = 0.006918 - 0.399912*cos(gamma) + 0.070257*sin(gamma) - 0.006758*cos(2gamma) + 0.000907*sin(2gamma) - 0.002697*cos(3gamma) + 0.00148*sin(3gamma).
- Equation of time is in minutes: E = 229.18*(0.000075 + 0.001868*cos(gamma) - 0.032077*sin(gamma) - 0.014615*cos(2gamma) - 0.040849*sin(2gamma)).
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"latitude_deg": 0,
"longitude_deg": 0,
"date": "2023-01-01",
"timezone_utc_offset_hours": 0,
"zenith_deg": 90.833
},
"expected_outputs": {
"solar_noon_local": "12:02:54",
"sunrise_local": "05:59:17",
"sunset_local": "18:06:32",
"day_length": "12:07:15"
},
"working": "N=1, so gamma=2*pi*(1-1)/365=0. Declination = 0.006918-0.399912-0.006758-0.002697=-0.402449 rad=-23.07 degrees. Equation of time = 229.18*(0.000075+0.001868-0.014615)=229.18*(-0.012672)=-2.904 minutes. cos(H0)=[cos(90.833)-sin(0)*sin(-23.07)]/[cos(0)*cos(-23.07)]=(-0.01454)/(0.9201)=-0.01580. H0=acos(-0.01580)=90.9055 degrees. Solar noon=720-4*0-(-2.904)+60*0=722.904 minutes=12:02:54. Sunrise=722.904-4*90.9055=359.282 minutes=05:59:17. Sunset=722.904+363.622=1086.526 minutes=18:06:32. Day length=2*(363.622)=727.244 minutes=12:07:15."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The pole input at latitude exactly 90 degrees causes the NOAA hour-angle expression to divide by cos(latitude)=0. Without an explicit pole or polar-condition guard, the calculator can return Infinity, NaN, or fabricated sunrise and sunset times. Longitude-sign ambiguity can also shift every local result by four hours if east/west convention is not documented.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche6/tranche6-results.jsonBOUNDARY_HAZARD_CATALOG.json