دقة الحسابات
يستخدم AstroWay API Swiss Ephemeris (كود C الرسمي من Astrodienst، مبتكري astro.com) - نفس المحرك الذي يعمل عليه المنجمون المحترفون لأكثر من 30 عامًا في Solar Fire ($495)، Kepler ($995)، Astro Gold ($29.99/شهريًا) و Janus. لقد قمنا بتجميعه في WebAssembly وعرضناه كطبقة REST API، بدون رسوم وساطة. كل نقطة نهاية حسابية أساسية مغطاة باختبارات لقطة الانحدار (regression snapshot tests)؛ تم التحقق من دقة المحرك من خلال التثليث (triangulation) مع ثلاثة مصادر مستقلة + مقابل كتالوج كسوف ناسا لـ 5 آلاف عام (NASA 5-Millennium Eclipse Catalog):
- مواقع الكواكب: متوسط
0.0013", أقصى0.561"مقابل swetest CGI Astrodienst الرسمي (تم القياس في 2026-07-29 على 130 قياسًا). التفاصيل حسب الأجرام أدناه - رؤوس البيوت Placidus:
0.000"تطابق تام - الكسوف والخسوف:
< 1 دقيقةمقابل كتالوج كسوف ناسا - خطوط ACG:
< 1.5 كمعند خط الاستواء مقابل swetest - شروق/غروب الشمس:
< 10 ثوانٍمقابل timeanddate.com - فراغ المسار القمري (Moon VOC)، الدخول (ingresses)، اقترانات الكواكب: دقة تصل إلى جزء من الثانية
المنهجية: كيف تم القياس بالضبط
Section titled “المنهجية: كيف تم القياس بالضبط”هذه الأرقام ليست تقديرًا، بل هي نتيجة تشغيل. يأخذ السكريبت 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 ثانية قوسية». أظهرت قياسات 2026-07-29 أن نبتون وبلوتو وكايرون لا يلتزمون بذلك، لذلك تم استبدال الوعد بالأرقام الفعلية. كايرون والكواكب الخارجية لديها انحراف أكبر لأن مواقعها مأخوذة من مجموعة مضغوطة من التقاويم الفلكية (ephemerides) في تجميع WASM.
يمكنك إعادة إنتاج ذلك بنفسك: api-calc/scripts/accuracy-vs-swetest.mjs يقوم بنفس هذه الاستعلامات ويطبع نفس الجدول.
تحقق بنفسك. السكريبت الذي تم قياس الأرقام أعلاه به موجود في المستودع العام تحت ترخيص MIT: astroway/astrology-accuracy-benchmark. إنه لا يعمل معنا فقط: محول لأي API آخر هو ثلاثون سطرًا، لذا يمكن تشغيل نفس الـ 130 قياسًا مقابل منافس ومقارنتها. مفتاح بيئة الاختبار (sandbox key) يكفي.
المحرك
Section titled “المحرك”| المكون | القيمة |
|---|---|
| المكتبة | Swiss Ephemeris C code (aloistr/swisseph) |
| الإصدار | upstream Astrodienst C code |
| الروابط | swisseph-wasm (WebAssembly في Node.js) |
| التقويم الفلكي | DE431 JPL ephemeris (عبر ملفات .se1) |
| الاحتياطي | Moshier analytical (للتواريخ خارج 1800-2399) |
| مشاركة الكود | Shared @/core من app.astroway.info - محرك واحد، وسيلتا نقل |
المنهجية
Section titled “المنهجية”يتم التحقق من الدقة من خلال التثليث (triangulation) - مقارنة بثلاثة مصادر مستقلة:
1. swetest CGI (المعيار)
Section titled “1. swetest CGI (المعيار)”التطبيق المرجعي الرسمي لـ Swiss Ephemeris من Astrodienst نفسها - الفريق الذي أنشأ Astro.com ويخدم ملايين المنجمين حول العالم. المصدر العام الأكثر موثوقية. محركنا متطابق (0.00–0.07 ثانية قوسية من الانحراف).
2. Kerykeion (بايثون)
Section titled “2. Kerykeion (بايثون)”مكتبة بايثون مستقلة تستخدم روابط pyswisseph بدلاً من WASM الخاص بنا. تؤكد أن طبقة WASM الخاصة بنا لا تشوه البيانات.
3. Prokerala API
Section titled “3. Prokerala API”واجهة برمجة تطبيقات Swiss Ephemeris عن بعد (sidereal Lahiri). الانحراف المنهجي (Systemic drift) من 8 إلى 17 ثانية قوسية مرتبط بإصدارات مختلفة من صيغة Lahiri ayanamsa، وليس بدقة المحرك.
نتائج التثليث
Section titled “نتائج التثليث”| الخريطة | مقابل swetest (Astrodienst) | مقابل Kerykeion (بايثون) | مقابل Prokerala API |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (منهجي) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (منهجي) |
| Einstein 1879 | 0.07” | أثر LMT في Kerykeion | 14.96” (منهجي) |
مجموعة اختبارات الانحدار على مستوى نقاط النهاية
Section titled “مجموعة اختبارات الانحدار على مستوى نقاط النهاية”كل نقطة نهاية حسابية أساسية مغطاة باختبارات لقطة مجمدة (frozen snapshot tests) على 3 خرائط مرجعية (مونرو / ديانا / أينشتاين) = 873 لقطة.
تكتشف مجموعة اللقطات:
- أخطاء ربط البيانات المدخلة - معرف كوكب خاطئ، التوقيت العالمي (UT)، نظام البيوت
- المعالجة اللاحقة - التقريب، تحويل الوحدات، فقدان الإشارة
- اختلاف الإعدادات الافتراضية - العقدة المتوسطة مقابل العقدة الحقيقية، مركزية الأرض مقابل مركزية الموقع
- انحراف المخطط (Schema drift) - فشل التحقق من الصحة في اكتشاف شكل غير صحيح
- النشر القديم (Outdated deploy) - توزيع الإنتاج لا يتوافق مع الكود
التسامح: 5e-5° (≈0.18 ثانية قوسية) افتراضيًا لجميع الحقول الرقمية.
معايير مفصلة
Section titled “معايير مفصلة”مواقع الكواكب (المدارية، مقابل swetest)
Section titled “مواقع الكواكب (المدارية، مقابل swetest)”| الخريطة | التاريخ | أقصى انحراف |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
رؤوس البيوت Placidus (مقابل swetest)
Section titled “رؤوس البيوت Placidus (مقابل swetest)”| الخريطة | انحراف ASC | انحراف MC | أقصى انحراف لرأس البيت |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
الكسوف والخسوف (مقابل كتالوج ناسا لـ 5 آلاف عام)
Section titled “الكسوف والخسوف (مقابل كتالوج ناسا لـ 5 آلاف عام)”| الحدث | أقصى ناسا | أقصى لدينا | الانحراف |
|---|---|---|---|
| 2025-03-14 خسوف كلي قمري | 06:58 UT | 06:58 UT | 0.8 دقيقة |
| 2025-03-29 كسوف جزئي شمسي | 10:47 UT | 10:47 UT | 0.5 دقيقة |
| 2025-09-07 خسوف كلي قمري | 18:11 UT | 18:11 UT | 0.8 دقيقة |
| 2025-09-21 كسوف جزئي شمسي | 19:41 UT | 19:42 UT | 1.0 دقيقة |
الخرائط الفلكية (مقابل صيغة RA من swetest)
Section titled “الخرائط الفلكية (مقابل صيغة RA من swetest)”تستخدم جميع خطوط MC/IC/ASC/DSC الصيغة الصحيحة longitude = RA − GMST (معيار كينيث باوزر). الانحراف عن المعيار: < 1.5 كم عند خط الاستواء لجميع الكواكب.
شروق / غروب الشمس (مقابل timeanddate.com)
Section titled “شروق / غروب الشمس (مقابل timeanddate.com)”| الموقع | التاريخ | المعلمة | الانحراف |
|---|---|---|---|
| London | 2026-04-15 | Sunrise | 0.6 ث |
| London | 2026-04-15 | Sunset | 9 ث |
المواقع القطبية (|خط العرض| > 66.5°) تُرجع تلقائيًا polarState + تحذيرًا بأن الساعات الكوكبية العادية غير محددة.
أوربس الجوانب
Section titled “أوربس الجوانب”يستخدم AstroWay أوربسًا متغيرًا لكل كوكب (قاعدة الحد الأدنى لكوكبين)، كما هو الحال في ZET9 و astro.com. الأوربس الافتراضي (للخريطة الفلكية):
| الجانب | 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° |
الجوانب الثانوية (36°، 40°، 45°، 72°، 108°، 135°، 144°) معطلة افتراضيًا. يتم تمكينها صراحةً عبر ALL_ASPECTS.
خطوط العرض القطبية
Section titled “خطوط العرض القطبية”بالنسبة لـ |خط العرض| > 66.5°، فإن أنظمة Placidus / Koch / Regiomontanus غير محددة رياضيًا. في مثل هذه الحالات، يُرجع Swiss Ephemeris تلقائيًا Porphyry، وتضيف واجهة برمجة التطبيقات الخاصة بنا تحذيرًا:
{ "system": "P", "warning": "Система Placidus не визначена для lat=68.96° (> 66.5°). Swiss Ephemeris підставив Porphyry..."}التحقق المستمر
Section titled “التحقق المستمر”يتم التحقق من الانحدار في كل طلب سحب (PR) عبر CI:
api-calc/tests/endpoints/- 873 لقطة مقابل الخرائط المرجعية (مونرو / ديانا / أينشتاين) + التوافق / المركب / دافيسون.github/workflows/api-accuracy.yml- تشغيل تلقائي عند طلب السحب (PR)- التثليث مقابل swetest CGI + Kerykeion - أسبوعيًا
- مراقبة Swiss Ephemeris الأصلي عبر Dependabot
موثوقية MCP - مخرجات مُحددة النوع
Section titled “موثوقية MCP - مخرجات مُحددة النوع”دقة المحرك هي نصف الثقة. النصف الآخر هو عقد الإخراج، الذي يمكن للوكيل (Claude، ChatGPT، Cursor) التحقق من صحته. خادم MCP الخاص بنا لا يُرجع «نصًا خامًا، اكتشف الأمر بنفسك»:
structuredContentمُحدد النوع. أكثر من 600 أداة MCP، والغالبية العظمى منها تنشرoutputSchemaصارمًا - يتلقى عميل MCP بنية صالحة، وليس سلسلة نصية يجب تحليلها عشوائيًا.- الحماية من انحراف المخطط (schema drift). يقوم اختبار CI
openapi-example-driftبالتحقق من صحة كل لقطة انحدار (regression snapshot) مقابل المخطط المستنتج من مثاله الخاص: إذا اختلف الإخراج الفعلي لنقطة النهاية عن المخطط المنشور، سيفشل البناء. هذا النوع من التناقضات هو الذي يسبب خطأ MCP-32602 Output validation error. - الأخطاء هي أخطاء. يتم دائمًا إرجاع فشل الأداة مع علامة
isErrorورمز مُحدد النوع (UPPER_SNAKE). نحن لا نُرجع أبدًا تتبع مكدس خام (raw stack trace) أو مسارات خادم داخلية كـ «بيانات» للنموذج.
أي أن التكامل عبر MCP يمكن التنبؤ به تمامًا مثل استدعاء REST المباشر: ما هو موصوف في /openapi.json هو ما تُرجعه الأداة.
قيود معروفة
Section titled “قيود معروفة”- تواريخ خارج النطاق (قبل 1800 وبعد 2399): يتم استخدام Moshier analytical، بدقة ~0.1” (مقابل < 0.01” لـ SWIEPH مع ملفات DE431)
- ليليث الحقيقية (id=13) مقابل ليليث المتوسطة (id=12): فرق يصل إلى 12° - افتراضيًا ليليث المتوسطة (سلوك مستقر)، ليليث الحقيقية متاحة عبر
planetIds: [13] - مركزية الموقع (Topocentric) مقابل مركزية الأرض (geocentric): افتراضيًا مركزية الأرض
- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- كتالوج كسوف ناسا: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
اتصل بنا
Section titled “اتصل بنا”بخصوص مسائل الدقة: راسلنا على support@astroway.info مع بيانات الخريطة والمعيار المتوقع (astro.com أو أي مصدر موثوق آخر).