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

instrument implementation / implementation-contract

Moonrise/Moonset Estimator implementation

A source-bound implementation contract for Moonrise/Moonset Estimator; deployment and executable qualification remain separate.

Status: VERIFIED_CLEANLifecycle: implementation-contract

Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

Record owner
Guth Instruments
Lifecycle
verified-clean
Evidence ID
t7-016
Effect
Computation or source lookup only

Input and validation requirements

The estimator reaches an undefined division at latitude 90 degrees and must reject that input. Its output is also convention-sensitive because the specification does not state whether longitude is east-positive or west-positive; the same numeric longitude 30 produces substantially different times.

Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

{
  "inputs": {
    "lat_deg": 0,
    "lon_deg": 0,
    "date": "2025-01-01",
    "gmst0_deg": 0,
    "lunar_ra_deg": 180.12986,
    "lunar_dec_deg": 0
  },
  "expected_outputs": {
    "moonrise_utc": "06:00:00",
    "moonset_utc": "17:57:11"
  },
  "reference_data": {
    "refraction_deg": 0.5667,
    "lunar_semidiameter_deg": 0.2725,
    "lunar_horizontal_parallax_deg": 0.9507,
    "sidereal_rate_deg_per_utc_day": 360.9856473,
    "source_convention": "Refraction, lunar semidiameter, and lunar horizontal parallax: widely tabulated standard values; sidereal rate: IAU/Meeus standard convention"
  },
  "working": "1. Horizon threshold: h0 = -0.5667 - 0.2725 + 0.9507 = +0.1115 degrees. 2. At latitude 0 degrees and declination 0 degrees: cos(H0) = sin(0.1115)/(cos(0)cos(0)) = 0.00194604, so H0 = arccos(0.00194604) = 89.88845 degrees. 3. Sidereal rate per hour = 360.9856473/24 = 15.0402353 degrees/hour. 4. Rise hour angle is -H0. UTC rise = [-89.88845 - 0 - 0 + 180.12986]/15.0402353 = 90.24141/15.0402353 = 6.00000 hours = 06:00:00 UTC. 5. Set hour angle is +H0. UTC set = [89.88845 - 0 - 0 + 180.12986]/15.0402353 = 270.01831/15.0402353 = 17.95306 hours. 0.95306 x 60 = 57.1836 minutes, so moonset = 17:57:11 UTC. This vector uses the exact widely tabulated entries 0.9507 degrees horizontal parallax and 0.2725 degrees lunar semidiameter."
}

Other records

Sources and evidence

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

  • VERIFIED_LEDGER.json
  • evidence-tranche7/tranche7-results.json