Hesaplama motoru
Bu API'nin döndürdüğü her rakam bir tablodan ya da bir modelden değil, efemeristen gelir. Altta ne olduğunu ve neyi hesaplamayacağımıza dair çizgiyi nereye çektiğimizi burada anlatıyoruz.
Efemeris
Konumlar, uzay araçlarının seyrüseferinde kullanılan veri setiyle aynı olan NASA JPL gezegen efemerisinden gelir. Bu, MS 500–2999 aralığını kapsayan 105 MB'lık tablolanmış konum verisi ve buna ek olarak 735 sabit yıldız demektir.
Bunun önemi şu: alternatifi, bir gazete köşesi için yeterince yakın ama bir harita için yetersiz kalan aritmetiktir. Ortalama hareket formülleri yüzyıllar içinde derecelerce sapar. Bu sapma 1890 ya da 2090 doğumlu birinin haritasında ortaya çıkar; bir varga haritasında ise biraz farklı değil, tamamen farklı bir sonuca dönüşür. D60'ta yarım derece, bir gezegeni bir sonraki bölüme taşır.
Sidereal, ama hangi sidereal
Vedik astroloji sidereal'dir: konumlar hareket eden ekinokstan değil, gökyüzündeki sabit bir başlangıç noktasından ölçülür. İkisi arasındaki farka ayanamsa denir; bugün yaklaşık 24°'dir ve üzerinde uzlaşılmış tek bir değeri yoktur.
Bu yüzden bir parametredir. 48 ayanamsa desteklenir: Lahiri, Raman, Krishnamurti, Fagan-Bradley, Yukteshwar, Suryasiddhanta ve diğerleri. Varsayılanın Lahiri olmasının nedeni doğru olan o olduğu için değil, Hindistan hükümetinin standardı olmasıdır.
{
"date_time": "1990-08-15T10:30:00+05:30",
"latitude": 26.9124,
"longitude": 75.7873,
"timezone_as_float": 5.5,
"ayanamsa": "KRISHNAMURTI"
}Ayanamsa konusunda anlaşamayan iki astrolog bu API'yi kullanıp ikisi de beklediği haritayı alabilir. Tek bir ayanamsayı koda gömen bir API ise henüz sonuçlanmamış bir tartışmada sessizce taraf tutmuş olur.
Neleri kapsıyor
Hesapladıkları şeye göre gruplanmış 299 endpoint:
Hız
Medyan sunucu süresi 62 ms; endpoint'lerin %76 kadarı 100 ms'nin altında. Ölçüm, yayımlanan tüm örnekler yerel bir kurulumda çalıştırılarak yapıldı. Efemeris belleğe eşlendiği için bir haritanın maliyeti disk erişimi değil, aritmetiğin kendisidir.
Bir çağrı daha yavaşsa bunun nedeni işin gerçekten daha büyük olmasıdır. Transit araması bir tarih aralığını tarar; PDF raporu ise yaklaşık yirmi beş endpoint'i tek bir belgede birleştirir ve tek çağrı olarak ücretlendirilir.
Belirlenimcilik
Aynı girdi her zaman aynı çıktıyı verir. Arada ne örnekleme ne de bir model vardır; bugün çıkarılan bir harita ile aynı haritanın gelecek yıl çıkarılanı bayt bayt aynıdır. Yanıtları önbelleğe alınabilir kılan da, 1.783 test fonksiyonunun aralık yerine kesin değerleri doğrulayabilmesini sağlayan da budur.
Bu, bir uyuşmazlığın kontrol edilebileceği anlamına da gelir. Bizim Ay'ımız ile sizin yazılımınızın Ay'ı farklıysa ikisinden biri yanlıştır ve hangisi olduğunu ayanamsa ya da saat dilimi gösterir. İkisi de “aşağı yukarı doğru” olmaz.
Neleri hesaplamıyoruz
Motor neredeyse her şey için bir rakam üretebilir. Ama bu rakamların bazıları, okuyanın sandığı anlama gelmez; o endpoint'ler de bu yüzden yok.
- Lal Kitab atasal borçları. Sekiz borcun adları kaynaklarda tutarlıdır, ama her birini doğuran koşullar tutarlı değildir. Yalnızca pitra rin için yayımlanmış kurallar bile aynı haritada farklı sonuçlar verir. Birinin ataları hakkında, tesadüfen hangi kitabı okuduğumuza bağlı bir hüküm yayımlamayız.
- Kuralını türetemediğimiz alanlar. Bir rakibin döndürdüğü bir değeri bir kaynağa dayandıramadıysak o alan yanıtta yer almaz ve yanıt nedenini açıklar. Çağıranın kontrol etme imkânı olmayan, makul görünen bir tahmin döndürmeyiz.
- Tıbbi, hukuki ya da mali tavsiye olarak sunulabilecek her şey. Çare metinleri geleneksel yorumlardır ve öyle etiketlenir.
İki ekolün gerçekten ayrıştığı ve ikisinin de savunulabilir olduğu durumlarda yanıt hangisini uyguladığını belirtir. Böylece sonucu olduğu gibi kabul etmek yerine kontrol edebilirsiniz.
Deneyin
curl -X POST https://api.occultapi.com/api/astro/planet-positions/ \
-H 'X-API-Key: yt_live_your_key_here' \
-H 'Content-Type: application/json' \
-d '{
"date_time": "1990-08-15T10:30:00+05:30",
"latitude": 26.9124,
"longitude": 75.7873,
"timezone_as_float": 5.5,
"ayanamsa": "LAHIRI"
}'Ya da tek satır kod yazmadan playground üzerinde çalıştırın.