Akurasi Perhitungan
Intinya
Section titled “Intinya”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 menjalankannya di server kami sendiri dan menyediakannya melalui lapisan REST API, tanpa markup perantara. Setiap endpoint komputasi dasar dilindungi oleh uji snapshot regresi; akurasi mesin diverifikasi melalui triangulasi dengan tiga sumber independen + terhadap Katalog Gerhana 5 Milenium NASA:
- Posisi planet: median
0.0013", maksimum0.561"dibandingkan swetest CGI Astrodienst resmi (diukur pada 29-07-2026 dengan 130 pengukuran). Rincian per benda di bawah - Uji benchmark independen oleh pihak ketiga (RoxyAPI, terhadap NASA JPL Horizons DE441): 210 dari 210 dalam batas toleransi, median
0.11", maksimum0.60" - Kuspid Rumah Placidus:
0.000"cocok persis - Gerhana:
< 1 menitdibandingkan Katalog Gerhana NASA - Garis ACG:
< 1.5 kmdi khatulistiwa dibandingkan swetest - Matahari terbit/terbenam:
< 10 detikdibandingkan timeanddate.com - VOC Bulan, ingresi, konjungsi planet: akurasi hingga sepersekian detik
Metodologi: Cara Pengukuran
Section titled “Metodologi: Cara Pengukuran”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 benda yang kami sediakan. Total 130 pengukuran.
| Benda | 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, halaman ini memiliki 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 posisinya diambil dari set efemeris terkompresi yang digunakan oleh build kami.
Kamu bisa mereproduksinya sendiri: api-calc/scripts/accuracy-vs-swetest.mjs
melakukan persis permintaan ini dan mencetak tabel yang sama.
Periksa sendiri. Skrip yang digunakan untuk mengukur angka-angka di atas tersedia di repositori publik di bawah lisensi MIT: astroway/astrology-accuracy-benchmark. Ini tidak hanya berfungsi dengan kami: adaptor ke API lain hanya membutuhkan tiga puluh baris, sehingga 130 pengukuran yang sama dapat dijalankan terhadap pesaing dan dibandingkan. Kunci sandbox sudah cukup.
| Komponen | Nilai |
|---|---|
| Pustaka | Swiss Ephemeris C code (aloistr/swisseph) |
| Versi | upstream Astrodienst C code |
| Efemeris | DE431 JPL ephemeris (melalui file .se1) |
| Cadangan | Moshier analytical (untuk tanggal di luar 1800-2399) |
| Berbagi kode | Shared @/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, independen dari build kami.
Ini mengonfirmasi bahwa lapisan pembungkus 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 | terhadap swetest (Astrodienst) | terhadap Kerykeion (Python) | terhadap 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) |
Verifikasi Independen oleh Alat Pihak Ketiga
Section titled “Verifikasi Independen oleh Alat Pihak Ketiga”RoxyAPI menerbitkan benchmark mereka sendiri terhadap NASA JPL Horizons DE441:
lisensi MIT, hanya pustaka standar, 21 bagan dan 210 posisi, dan flag --base-url
untuk menargetkannya ke API lain. README mereka secara eksplisit menyatakan bahwa
toleransi tidak sengaja disesuaikan dengan mesin mereka sendiri, karena benchmark
yang menawarkan untuk menguji pesaing haruslah adil.
Kami menargetkannya pada diri kami sendiri, tanpa mengubah angka apa pun dalam kode mereka. Adaptor mengganti nama satu bidang permintaan dan menghapus satu pembungkus respons.
| AstroWay | RoxyAPI, eksekusi mereka 29-09-2026 | |
|---|---|---|
| Dalam batas toleransi | 210 dari 210 | 210 dari 210 |
| Median penyimpangan | 0.11" | 0.05" |
| Maksimum | 0.60" | 0.78" |
Pengukuran kami pada 09-09-2026, dengan biaya 21 permintaan API. RoxyAPI pada bulan September beralih ke pembacaan langsung DE440, dan median mereka sekarang lebih rendah dari kami; maksimum kami lebih rendah dari mereka. Output berurutan dari semua 210 baris: CSV.
Set Regresi di Tingkat Endpoint
Section titled “Set Regresi di Tingkat Endpoint”Setiap endpoint komputasi dasar dilindungi oleh uji snapshot yang dibekukan pada 3 bagan referensi (Monroe / Diana / Einstein) = 873 snapshot.
Suite snapshot menangkap:
- Bug pemetaan data masukan: ID planet yang salah, UT, sistem rumah
- Pasca-pemrosesan: pembulatan, konversi unit, kehilangan tanda
- Perbedaan default: node rata-rata vs sejati, geosentris vs toposentris
- Penyimpangan skema: 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 Rinci
Section titled “Benchmark Rinci”Posisi Planet (tropis, terhadap swetest)
Section titled “Posisi Planet (tropis, terhadap 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 (terhadap swetest)
Section titled “Kuspid Rumah Placidus (terhadap swetest)”| Bagan | penyimpangan ASC | penyimpangan MC | Penyimpangan kuspid maksimum |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Gerhana (terhadap Katalog 5 Milenium NASA)
Section titled “Gerhana (terhadap Katalog 5 Milenium NASA)”| Peristiwa | Maksimum NASA | Maksimum kami | Penyimpangan |
|---|---|---|---|
| 2025-03-14 Lunar Total | 06:58 UT | 06:58 UT | 0.8 menit |
| 2025-03-29 Solar Partial | 10:47 UT | 10:47 UT | 0.5 menit |
| 2025-09-07 Lunar Total | 18:11 UT | 18:11 UT | 0.8 menit |
| 2025-09-21 Solar Partial | 19:41 UT | 19:42 UT | 1.0 menit |
Astrocartography (terhadap formula RA dari swetest)
Section titled “Astrocartography (terhadap formula RA dari swetest)”Garis MC dan IC dibangun menggunakan formula longitude = RA − GMST (standar Kenneth
Bowser). Penyimpangan dari referensi: < 1.5 km di khatulistiwa untuk semua planet.
Garis horizontal ASC dan DSC dihitung dari persamaan horizon dalam koordinat
ekuatorial yang sama: cos H = -tan φ · tan δ, di mana H = (GMST + lng) − RA.
Kedua bagian berbeda dalam tanda sudut jam: jika H < 0, benda tersebut berada
di timur meridian, yaitu terbit. Verifikasi yang kami jalankan pada setiap eksekusi:
setiap titik dari setiap kurva horizontal diambil dan ketinggian benda di atas
horizon dihitung pada titik tersebut. Pada 8419 titik, penyimpangan maksimum adalah
0.0 km, yang berarti benda tersebut benar-benar berada di horizon di mana pun
kami menggambar garis.
Matahari Terbit / Terbenam (terhadap timeanddate.com)
Section titled “Matahari Terbit / Terbenam (terhadap timeanddate.com)”| Lokasi | Tanggal | Parameter | Penyimpangan |
|---|---|---|---|
| London | 15-04-2026 | Matahari Terbit | 0.6 detik |
| London | 15-04-2026 | Matahari Terbenam | 9 detik |
Lokasi Kutub (|lat| > 66.5°) secara otomatis mengembalikan polarState +
peringatan bahwa jam planet biasa tidak terdefinisi.
Orbis Aspek
Section titled “Orbis Aspek”AstroWay menggunakan orbis variabel per-planet (aturan MIN dari dua planet), seperti di ZET9 dan astro.com. Orbis default (untuk bagan natal):
| 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 secara matematis tidak terdefinisi. Dalam kasus seperti itu, Swiss Ephemeris secara otomatis mengembalikan Porphyry, dan API kami menambahkan peringatan:
{ "system": "P", "warning": "Placidus system is undefined for lat=68.96° (> 66.5°). Swiss Ephemeris fell back to 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: otomatis berjalan pada PR- Triangulasi terhadap swetest CGI + Kerykeion: setiap minggu
- Pemantauan upstream Swiss Ephemeris 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, silakan cari tahu sendiri”:
structuredContentyang bertipe. Lebih dari 600 alat MCP, dan sebagian besar menerbitkanoutputSchemayang ketat - klien MCP menerima struktur yang divalidasi, bukan string yang harus diurai secara acak.- Perlindungan terhadap penyimpangan skema. Uji CI
openapi-example-driftmemvalidasi setiap snapshot regresi terhadap skema yang berasal dari contohnya sendiri: jika output aktual endpoint menyimpang dari skema yang diterbitkan, build akan gagal. Kelas penyimpangan inilah yang menyebabkan kesalahan MCP-32602 Output validation error. - Kesalahan: itu 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): digunakan Moshier analytical, akurasi ~0.1” (dibandingkan < 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).