Akurasi Perhitungan
API AstroWay menggunakan Swiss Ephemeris (kode C resmi dari Astrodienst, pencipta astro.com) - mesin yang sama yang telah digunakan oleh astrolog profesional selama lebih dari 30 tahun di Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/bulan), dan Janus. Kami telah mengkompilasinya ke WebAssembly dan mengeksposnya sebagai lapisan REST API, tanpa markup perantara. Setiap endpoint perhitungan dasar dilindungi oleh tes snapshot regresi; akurasi mesin diverifikasi melalui triangulasi dengan tiga sumber independen + terhadap NASA 5-Millennium Eclipse Catalog:
- Posisi Planet: median
0.0013", maksimum0.561"vs swetest CGI Astrodienst resmi (diukur pada 29-07-2026 dengan 130 pengukuran). Rincian per badan di bawah. - Kuspid Rumah Placidus:
0.000"cocok persis - Gerhana:
< 1 menitvs NASA Eclipse Catalog - Garis ACG:
< 1.5 kmdi khatulistiwa vs swetest - Matahari Terbit/Terbenam:
< 10 detikvs timeanddate.com - Moon VOC, ingresses, konjungsi planet: akurasi hingga sepersekian detik
Metodologi: Bagaimana Pengukuran Dilakukan
Section titled “Metodologi: Bagaimana Pengukuran Dilakukan”Angka-angka ini bukan perkiraan, melainkan hasil dari eksekusi. Skrip mengambil 10 bagan yang tersebar dari tahun 1900 hingga 2050, meminta momen yang sama dari swetest CGI Astrodienst yang aktif, dan membandingkan semua 13 badan yang kami berikan. Total 130 pengukuran.
| Badan | Penyimpangan Maksimum |
|---|---|
| Matahari, Venus, Saturnus | 0.001" |
| Merkurius | 0.002" |
| Node Sejati | 0.004" |
| Mars | 0.007" |
| Jupiter | 0.009" |
| Bulan | 0.022" |
| Uranus | 0.083" |
| Pluto | 0.097" |
| Neptunus | 0.223" |
| Chiron | 0.561" |
| Apogee Rata-rata (Lilith) | 0.000" |
Median dari semua 130 pengukuran: 0.0013".
Sebelumnya di halaman ini ada janji umum ’< 0.1 arcsec’. Pengukuran pada 29-07-2026 menunjukkan bahwa Neptunus, Pluto, dan Chiron tidak memenuhi janji tersebut, sehingga janji tersebut diganti dengan angka aktual. Chiron dan planet-planet luar memiliki penyimpangan yang lebih besar karena posisi mereka diambil dari set efemeris terkompresi dalam rakitan WASM.
Kamu bisa mereproduksinya sendiri: api-calc/scripts/accuracy-vs-swetest.mjs melakukan persis permintaan ini dan mencetak tabel yang sama.
Periksa sendiri. Skrip yang mengukur angka-angka di atas terletak di repositori publik di bawah lisensi MIT: astroway/astrology-accuracy-benchmark. Ini tidak hanya berfungsi dengan kami: adaptor ke API lain mana pun hanya tiga puluh baris, jadi 130 pengukuran yang sama dapat dijalankan terhadap pesaing dan dibandingkan. Kunci sandbox sudah cukup.
| Komponen | Nilai |
|---|---|
| Pustaka | Kode C Swiss Ephemeris (aloistr/swisseph) |
| Versi | Kode C Astrodienst upstream |
| Bindings | swisseph-wasm (WebAssembly di Node.js) |
| Efemeris | Efemeris JPL DE431 (melalui file .se1) |
| Fallback | Analitik Moshier (untuk tanggal di luar 1800-2399) |
| Berbagi Kode | Berbagi @/core dengan app.astroway.info - satu mesin, dua transportasi |
Metodologi
Section titled “Metodologi”Akurasi diverifikasi melalui triangulasi - perbandingan dengan tiga sumber independen:
1. swetest CGI (referensi)
Section titled “1. swetest CGI (referensi)”Implementasi referensi resmi Swiss Ephemeris dari Astrodienst sendiri - tim yang menciptakan Astro.com dan melayani jutaan astrolog di seluruh dunia. Sumber publik paling otoritatif. Mesin kami identik (penyimpangan 0.00–0.07 detik busur).
2. Kerykeion (Python)
Section titled “2. Kerykeion (Python)”Pustaka Python independen menggunakan pyswisseph-bindings alih-alih WASM kami. Ini mengkonfirmasi bahwa lapisan WASM kami tidak mendistorsi data.
3. Prokerala API
Section titled “3. Prokerala API”API Swiss Ephemeris jarak jauh (sidereal Lahiri). Penyimpangan sistemik 8–17 detik busur terkait dengan versi formula Lahiri ayanamsa yang berbeda, dan bukan dengan akurasi mesin.
Hasil Triangulasi
Section titled “Hasil Triangulasi”| Bagan | vs swetest (Astrodienst) | vs Kerykeion (Python) | vs Prokerala API |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (sistemik) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (sistemik) |
| Einstein 1879 | 0.07” | Artefak LMT Kerykeion | 14.96” (sistemik) |
Set Regresi di Tingkat Endpoint
Section titled “Set Regresi di Tingkat Endpoint”Setiap endpoint komputasi dasar dilindungi oleh tes snapshot yang dibekukan pada 3 bagan referensi (Monroe / Diana / Einstein) = 873 snapshot.
Suite snapshot menangkap:
- Bug pemetaan data input - ID planet yang salah, UT, sistem rumah
- Pasca-pemrosesan - pembulatan, konversi unit, kehilangan tanda
- Perbedaan default - node rata-rata vs node sejati, geosentris vs toposentris
- Schema drift - validasi melewatkan bentuk yang salah
- Deployment usang - dist produksi tidak sesuai dengan kode
Toleransi: 5e-5° (≈0.18 detik busur) secara default untuk semua bidang numerik.
Benchmark Terperinci
Section titled “Benchmark Terperinci”Posisi Planet (tropis, vs swetest)
Section titled “Posisi Planet (tropis, vs swetest)”| Bagan | Tanggal | Penyimpangan Maksimum |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Kuspid Rumah Placidus (vs swetest)
Section titled “Kuspid Rumah Placidus (vs swetest)”| Bagan | penyimpangan ASC | penyimpangan MC | Penyimpangan Kuspid Maksimum |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Gerhana (vs NASA 5-Millennium Catalog)
Section titled “Gerhana (vs NASA 5-Millennium Catalog)”| Peristiwa | Maksimum NASA | Maksimum Kami | Penyimpangan |
|---|---|---|---|
| 2025-03-14 Total Bulan | 06:58 UT | 06:58 UT | 0.8 menit |
| 2025-03-29 Sebagian Matahari | 10:47 UT | 10:47 UT | 0.5 menit |
| 2025-09-07 Total Bulan | 18:11 UT | 18:11 UT | 0.8 menit |
| 2025-09-21 Sebagian Matahari | 19:41 UT | 19:42 UT | 1.0 menit |
Astrocartography (vs formula RA dari swetest)
Section titled “Astrocartography (vs formula RA dari swetest)”Semua garis MC/IC/ASC/DSC menggunakan formula yang benar longitude = RA − GMST (standar Kenneth Bowser). Penyimpangan dari referensi: < 1.5 km di khatulistiwa untuk semua planet.
Matahari Terbit / Terbenam (vs timeanddate.com)
Section titled “Matahari Terbit / Terbenam (vs timeanddate.com)”| Lokasi | Tanggal | Parameter | Penyimpangan |
|---|---|---|---|
| London | 2026-04-15 | Matahari Terbit | 0.6 detik |
| London | 2026-04-15 | Matahari Terbenam | 9 detik |
Lokasi kutub (|lat| > 66.5°) secara otomatis mengembalikan polarState + peringatan bahwa jam planet biasa tidak ditentukan.
Orbis Aspek
Section titled “Orbis Aspek”AstroWay menggunakan orbis variabel per-planet (aturan MIN dua planet), seperti di ZET9 dan astro.com. Orbis default (untuk bagan kelahiran):
| Aspek | Matahari | Bulan | Dalam | Jupiter | Luar |
|---|---|---|---|---|---|
| Konjungsi | 12° | 10° | 5° | 8° | 5° |
| Sextile | 6.5° | 6° | 5° | 5° | 5° |
| Kuadrat | 10° | 8° | 5° | 7° | 5° |
| Trine | 12° | 8° | 5° | 5° | 5° |
| Oposisi | 12° | 10° | 5° | 8° | 5° |
Aspek minor (36°, 40°, 45°, 72°, 108°, 135°, 144°) dinonaktifkan secara default. Diaktifkan secara eksplisit melalui ALL_ASPECTS.
Lintang Kutub
Section titled “Lintang Kutub”Untuk |lat| > 66.5°, sistem Placidus / Koch / Regiomontanus tidak terdefinisi secara matematis. Dalam kasus seperti itu, Swiss Ephemeris secara otomatis mengembalikan Porphyry, dan API kami menambahkan peringatan:
{ "system": "P", "warning": "Система Placidus не визначена для lat=68.96° (> 66.5°). Swiss Ephemeris підставив Porphyry..."}Verifikasi Berkelanjutan
Section titled “Verifikasi Berkelanjutan”Regresi diverifikasi pada setiap PR melalui CI:
api-calc/tests/endpoints/- 873 snapshot terhadap bagan referensi (Monroe / Diana / Einstein) + sinastri / komposit / davison.github/workflows/api-accuracy.yml- eksekusi otomatis pada PR- Triangulasi terhadap swetest CGI + Kerykeion - setiap minggu
- Pemantauan Swiss Ephemeris upstream melalui Dependabot
Keandalan MCP - Output Bertipe
Section titled “Keandalan MCP - Output Bertipe”Akurasi mesin adalah separuh dari kepercayaan. Separuh lainnya adalah kontrak output yang dapat divalidasi oleh agen (Claude, ChatGPT, Cursor). Server MCP kami tidak mengembalikan ‘teks mentah, cari tahu sendiri’:
structuredContentbertipe. Lebih dari 600 alat MCP, dan sebagian besar mempublikasikanoutputSchemayang ketat - klien MCP menerima struktur yang divalidasi, bukan string yang harus diurai secara acak.- Perlindungan terhadap schema drift. Tes CI
openapi-example-driftmemvalidasi setiap snapshot regresi terhadap skema yang berasal dari contohnya sendiri: jika output aktual endpoint menyimpang dari skema yang dipublikasikan, build akan gagal. Kelas perbedaan inilah yang menyebabkan kesalahan MCP-32602 Output validation error. - Kesalahan adalah kesalahan. Kegagalan alat selalu dikembalikan dengan flag
isErrordan kode bertipe (UPPER_SNAKE). Kami tidak pernah memberikan stack trace mentah atau jalur server internal sebagai “data” kepada model.
Artinya, integrasi melalui MCP sama prediktabelnya dengan panggilan REST langsung: apa yang dijelaskan dalam /openapi.json adalah apa yang dikembalikan oleh alat tersebut.
Batasan yang Diketahui
Section titled “Batasan yang Diketahui”- Tanggal di luar rentang (sebelum 1800 dan setelah 2399): analitik Moshier digunakan, akurasi ~0.1” (vs < 0.01” untuk SWIEPH dengan file DE431)
- True Lilith (id=13) vs Mean Lilith (id=12): perbedaan hingga 12° - secara default Mean Lilith (perilaku stabil), True Lilith tersedia melalui
planetIds: [13] - Toposentris vs geosentris: secara default geosentris
Referensi
Section titled “Referensi”- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- Katalog Gerhana NASA: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
Kontak
Section titled “Kontak”Untuk pertanyaan akurasi: kirim email ke support@astroway.info dengan data bagan dan referensi yang diharapkan (astro.com atau sumber otoritatif lainnya).