# गणना की सटीकता

## TL;DR

AstroWay API **Swiss Ephemeris** का उपयोग करता है (Astrodienst द्वारा आधिकारिक C-код, astro.com के निर्माता) - वही इंजन जिसका उपयोग 30+ वर्षों से पेशेवर ज्योतिषी **Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/माह) और Janus** में करते हैं। हमने इसे WebAssembly में एकत्र किया है और बिना किसी मध्यस्थता के REST API परत के साथ प्रस्तुत किया है। प्रत्येक मूल गणना एंडपॉइंट रिग्रेशन स्नैपशॉट परीक्षणों द्वारा कवर किया जाता है; इंजन की सटीकता तीन स्वतंत्र स्रोतों + **NASA 5-Millennium Eclipse Catalog** के साथ त्रिकोणमिति के माध्यम से सत्यापित की जाती है:

- **ग्रहों की स्थिति**: `< 0.1 arcsec` vs आधिकारिक swetest CGI Astrodienst
- **Placidus घरों के कुस्पिद**: `0.000"` एकदम मेल
- **ग्रहण**: `< 1 मिनट` vs NASA Eclipse Catalog
- **ACG रेखाएं**: `< 1.5 किमी` समतुल्य रेखा पर swetest के खिलाफ
- **सूर्योदय/सूर्यास्त**: `< 10 सेकंड` vs timeanddate.com
- **चंद्रमा VOC, प्रवेश, ग्रह संयोजन**: सेकंड के हिस्से तक सटीकता

## इंजन

| घटक | मान |
|-----------|----------|
| पुस्तकालय | Swiss Ephemeris C code (aloistr/swisseph) |
| संस्करण | upstream Astrodienst C code |
| बाइंडिंग | swisseph-wasm (WebAssembly उ Node.js) |
| एपिमेरिस | DE431 JPL एपिमेरिस (। se1 फ़ाइलों के माध्यम से) |
| फॉलबैक | Moshier विश्लेषणात्मक (1800-2399 के बाहर तिथियों के लिए) |
| कोड साझा करना | साझा `@/core` ऐप.astroway.info के साथ — एक इंजन, दो परिवहन |

## विधि

सटीकता **त्रिकोणमिति** के माध्यम से जाँची जाती है — तीन स्वतंत्र स्रोतों की तुलना:

### 1. swetest CGI (मानक)

Astrodienst द्वारा आधिकारिक रेफरेंस-इंप्लीमेंटेशन Swiss Ephemeris — **Astro.com** और दुनिया भर में लाखों ज्योतिषियों की सेवा करने वाली टीम द्वारा बनाया गया। सबसे अधिक प्रभावशाली सार्वजनिक स्रोत। हमारा इंजन **एकसमान** (0.00–0.07 कोणीय सेकंड ड्रिफ्ट) है।

### 2. Kerykeion (पाइथन)

स्वतंत्र पाइथन पुस्तकालय `pyswisseph` -बाइंडिंग का उपयोग करता है, हमारे WASM के बजाय। यह पुष्टि करता है कि हमारा WASM परत डेटा को विकृत नहीं करती है।

### 3. Prokerala API

दूरस्थ Swiss Ephemeris API (sidereal Lahiri)। 8–17 कोणीय सेकंड का सिस्टमिक ड्रिफ्ट Lahiri ayanamsa सूत्र के विभिन्न संस्करणों से संबंधित है, **न कि** इंजन की सटीकता से।

## त्रिकोणमिति के परिणाम

| मानचित्र | swetest (Astrodienst) के खिलाफ | Kerykeion (पाइथन) के खिलाफ | Prokerala API के खिलाफ |
|-------|------------------------------|---------------------------|---------------------|
| मोनरो 1926   | **0.00"** | 0.19" | 16.95" (सिस्टमिक) |
| डायना 1961    | **0.00"** | 0.69" | 8.18" (सिस्टमिक)  |
| आइंस्टीन 1879 | 0.07"     | LMT-आर्टिफैक्ट Kerykeion | 14.96" (सिस्टमिक) |

## एंडपॉइंट स्तर पर रिग्रेशन सेट

प्रत्येक मूल गणना एंडपॉइंट **{siteMeta.snapshotCount} स्नैपशॉट** के साथ कवर किया जाता है।

स्नैपशॉट-सुइट पकड़ता है:

- **इनपुट डेटा मैपिंग बग** — गलत ग्रह आईडी, यूटी, घर प्रणाली
- **पोस्ट-प्रोसेसिंग** — राउंडिंग, इकाई रूपांतरण, साइन हानि
- **डिफ़ॉल्ट विचलन** — मीन वी ट्रू नोड, जियोसेंट्रिक वी टोपोसेंट्रिक
- **स्कीमा ड्रिफ्ट** — सत्यापन ने गलत रूप को याद किया
- **पुराना डिप्लॉयमेंट** — प्रोड डिस्ट कोड से मेल नहीं खाता

सहनशीलता: `5e-5°` (≈0.18 कोणीय सेकंड) डिफ़ॉल्ट रूप से सभी संख्यात्मक क्षेत्रों के लिए।

## विस्तृत बेंचमार्क

### ग्रहों की स्थिति (ट्रोपिक, swetest के खिलाफ)

| मानचित्र | तिथि | अधिकतम ड्रिफ्ट |
|-------|------|-----------------|
| मेरिलिन मोनरो  | 1926-06-01 | **0.00"** |
| प्रिंसेस डायना  | 1961-07-01 | **0.00"** |
| अल्बर्ट आइंस्टीन | 1879-03-14 | 0.07"     |

### प्लासिडस घरों के कुस्पिद (swetest के खिलाफ)

