Ακρίβεια υπολογισμών
Το AstroWay API χρησιμοποιεί το Swiss Ephemeris (επίσημος κώδικας C από την Astrodienst, τους δημιουργούς του astro.com) - την ίδια μηχανή με την οποία επαγγελματίες αστρολόγοι εργάζονται για πάνω από 30 χρόνια στα Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/μήνα) και Janus. Το ενσωματώσαμε σε WebAssembly και το εκθέσαμε ως ένα επίπεδο REST API, χωρίς μεσιτική προσαύξηση. Κάθε ένα από τα βασικά υπολογιστικά endpoints καλύπτεται από regression snapshot-tests· η ακρίβεια της μηχανής έχει επαληθευτεί μέσω triangulation με τρεις ανεξάρτητες πηγές + έναντι του NASA 5-Millennium Eclipse Catalog:
- Θέσεις πλανητών: διάμεσος
0.0013", μέγιστο0.561"έναντι του επίσημου swetest CGI Astrodienst (μετρήθηκε στις 2026-07-29 σε 130 μετρήσεις). Ανάλυση ανά σώμα παρακάτω - Ακμές οίκων Placidus:
0.000"ακριβής αντιστοιχία - Εκλείψεις:
< 1 λεπτόέναντι του NASA Eclipse Catalog - Γραμμές ACG:
< 1.5 χλμστον ισημερινό έναντι του swetest - Ανατολή/δύση ηλίου:
< 10 δευτερόλεπταέναντι του timeanddate.com - Moon VOC, είσοδοι, πλανητικές συζεύξεις: ακρίβεια μέχρι κλάσματος του δευτερολέπτου
Μεθοδολογία: πώς ακριβώς μετρήθηκε
Ενότητα με τίτλο «Μεθοδολογία: πώς ακριβώς μετρήθηκε»Αυτοί οι αριθμοί δεν είναι εκτίμηση, αλλά αποτέλεσμα εκτέλεσης. Το script παίρνει 10 χάρτες, κατανεμημένους από το 1900 έως το 2050, ζητά τις ίδιες στιγμές από το ζωντανό swetest CGI Astrodienst και συγκρίνει και τα 13 σώματα που επιστρέφουμε. Συνολικά 130 μετρήσεις.
| Σώμα | Μέγιστη απόκλιση |
|---|---|
| Ήλιος, Αφροδίτη, Κρόνος | 0.001" |
| Ερμής | 0.002" |
| true Node | 0.004" |
| Άρης | 0.007" |
| Δίας | 0.009" |
| Σελήνη | 0.022" |
| Ουρανός | 0.083" |
| Πλούτωνας | 0.097" |
| Ποσειδώνας | 0.223" |
| Χείρωνας | 0.561" |
| mean Apogee (Λίλιθ) | 0.000" |
Διάμεσος για όλες τις 130 μετρήσεις: 0.0013".
Προηγουμένως, αυτή η σελίδα περιείχε μια γενική υπόσχεση «< 0.1 arcsec». Οι μετρήσεις της 2026-07-29 έδειξαν ότι ο Ποσειδώνας, ο Πλούτωνας και ο Χείρωνας δεν την τηρούν, επομένως η υπόσχεση αντικαταστάθηκε με πραγματικούς αριθμούς. Ο Χείρωνας και οι εξωτερικοί πλανήτες έχουν μεγαλύτερη απόκλιση λόγω του ότι οι θέσεις τους λαμβάνονται από ένα συμπιεσμένο σύνολο εφημερίδων στην WASM-assembly.
Μπορείς να το αναπαράγεις μόνος σου: το api-calc/scripts/accuracy-vs-swetest.mjs κάνει ακριβώς αυτές τις αιτήσεις και εκτυπώνει τον ίδιο πίνακα.
Έλεγξέ το μόνος σου. Το script με το οποίο μετρήθηκαν οι παραπάνω αριθμοί βρίσκεται σε ένα δημόσιο αποθετήριο υπό MIT: astroway/astrology-accuracy-benchmark. Λειτουργεί όχι μόνο με εμάς: ένας προσαρμογέας σε οποιοδήποτε άλλο API είναι τριάντα γραμμές κώδικα, οπότε οι ίδιες 130 μετρήσεις μπορούν να εκτελεστούν έναντι ενός ανταγωνιστή και να συγκριθούν. Ένα κλειδί sandbox είναι αρκετό.
| Συστατικό | Τιμή |
|---|---|
| Βιβλιοθήκη | Swiss Ephemeris C code (aloistr/swisseph) |
| Έκδοση | upstream Astrodienst C code |
| Bindings | swisseph-wasm (WebAssembly σε Node.js) |
| Εφημερίδες | DE431 JPL ephemeris (μέσω αρχείων .se1) |
| Fallback | Moshier analytical (για ημερομηνίες εκτός 1800-2399) |
| Κοινή χρήση κώδικα | Κοινόχρηστο @/core από το app.astroway.info - μία μηχανή, δύο μεταφορές |
Μεθοδολογία
Ενότητα με τίτλο «Μεθοδολογία»Η ακρίβεια ελέγχεται μέσω τριγωνισμού - σύγκρισης με τρεις ανεξάρτητες πηγές:
1. swetest CGI (αναφορά)
Ενότητα με τίτλο «1. swetest CGI (αναφορά)»Η επίσημη υλοποίηση αναφοράς του Swiss Ephemeris από την ίδια την Astrodienst - την ομάδα που δημιούργησε το Astro.com και εξυπηρετεί εκατομμύρια αστρολόγους παγκοσμίως. Η πιο έγκυρη δημόσια πηγή. Η μηχανή μας είναι ταυτόσημη (0.00–0.07 δευτερόλεπτα τόξου απόκλισης).
2. Kerykeion (Python)
Ενότητα με τίτλο «2. Kerykeion (Python)»Μια ανεξάρτητη βιβλιοθήκη Python χρησιμοποιεί pyswisseph-bindings αντί του WASM μας. Επιβεβαιώνει ότι το WASM επίπεδό μας δεν παραμορφώνει τα δεδομένα.
3. Prokerala API
Ενότητα με τίτλο «3. Prokerala API»Απομακρυσμένο Swiss Ephemeris API (sidereal Lahiri). Η συστηματική απόκλιση 8–17 δευτερολέπτων τόξου σχετίζεται με διαφορετικές εκδόσεις του τύπου Lahiri ayanamsa, και όχι με την ακρίβεια της μηχανής.
Αποτελέσματα τριγωνισμού
Ενότητα με τίτλο «Αποτελέσματα τριγωνισμού»| Χάρτης | έναντι swetest (Astrodienst) | έναντι Kerykeion (Python) | έναντι Prokerala API |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (systemic) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (systemic) |
| Einstein 1879 | 0.07” | LMT-τεχνούργημα Kerykeion | 14.96” (systemic) |
Σύνολο regression σε επίπεδο endpoints
Ενότητα με τίτλο «Σύνολο regression σε επίπεδο endpoints»Κάθε ένα από τα βασικά υπολογιστικά endpoints καλύπτεται από παγωμένα snapshot-tests σε 3 χάρτες αναφοράς (Monroe / Diana / Einstein) = 873 snapshots.
Το Snapshot-suite εντοπίζει:
- Σφάλματα αντιστοίχισης εισόδου - λανθασμένο id πλανήτη, UT, σύστημα οίκων
- Μετα-επεξεργασία - στρογγυλοποίηση, μετατροπή μονάδων, απώλεια προσήμου
- Διαφορά προεπιλογών - mean vs true node, γεωκεντρικό vs τοποκεντρικό
- Schema drift - η επικύρωση παρέλειψε λανθασμένη μορφή
- Παρωχημένο deploy - το prod dist δεν αντιστοιχεί στον κώδικα
Ανοχή: 5e-5° (≈0.18 δευτερόλεπτα τόξου) από προεπιλογή για όλα τα αριθμητικά πεδία.
Λεπτομερή benchmarks
Ενότητα με τίτλο «Λεπτομερή benchmarks»Θέσεις πλανητών (τροπικό, έναντι swetest)
Ενότητα με τίτλο «Θέσεις πλανητών (τροπικό, έναντι swetest)»| Χάρτης | Ημερομηνία | Μέγιστη απόκλιση |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Ακμές οίκων Placidus (έναντι swetest)
Ενότητα με τίτλο «Ακμές οίκων Placidus (έναντι swetest)»| Χάρτης | απόκλιση ASC | απόκλιση MC | Μέγιστη απόκλιση ακμής |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Εκλείψεις (έναντι NASA 5-Millennium Catalog)
Ενότητα με τίτλο «Εκλείψεις (έναντι NASA 5-Millennium Catalog)»| Γεγονός | Μέγιστο NASA | Μέγιστο δικό μας | Απόκλιση |
|---|---|---|---|
| 2025-03-14 Lunar Total | 06:58 UT | 06:58 UT | 0.8 λεπτά |
| 2025-03-29 Solar Partial | 10:47 UT | 10:47 UT | 0.5 λεπτά |
| 2025-09-07 Lunar Total | 18:11 UT | 18:11 UT | 0.8 λεπτά |
| 2025-09-21 Solar Partial | 19:41 UT | 19:42 UT | 1.0 λεπτά |
Αστροχαρτογραφία (έναντι του τύπου RA από το swetest)
Ενότητα με τίτλο «Αστροχαρτογραφία (έναντι του τύπου RA από το swetest)»Όλες οι γραμμές MC/IC/ASC/DSC χρησιμοποιούν τον σωστό τύπο longitude = RA − GMST (πρότυπο Kenneth Bowser). Απόκλιση από την αναφορά: < 1.5 χλμ στον ισημερινό για όλους τους πλανήτες.
Ανατολή / Δύση Ηλίου (έναντι timeanddate.com)
Ενότητα με τίτλο «Ανατολή / Δύση Ηλίου (έναντι timeanddate.com)»| Τοποθεσία | Ημερομηνία | Παράμετρος | Απόκλιση |
|---|---|---|---|
| London | 2026-04-15 | Sunrise | 0.6 δευτ |
| London | 2026-04-15 | Sunset | 9 δευτ |
Πολικές τοποθεσίες (|lat| > 66.5°) επιστρέφουν αυτόματα polarState + προειδοποίηση ότι οι συνήθεις πλανητικές ώρες δεν ορίζονται.
Όρμπεις όψεων
Ενότητα με τίτλο «Όρμπεις όψεων»Το AstroWay χρησιμοποιεί μεταβλητούς όρμπεις ανά πλανήτη (κανόνας MIN δύο πλανητών), όπως στο ZET9 και στο astro.com. Οι προεπιλεγμένοι όρμπεις (για τον γενέθλιο χάρτη):
| Όψη | Ήλιος | Σελήνη | Εσωτερικοί | Δίας | Εξωτερικοί |
|---|---|---|---|---|---|
| Conjunction | 12° | 10° | 5° | 8° | 5° |
| Sextile | 6.5° | 6° | 5° | 5° | 5° |
| Square | 10° | 8° | 5° | 7° | 5° |
| Trine | 12° | 8° | 5° | 5° | 5° |
| Opposition | 12° | 10° | 5° | 8° | 5° |
Οι δευτερεύουσες όψεις (36°, 40°, 45°, 72°, 108°, 135°, 144°) είναι απενεργοποιημένες από προεπιλογή. Ενεργοποιούνται ρητά μέσω του ALL_ASPECTS.
Πολικά γεωγραφικά πλάτη
Ενότητα με τίτλο «Πολικά γεωγραφικά πλάτη»Για |lat| > 66.5° τα συστήματα Placidus / Koch / Regiomontanus δεν ορίζονται μαθηματικά. Σε τέτοιες περιπτώσεις, το Swiss Ephemeris επιστρέφει αυτόματα Porphyry, και το API μας προσθέτει μια προειδοποίηση:
{ "system": "P", "warning": "Система Placidus не визначена для lat=68.96° (> 66.5°). Swiss Ephemeris підставив Porphyry..."}Συνεχής επαλήθευση
Ενότητα με τίτλο «Συνεχής επαλήθευση»Το Regression ελέγχεται σε κάθε PR μέσω CI:
api-calc/tests/endpoints/- 873 snapshots έναντι χαρτών αναφοράς (Monroe / Diana / Einstein) + synastry / composite / davison.github/workflows/api-accuracy.yml- αυτόματη εκτέλεση σε PR- Τριγωνισμός έναντι swetest CGI + Kerykeion - εβδομαδιαίως
- Παρακολούθηση upstream Swiss Ephemeris μέσω Dependabot
Αξιοπιστία MCP - τυποποιημένη έξοδος
Ενότητα με τίτλο «Αξιοπιστία MCP - τυποποιημένη έξοδος»Η ακρίβεια της μηχανής είναι η μισή εμπιστοσύνη. Το άλλο μισό είναι το συμβόλαιο εξόδου, το οποίο ένας πράκτορας (Claude, ChatGPT, Cursor) μπορεί να επικυρώσει. Ο MCP-server μας δεν επιστρέφει «ακατέργαστο κείμενο, βρείτε το μόνοι σας»:
- Τυποποιημένο
structuredContent. Πάνω από 600 εργαλεία MCP, και η συντριπτική πλειοψηφία τους δημοσιεύει ένα αυστηρόoutputSchema- ο MCP-client λαμβάνει μια επικυρωμένη δομή, όχι μια συμβολοσειρά που πρέπει να αναλυθεί τυχαία. - Προστασία από schema drift. Το CI-test
openapi-example-driftεπικυρώνει κάθε regression-snapshot έναντι του σχήματος που προκύπτει από το δικό του παράδειγμα: εάν η πραγματική έξοδος του endpoint αποκλίνει από το δημοσιευμένο σχήμα, η κατασκευή αποτυγχάνει. Αυτή ακριβώς η κατηγορία αποκλίσεων προκαλεί το σφάλμα MCP-32602 Output validation error. - Τα σφάλματα είναι σφάλματα. Η αποτυχία ενός εργαλείου επιστρέφεται πάντα με τη σημαία
isErrorκαι έναν τυποποιημένο κωδικό (UPPER_SNAKE). Ποτέ δεν δίνουμε στο μοντέλο ένα ακατέργαστο stack trace ή εσωτερικές διαδρομές διακομιστή ως «δεδομένα».
Δηλαδή, η ενσωμάτωση μέσω MCP είναι εξίσου προβλέψιμη με μια άμεση κλήση REST: αυτό που περιγράφεται στο /openapi.json - αυτό επιστρέφει το εργαλείο.
Γνωστοί περιορισμοί
Ενότητα με τίτλο «Γνωστοί περιορισμοί»- Ημερομηνίες εκτός εύρους (πριν το 1800 και μετά το 2399): χρησιμοποιείται Moshier analytical, ακρίβεια ~0.1” (έναντι < 0.01” για SWIEPH με αρχεία DE431)
- True Lilith (id=13) vs Mean Lilith (id=12): διαφορά έως 12° - από προεπιλογή Mean Lilith (σταθερή συμπεριφορά), το True Lilith είναι διαθέσιμο μέσω
planetIds: [13] - Τοποκεντρικό vs γεωκεντρικό: από προεπιλογή γεωκεντρικό
Αναφορές
Ενότητα με τίτλο «Αναφορές»- 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/
Επικοινωνία
Ενότητα με τίτλο «Επικοινωνία»Για θέματα ακρίβειας: στείλε email στο support@astroway.info με τα δεδομένα του χάρτη και την αναμενόμενη αναφορά (astro.com ή άλλη έγκυρη πηγή).