Nakshatra and Pada
panchangam.nakshatra
Sidereal lunar longitude selects one of 27 Nakshatras and one of four Padas.
Assurance
| Level | Current statement |
|---|---|
| Documented and traceable | Yes — the canonical record includes the process and a worked example. |
| Regression or reproduction checked | Linked to 4 repository test file(s). |
| Independently source-supported | Not independently verified at this level; current behavior is regression-pinned. |
Computation method
Method type: formula
Divide sidereal lunar longitude into 27 equal Nakshatras and each Nakshatra into four Padas, then solve the enclosing longitude crossings around sunrise.
Process
- Set Nakshatra size N=360/27 degrees.
- At sunrise choose n=floor(M/N) modulo 27.
- Bisect the Moon model at n*N in [sunrise-2 days, sunrise] and at (n+1)*N in [sunrise, sunrise+2 days].
- Compute Pada as floor((M/N)*4) modulo 4 plus 1.
- Map n through NAKSHATRA_NAMES and expose whole-second UTC boundaries.
Formulae
Nakshatra and Pada
N = 360 / 27
n = floor(M / N) mod 27
pada = floor((M / N) * 4) mod 4 + 1- M: selected engine Moon longitude
- n: Nakshatra index
- pada: 1 through 4
Worked example
Hyderabad sunrise, 2026-06-11, Drik Ganita
Inputs
- Moon longitude: 358.4708221648 degrees
- N = 13.3333333333 degrees
Calculation
- floor(358.4708221648/N) modulo 27 = 26, Revati.
- The Pada formula yields 4.
- Bisect the Drik Moon at the two Revati boundaries.
Result
- Revati, Pada 4
- Span: 2026-06-10 09:21:40 to 2026-06-11 08:16:35 IST
Method notes
- Surya Siddhanta and Vakya use their own Moon functions, so their boundaries can differ from Drik.
Contract
Owning layer: engine-core
Claim kind: deterministic-fact
Time basis: Active at local sunrise with UTC boundary crossings.
Inputs
- engine lunar longitude
Outputs
- Nakshatra name
- start/end
- Pada
References and evidence
Evidence classes: astronomical, textual
Verification states: partially_verified, engine_pinned
Drik has representative comparisons; non-Drik spans are engine-pinned.
drik.sidereal_positions
Evidence class: astronomical
Verification state: partially_verified
Locator: Swiss Ephemeris Programmer's Documentation sections 3, 5.8 and 12.2 for calc_ut, sidereal flags and ayanamsa modes; representative date checks in tests/test_drik_engine.py and tests/test_ayanamsa.py
Last reviewed: 2026-08-27
Scope: Traces the Drik longitude API and preserves representative outputs. The current register does not contain an exhaustive independently published position-and-transition fixture, and it establishes no interpretive doctrine.
Sources
- Swiss Ephemeris — Astrodienst; Swiss Ephemeris 2.10 Programmer's Documentation and pyswisseph runtime used by the repository; authority type:
astronomical_reference - Drik Panchang day and festival pages — Drik Panchang; Location- and date-specific web pages; authority type:
published_panchangam
panchangam.non_drik_engine_outputs
Evidence class: astronomical
Verification state: engine_pinned
Locator: tests/test_surya_siddhanta_engine.py and tests/test_vakya_engine.py
Scope: Regression tests preserve the current Surya Siddhanta and Vakya Pancha-Anga and sky-event outputs. No independent published-Panchangam comparison set is registered, so engine-pinned output must not be described as externally verified.
Sources
- No external source is registered for this claim.
panchangam.calendar_semantics
Evidence class: textual
Verification state: needs_locator
Locator: No precise locator is registered.
Scope: Samvatsara, Ayana, Ritu, lunar-month, Paksha, weekday and Rasi labels combine astronomical calculations with calendar rollover conventions. They require criterion-level locators and regional-scope notes; astronomical correctness alone does not verify the naming convention.
Sources
- Muhurtha (Electional Astrology) — B. V. Raman; UBS Publishers' Distributors, 1993, ISBN 9788185674681, 181 catalogued pages; authority type:
modern_synthesis
The complete machine-readable source registry is available in provenance.json. A regression fixture or same-code reproduction is not independent verification.
Reproduce and review
tests/test_drik_engine.pytests/test_pada_on_daily.pytests/test_surya_siddhanta_engine.pytests/test_vakya_engine.py
Run the linked tests, then the complete offline contract:
python tools/verify_project.pyPublic surfaces
python-librarymcpicswebsite
Limitations
- Names and boundaries inherit engine and ayanamsa choices.
Implementation
- owner:
telugu_panchangam/engines/drik.py—DrikGanitaEngine._nakshatra_span - owner:
telugu_panchangam/engines/surya_siddhanta.py—SuryaSiddhantaEngine._nakshatra_span - owner:
telugu_panchangam/engines/vakya.py—VakyaEngine._nakshatra_span
This route is generated from computations.json. Edit the registry and canonical reference prose in the same pull request as a behavior change.