| मानचित्र | एससी ड्रिफ्ट | एमसी ड्रिफ्ट | अधिकतम कुस्पिद ड्रिफ्ट |
|-------|-----------|----------|-------------------------|
| मोनरो | 0.000" | 0.000" | 0.000" |
| डायना  | 0.000" | 0.000" | 0.000" |

### ग्रहण (NASA 5-Millennium Catalog के खिलाफ)

| घटना | अधिकतम NASA | हमारा अधिकतम | ड्रिफ्ट |
|-------|----------------|--------------|-------|
| 2025-03-14 लूनर टोटल  | 06:58 यूटी | 06:58 यूटी | 0.8 मिनट |
| 2025-03-29 सोलर पार्श्व  | 10:47 यूटी | 10:47 यूटी | 0.5 मिनट |
| 2025-09-07 लूनर टोटल  | 18:11 यूटी | 18:11 यूटी | 0.8 मिनट |
| 2025-09-21 सोलर पार्श्व | 19:41 यूटी | 19:42 यूटी | 1.0 मिनट |

### एस्ट्रोकार्टोग्राफी (swetest के खिलाफ RA सूत्र)

सभी एमसी/आईसी/एससी/डीएससी रेखाएं `देशांतर = आरए − जीएमएसटी` (केनेथ बाउसर मानक) सूत्र का उपयोग करती हैं। ड्रिफ्ट मानक से: **< 1.5 किमी** सभी ग्रहों के लिए समतुल्य रेखा पर।

### सूर्योदय/सूर्यास्त (timeanddate.com के खिलाफ)

| स्थान | तिथि | पैरामीटर | ड्रिफ्ट |
|---------|------|----------|-------|
| लंदन | 2026-04-15 | सूर्योदय | 0.6 सेकंड |
| लंदन | 2026-04-15 | सूर्यास्त  | 9 सेकंड   |

**ध्रुवीय स्थान** (|अक्षांश| > 66.5°) स्वचालित रूप से `polarState` + चेतावनी लौटाते हैं कि सामान्य ग्रह घंटे परिभाषित नहीं हैं।

### कक्षाओं के आसपास के बिंदु

AstroWay **परिवर्तनशील कक्षाएं** प्रति-ग्रह (दो ग्रहों के नियम मिनी) का उपयोग करता है, जैसे ZET9 और astro.com में। डिफ़ॉल्ट कक्षाएं (नेटल चार्ट के लिए):

| आसपेक्ट | सूर्य | चंद्रमा | आंतरिक | बृहस्पति | बाहरी |
|--------|-----|------|-------|---------|-------|
| संयोग | 12°  | 10° | 5° | 8° | 5° |
| सेक्सटाइल     | 6.5° | 6°  | 5° | 5° | 5° |
| वर्ग      | 10°  | 8°  | 5° | 7° | 5° |
| त्रिकोण       | 12°  | 8°  | 5° | 5° | 5° |
| विपक्ष  | 12°  | 10° | 5° | 8° | 5° |

लघु आसपेक्ट (36°, 40°, 45°, 72°, 108°, 135°, 144°) **डिफ़ॉल्ट रूप से अक्षम** हैं। `ALL_ASPECTS` के माध्यम से विशेष रूप से सक्षम किए जाते हैं।

## ध्रुवीय अक्षांश

|अक्षांश| > 66.5° के लिए प्लासिडस / कोच / रेजियोमोंटानус प्रणाली गणितीय रूप से परिभाषित नहीं हैं। ऐसे मामलों में, Swiss Ephemeris स्वचालित रूप से Porphyry को वापस करता है, और हमारा API एक चेतावनी जोड़ता है:

```json
{
  "system": "P",
  "warning": "प्लासिडस प्रणाली अक्षांश = 68.96° (> 66.5°) के लिए परिभाषित नहीं है। Swiss Ephemeris ने Porphyry को प्रतिस्थापित किया है..."
}
```

## निरंतर जांच

रिग्रेशन **प्रत्येक पीआर** पर जांच की जाती है:

- `api-calc/tests/endpoints/` — {siteMeta.snapshotCount} स्नैपशॉट्स रेफरेंस मानचित्र (मोनरो / डायना / आइंस्टीन) + सिनास्ट्री / संयुक्त / डेविसन के खिलाफ
- `.github/workflows/api-accuracy.yml` — पीआर पर स्वचालित रूप से चलने वाला कार्य
- त्रिकोणमिति swetest CGI + Kerykeion के खिलाफ — साप्ताहिक
- अपस्ट्रीम Swiss Ephemeris की निगरानी Dependabot के माध्यम से

## ज्ञात सीमाएं

- **तिथियां सीमा से बाहर** (1800 से पहले और 2399 के बाद): Moshier विश्लेषणात्मक (~0.1" की सटीकता के साथ) का उपयोग किया जाता है, जबकि SWIEPH DE431 फ़ाइलों के साथ \<0.01" है
- **सच्ची लिलिथ (आईडी = 13) बनाम मीन लिलिथ (आईडी = 12)**: 12° तक का अंतर — डिफ़ॉल्ट रूप से मीन लिलिथ (स्थिर व्यवहार), सच्ची लिलिथ `planetIds: [13]` के माध्यम से उपलब्ध है
- **टोपोसेंट्रिक बनाम जियोसेंट्रिक**: डिफ़ॉल्ट रूप से जियोसेंट्रिक

## लिंक

- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- NASA ग्रहण कैटलॉग: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/

## संपर्क

सटीकता के बारे में प्रश्न: support@astroway.info पर मानचित्र के डेटा और अपेक्षित मानक (astro.com या अन्य प्रतिष्ठित स्रोत) के साथ लिखें।
