Hesaplama doğruluğu
AstroWay API Swiss Ephemeris’i (Astrodienst’in resmi C kodu, astro.com’un yaratıcıları) kullanıyor – aynı motor, profesyonel astrologların 30+ yıldır Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/ay) ve Janus’ta kullandığı. Bunu kendi sunucularımızda çalıştırıyor ve REST API katmanı olarak sunuyoruz, ara marj eklemeden. Temel hesaplama endpoint’lerinin her biri regression snapshot testleriyle kapsanmıştır; motorun doğruluğu triangulation ile üç bağımsız kaynaktan ve NASA 5-Millennium Eclipse Catalog’a karşı doğrulanmıştır:
- Gezegen konumları: medyan
0.0013", maksimum0.561"vs resmi swetest CGI Astrodienst (ölçüm 2026-07-29, 130 ölçümde). Cisimlere göre ayrıntı aşağıda - Bağımsız başka bir benchmark ile geçiş (RoxyAPI, NASA JPL Horizons DE441’e karşı): 210/210 tolerans içinde, medyan
0.11", maksimum0.60" - Placidus ev kısıpları:
0.000"tam eşleşme - Güneş tutulmaları:
< 1 dakikavs NASA Eclipse Catalog - ACG hatları:
< 1.5 kmekvator üzerinde vs swetest - Sunrise/sunset:
< 10 saniyevs timeanddate.com - Moon VOC, ingresses, planet conjunctions: saniyenin bir kesri kadar doğruluk
Metodoloji: nasıl ölçüldü
Section titled “Metodoloji: nasıl ölçüldü”Bu sayılar bir tahmin değil, çalıştırma sonucudur. Betik 1900 ile 2050 yılları arasında dağıtılmış 10 harita alır, aynı anları canlı swetest CGI Astrodienst’ten sorar ve verdiğimiz 13 gökcismini karşılaştırır. Toplam 130 ölçüm.
| Cisim | Maksimum sürüklenme |
|---|---|
| Güneş, Venüs, Satürn | 0.001" |
| Merkür | 0.002" |
| true Node | 0.004" |
| Mars | 0.007" |
| Jüpiter | 0.009" |
| Ay | 0.022" |
| Uranüs | 0.083" |
| Pluto | 0.097" |
| Neptün | 0.223" |
| Chiron | 0.561" |
| mean Apogee (Lilith) | 0.000" |
Tüm 130 ölçümdeki medyan: 0.0013".
Daha önce bu sayfada genel bir vaat ”< 0.1 arcsec” bulunuyordu. 2026-07-29 ölçümleri, Neptün, Pluto ve Chiron’un bu vaat tutmadığını gösterdi, bu yüzden vaat gerçek sayılarla değiştirildi. Chiron ve dış gezegenler, derlememizin kullandığı sıkıştırılmış ephemeris setinden pozisyon alındığı için daha büyük sürüklenmeye sahiptir.
Bunu kendin yeniden oluşturabilirsin: api-calc/scripts/accuracy-vs-swetest.mjs tam olarak bu istekleri yapar ve aynı tabloyu yazdırır.
Kendiniz kontrol edin. Yukarıdaki sayıları ölçen betik, MIT lisanslı olarak herkese açık depoda bulunur: astroway/astrology-accuracy-benchmark. Sadece bizimle çalışmaz: başka bir API’ye adaptör sadece otuz satırdır, bu yüzden aynı 130 ölçümü rakibe karşı çalıştırıp karşılaştırabilirsiniz. Sandbox anahtarı yeterli.
| Bileşen | Değer |
|---|---|
| Kütüphane | Swiss Ephemeris C code (aloistr/swisseph) |
| Versiyon | upstream Astrodienst C code |
| Ephemeris | DE431 JPL ephemeris (.se1 dosyaları aracılığıyla) |
| Fallback | Moshier analytical (1800-2399 dışı tarihler için) |
| Code sharing | Shared @/core with app.astroway.info - bir motor, iki taşıma |
Metodoloji
Section titled “Metodoloji”Doğruluk triangulation ile kontrol edilir – üç bağımsız kaynağa karşılaştırma:
1. swetest CGI (referans)
Section titled “1. swetest CGI (referans)”Astrodienst’in kendisi tarafından geliştirilen resmi reference-implementation Swiss Ephemeris – Astro.com’u yaratan ekip ve dünya çapında milyonlarca astrologu hizmet eder. En yetkili kamu kaynağı. Motorumuz aynı (0.00–0.07 açı saniyesi sürüklenme).
2. Kerykeion (Python)
Section titled “2. Kerykeion (Python)”Bağımsız Python kütüphanesi pyswisseph bağlamalarını kullanır, derlememizden bağımsızdır. Katmanımızın verileri bozmadığını doğrular.
3. Prokerala API
Section titled “3. Prokerala API”Uzak Swiss Ephemeris API (sidereal Lahiri). Sistemik sürüklenme 8–17 açı saniyesi, farklı Lahiri ayanamsa formül sürümleriyle ilgili, motorun doğruluğu değil.
Triangulation Sonuçları
Section titled “Triangulation Sonuçları”| Harita | swetest (Astrodienst) karşı | Kerykeion (Python) karşı | Prokerala API karşı |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (systemic) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (systemic) |
| Einstein 1879 | 0.07” | LMT-artifact Kerykeion | 14.96” (systemic) |
Bağımsız kontrol başka bir araçla
Section titled “Bağımsız kontrol başka bir araçla”RoxyAPI, NASA JPL Horizons DE441’e karşı kendi benchmark’ını yayınlıyor: MIT lisansı,
sadece standart kütüphane, 21 harita ve 210 pozisyon, ve --base-url bayrağı,
bunu herhangi bir API’ye yönlendirmek için. README’lerinde açıkça, toleransların
kendi motorlarına uydurulmadığını, çünkü rakibi kontrol etmeyi öneren benchmark’un
adil olması gerektiğini belirtiyor.
Biz onu kendimize yönlendirdik, kodlarında hiçbir sayı değiştirmeden. Adaptör, bir istek alanının adını değiştirir ve bir yanıt sarmalamasını kaldırır.
| AstroWay | RoxyAPI, onların geçişi 2026-09-29 | |
|---|---|---|
| Tolerans içinde | 210/210 | 210/210 |
| Medyan sapma | 0.11" | 0.05" |
| Maksimum | 0.60" | 0.78" |
Bizim ölçüm 2026-09-09, maliyet 21 API isteği. RoxyAPI Eylül’de doğrudan DE440 okumasına geçti ve medyanları artık bizimkinden düşük; maksimumumuz da onlarınkinden düşük. Tüm 210 satırın sıralı çıktısı: CSV.
Regression seti endpoint seviyesinde
Section titled “Regression seti endpoint seviyesinde”Temel hesaplama endpoint’lerinin her biri, 3 referans harita (Monroe / Diana / Einstein) üzerinde dondurulmuş snapshot testleriyle kapsanmıştır = 873 snapshot.
Snapshot-suite yakalar:
- Giriş verisi eşleme hataları: yanlış gezegen id’si, UT, ev sistemi
- Post-işlem: yuvarlama, birim dönüşümü, işaret kaybı
- Varsayılan farklılıkları: mean vs true node, geocentric vs topocentric
- Schema drift: doğrulama hatalı şekli geçirdi
- Eski dağıtım: prod dist kodla eşleşmiyor
Tolerans: 5e-5° (≈0.18 açı saniyesi) varsayılan olarak tüm sayısal alanlar için.
Ayrıntılı benchmarklar
Section titled “Ayrıntılı benchmarklar”Gezegen konumları (tropik, swetest’e karşı)
Section titled “Gezegen konumları (tropik, swetest’e karşı)”| Harita | Tarih | Maksimum drift |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Placidus ev kısıpları (swetest’e karşı)
Section titled “Placidus ev kısıpları (swetest’e karşı)”| Harita | drift ASC | drift MC | Maksimum drift kısıp |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Tutulmalar (NASA 5-Millennium Catalog’a karşı)
Section titled “Tutulmalar (NASA 5-Millennium Catalog’a karşı)”| Olay | NASA Maksimum | Bizim maksimum | Sürüklenme |
|---|---|---|---|
| 2025-03-14 Lunar Total | 06:58 UT | 06:58 UT | 0.8 dk |
| 2025-03-29 Solar Partial | 10:47 UT | 10:47 UT | 0.5 dk |
| 2025-09-07 Lunar Total | 18:11 UT | 18:11 UT | 0.8 dk |
| 2025-09-21 Solar Partial | 19:41 UT | 19:42 UT | 1.0 dk |
Astro-kartografi (swetest’ten RA formülüne karşı)
Section titled “Astro-kartografi (swetest’ten RA formülüne karşı)”MC ve IC hatları longitude = RA − GMST formülüyle (Kenneth Bowser standardı) oluşturulur. Referanstan sürüklenme: < 1.5 km ekvator üzerinde tüm gezegenler için.
ASC ve DSC yatay hatları aynı ekvatorial koordinatlarda horizon denklemiyle hesaplanır: cos H = -tan φ · tan δ, burada H = (GMST + lng) − RA.
Yarımlar saat açısının işaretiyle farklıdır: H < 0 olduğunda cisim meridyenden doğuya,
yani doğar. Her çalıştırmada yaptığımız kontrol: her yatay eğrinin her noktasını alıp,
o noktadaki cismin horizon üzerindeki yüksekliğini hesaplamak.
8419 noktada maksimum sapma 0.0 km, yani cisim gerçekten çizdiğimiz hat boyunca
horizon üzerinde duruyor.
Güneş Doğuş / Batış (timeanddate.com’a karşı)
Section titled “Güneş Doğuş / Batış (timeanddate.com’a karşı)”| Lokasyon | Tarih | Parametre | Sürüklenme |
|---|---|---|---|
| London | 2026-04-15 | Sunrise | 0.6 s |
| London | 2026-04-15 | Sunset | 9 s |
Kutup konumları (|lat| > 66.5°) otomatik olarak polarState +
uyarı döndürür, normal planetary saatler tanımlı değildir.
Açısal yörüngeler
Section titled “Açısal yörüngeler”AstroWay değişken yörüngeler per-planet (minimum iki gezegen kuralı) kullanır, ZET9 ve astro.com gibi. Varsayılan yörüngeler (doğum haritası için):
| Aspect | Sun | Moon | Inner | Jupiter | Outer |
|---|---|---|---|---|---|
| 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° |
Küçük açıları (36°, 40°, 45°, 72°, 108°, 135°, 144°) varsayılan olarak kapalı. ALL_ASPECTS ile açık olarak etkinleştirilebilir.
Kutup enlemleri
Section titled “Kutup enlemleri”|lat| > 66.5° için Placidus / Koch / Regiomontanus sistemleri matematiksel olarak tanımsızdır. Bu durumlarda Swiss Ephemeris otomatik olarak Porphyry döndürür ve API’miz bir uyarı ekler:
{ "system": "P", "warning": "Placidus system is undefined for lat=68.96° (> 66.5°). Swiss Ephemeris fell back to Porphyry..."}Sürekli kontrol
Section titled “Sürekli kontrol”Regression her PR için CI üzerinden kontrol edilir:
api-calc/tests/endpoints/: 873 snapshot, referans haritalara (Monroe / Diana / Einstein) + synastry / composite / davison karşı.github/workflows/api-accuracy.yml: PR’lerde otomatik çalıştırma- swetest CGI + Kerykeion’a karşı triangulation: haftalık
- Dependabot üzerinden upstream Swiss Ephemeris izleme
MCP Güvenilirliği: tiplenmiş çıktı
Section titled “MCP Güvenilirliği: tiplenmiş çıktı”Motor doğruluğu - güvenin yarısı. Diğer yarısı - çıktı sözleşmesi, ajan (Claude, ChatGPT, Cursor) doğrulayabilir. MCP sunucumuz “ham metin, kendiniz çözün” döndürmez:
- Tiplenmiş
structuredContent. 600’den fazla MCP aracı var ve çoğu katıoutputSchemayayınlıyor – MCP istemcisi doğrulanmış bir yapı alır, rastgele ayrıştırılması gereken bir satır değil. - Schema drift’e karşı koruma. CI testi
openapi-example-drifther regression-snapshot’ı örnekten türetilen şema ile doğrular: eğer endpoint çıktısı yayınlanan şemadan saparsa, derleme başarısız olur. Bu tür uyumsuzluklar MCP-32602 Output validation errorhatasına yol açar. - Hatalar: hatalardır. Araç hatası her zaman
isErrorbayrağı ve tiplenmiş kod (UPPER_SNAKE) ile döner. Biz asla modele ham stack trace ya da sunucu iç yollarını “veri” olarak vermeziz.
Yani MCP üzerinden entegrasyon, doğrudan REST çağrısı kadar öngörülebilir: /openapi.json’da tanımlanan, aracın döndüğü şeydir.
Bilinen sınırlamalar
Section titled “Bilinen sınırlamalar”- Aralık dışı tarihler (1800 öncesi ve 2399 sonrası): Moshier analytical kullanılır, doğruluk ~0.1” (SWIEPH DE431 dosyaları için < 0.01” karşı)
- True Lilith (id=13) vs Mean Lilith (id=12): fark 12°‘ye kadar – varsayılan olarak Mean Lilith (stabil davranış), True Lilith
planetIds: [13]ile erişilebilir - Topocentric vs geocentric: varsayılan olarak geocentric
Bağlantılar
Section titled “Bağlantılar”- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- NASA Eclipse Catalog: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
İletişim
Section titled “İletişim”Doğruluk soruları için: support@astroway.info adresine harita verileri ve beklenen referans (astro.com veya başka bir otoriter kaynak) ile yaz.