Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument / verified-clean

Sunrise/Sunset Calculator

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: VERIFIED_CLEANLifecycle: verified-clean

Inspectable records

Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Area
Earth & Space (astronomy, orbital mechanics, meteorology, geology, geodesy, oceanography)
Tranche
tranche-6
Evidence ID
t6-040
Ledger rows
1

No ledger note is attached.

Review findings

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.

Formula and scope findings

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

Unit assumptions

  • 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)).

Boundary hardening

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.

Errata and corrections

No applied erratum is attached to this unique-name record.

Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

{
  "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."
}

Related workflows

No source-defined multi-instrument workflow membership is recorded.

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json · VERIFIED_CLEAN
  • evidence-tranche6/tranche6-results.json
  • BOUNDARY_HAZARD_CATALOG.json