عارض الكوكبات
خريطة السماء الليلية
تطبيق عرض الكوكبات
مقدمة
تطبيق عرض الكوكبات هو أداة قوية لعشاق الفلك ومراقبي النجوم. يتيح للمستخدمين تصور السماء الليلية وتحديد الكوكبات المرئية بناءً على موقعهم وتاريخهم ووقتهم. يوفر هذا التطبيق التفاعلي خريطة سماء SVG بسيطة، تعرض أسماء الكوكبات، مواقع النجوم الأساسية، وخط الأفق، كل ذلك ضمن واجهة صفحة واحدة.
كيفية استخدام هذا التطبيق
- أدخل التاريخ والوقت (يتم تعيين القيم الافتراضية على التاريخ والوقت الحاليين إذا لم يتم تحديدهما).
- اختر استخدام موقعك الحالي أو أدخل إحداثيات خط العرض والطول يدويًا.
- سيقوم التطبيق تلقائيًا بإنشاء خريطة سماء SVG تعرض الكوكبات المرئية.
- استكشف الخريطة لتحديد الكوكبات، مواقع النجوم، وخط الأفق.
الإحداثيات السماوية وحساب الوقت
يستخدم التطبيق مزيجًا من الإحداثيات السماوية وحسابات الوقت لتحديد الكوكبات المرئية في السماء الليلية:
-
الصعود المستقيم (RA) والانحدار (Dec): هذه هي المعادلات السماوية لنظامي الطول والعرض، على التوالي. يتم قياس RA بالساعات (من 0 إلى 24)، وDec يتم قياسه بالدرجات (-90° إلى +90°).
-
الوقت الجانبي المحلي (LST): يتم حسابه باستخدام خط طول المراقب والتاريخ والوقت الحالي. يحدد LST أي جزء من الكرة السماوية فوق الرأس حاليًا.
-
زاوية الساعة (HA): هي المسافة الزاوية بين خط الزوال وجسم سماوي، ويتم حسابها كالتالي:
-
الارتفاع (Alt) والزاوية (Az): يتم حسابهما باستخدام الصيغ التالية:
حيث Lat هو خط عرض المراقب.
عملية الحساب
يقوم التطبيق بالخطوات التالية لتحديد الكوكبات المرئية ورسم خريطة السماء:
- تحويل إدخال المستخدم (التاريخ، الوقت، الموقع) إلى التاريخ الجولي والوقت الجانبي المحلي.
- لكل نجم في قاعدة بيانات الكوكبات: أ. حساب زاوية ساعته. ب. حساب ارتفاعه وزاويته. ج. تحديد ما إذا كان فوق الأفق (ارتفاع > 0).
- لكل كوكبة: أ. التحقق مما إذا كان عدد كافٍ من نجومها مرئيًا. ب. إذا كانت مرئية، تضمينها في قائمة الكوكبات للعرض.
- إنشاء خريطة SVG: أ. إنشاء قبة سماء دائرية. ب. رسم النجوم المرئية بناءً على زاويتها وارتفاعها. ج. رسم خطوط الكوكبات والتسميات. د. إضافة خط الأفق.
الوحدات والدقة
- التاريخ والوقت: يستخدم المنطقة الزمنية المحلية للمستخدم، مع خيار لتحديد فرق التوقيت UTC.
- الإحداثيات: خط العرض والطول بالدرجات العشرية، بدقة تصل إلى 4 منازل عشرية.
- مواقع النجوم: الصعود المستقيم بالساعات (من 0 إلى 24)، والانحدار بالدرجات (-90 إلى +90).
- عرض SVG: يتم تحويل وتغيير مقياس الإحداثيات لتناسب مساحة العرض، عادةً 1000x1000 بكسل.
حالات الاستخدام
يحتوي تطبيق عرض الكوكبات على تطبيقات متنوعة:
- الفلك الهواة: يساعد المبتدئين في تحديد الكوكبات والتعرف على السماء الليلية.
- التعليم: يعمل كأداة تعليمية في دروس الفلك والتعليم العلمي.
- التخطيط للتصوير الفلكي: يساعد في تخطيط جلسات تصوير السماء الليلية.
- أحداث مراقبة النجوم: يعزز ليالي مراقبة النجوم العامة من خلال توفير دليل بصري.
- الملاحة: يمكن استخدامه كأداة ملاحة سماوية أساسية.
البدائل
بينما يوفر تطبيق عرض الكوكبات طريقة بسيطة وسهلة لرؤية السماء الليلية، هناك أدوات أخرى متاحة:
- ستيلاريوم: برنامج كوكبي مفتوح المصدر أكثر شمولاً.
- خريطة السماء: تطبيق موبايل يستخدم الواقع المعزز لرؤية السماء في الوقت الحقيقي.
- عيون ناسا على السماء: يوفر تصور ثلاثي الأبعاد للنظام الشمسي وما بعده.
- سيلستيا: يقدم محاكاة ثلاثية الأبعاد للكون مع قاعدة بيانات واسعة من الأجسام السماوية.
التاريخ
تاريخ رسم الكوكبات وخرائط النجوم يعود إلى آلاف السنين:
- الحضارات القديمة: طور البابليون والمصريون واليونانيون قوائم النجوم الأولى وأساطير الكوكبات.
- القرن الثاني الميلادي: قدم بطليموس في كتابه "المجسطي" قائمة شاملة من النجوم والكوكبات.
- القرنين السادس عشر والسابع عشر: أدت فترة الاستكشاف إلى رسم الكوكبات الجنوبية.
- 1922: قامت الاتحاد الفلكي الدولي (IAU) بتوحيد 88 كوكبة حديثة.
- القرن العشرين: تطوير قواعد بيانات النجوم المحوسبة وبرامج الكواكب الرقمية.
- القرن الحادي والعشرين: جعلت التطبيقات المحمولة والأدوات المستندة إلى الويب عرض الكوكبات متاحًا للجميع.
بيانات الكوكبات
يستخدم التطبيق قاعدة بيانات كوكبات مبسطة مخزنة في ملف TypeScript:
export interface Star {
ra: number; // الصعود المستقيم بالساعات
dec: number; // الانحدار بالدرجات
magnitude: number; // سطوع النجم
}
export interface Constellation {
name: string;
stars: Star[];
}
export const constellations: Constellation[] = [
{
name: "الدب الأكبر",
stars: [
{ ra: 11.062, dec: 61.751, magnitude: 1.79 },
{ ra: 10.229, dec: 60.718, magnitude: 2.37 },
// ... المزيد من النجوم
]
},
// ... المزيد من الكوكبات
];
تسمح هذه البنية البيانات بإجراء بحث فعال ورسم الكوكبات.
عرض SVG
يستخدم التطبيق D3.js لإنشاء خريطة السماء SVG. إليك مثال مبسط لعملية العرض:
import * as d3 from 'd3';
function renderSkyMap(visibleConstellations, width, height) {
const svg = d3.create("svg")
.attr("width", width)
.attr("height", height)
.attr("viewBox", [0, 0, width, height]);
// رسم خلفية السماء
svg.append("circle")
.attr("cx", width / 2)
.attr("cy", height / 2)
.attr("r", Math.min(width, height) / 2)
.attr("fill", "navy");
// رسم النجوم والكوكبات
visibleConstellations.forEach(constellation => {
const lineGenerator = d3.line()
.x(d => projectStar(d).x)
.y(d => projectStar(d).y);
svg.append("path")
.attr("d", lineGenerator(constellation.stars))
.attr("stroke", "white")
.attr("fill", "none");
constellation.stars.forEach(star => {
const { x, y } = projectStar(star);
svg.append("circle")
.attr("cx", x)
.attr("cy", y)
.attr("r", 5 - star.magnitude)
.attr("fill", "white");
});
// إضافة اسم الكوكبة
const firstStar = projectStar(constellation.stars[0]);
svg.append("text")
.attr("x", firstStar.x)
.attr("y", firstStar.y - 10)
.text(constellation.name)
.attr("fill", "white")
.attr("font-size", "12px");
});
// رسم خط الأفق
svg.append("line")
.attr("x1", 0)
.attr("y1", height / 2)
.attr("x2", width)
.attr("y2", height / 2)
.attr("stroke", "green")
.attr("stroke-width", 2);
return svg.node();
}
function projectStar(star) {
// تحويل RA و Dec إلى إحداثيات x، y
// هذه هي إسقاط مبسط ويجب استبداله بإسقاط سماوي صحيح
const x = (star.ra / 24) * width;
const y = ((90 - star.dec) / 180) * height;
return { x, y };
}
المناطق الزمنية والمواقع
يتعامل التطبيق مع المناطق الزمنية والمواقع المختلفة عن طريق:
- استخدام المنطقة الزمنية المحلية للمستخدم كافتراضي.
- السماح بإدخال فرق التوقيت UTC يدويًا.
- تحويل جميع الأوقات إلى UTC للحسابات الداخلية.
- استخدام واجهة برمجة تطبيقات الجغرافيا لتحديد الموقع تلقائيًا.
- توفير إدخال يدوي لخط العرض والطول.
اعتبارات تلوث الضوء
بينما لا يأخذ التطبيق تلوث الضوء في الاعتبار بشكل مباشر، يجب أن يكون المستخدمون على علم بأن:
- قد ترى المناطق الحضرية عددًا أقل من النجوم بسبب تلوث الضوء.
- تظهر التطبيق الرؤية النظرية، بافتراض ظروف رؤية مثالية.
- يمكن أن تساعد سطوع النجوم في قاعدة البيانات في تقدير الرؤية في ظروف مختلفة.
حساب خط الأفق
يتم حساب خط الأفق بناءً على موقع المراقب:
- بالنسبة لأفق مسطح (مثل البحر)، يكون خطًا مستقيمًا عند ارتفاع 0°.
- بالنسبة للمواقع المرتفعة، يتم حساب انحدار الأفق: (بالدرجات) حيث h هو الارتفاع فوق مستوى سطح البحر بالمتر.
التغيرات الموسمية
يأخذ التطبيق في الاعتبار التغيرات الموسمية في الكوكبات المرئية عن طريق:
- استخدام التاريخ المدخل لحساب الموقع الدقيق للنجوم.
- عرض كوكبات مختلفة بناءً على الوقت من السنة.
- توفير معلومات حول الكوكبات الدائمة التي تكون مرئية دائمًا من موقع المستخدم.
المراجع
- "كوكبة." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/Constellation. تم الوصول إليه في 2 أغسطس 2024.
- "نظام الإحداثيات السماوية." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/Celestial_coordinate_system. تم الوصول إليه في 2 أغسطس 2024.
- "فهرس النجوم." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/Star_catalogue. تم الوصول إليه في 2 أغسطس 2024.
- "تاريخ الكوكبات." الاتحاد الفلكي الدولي، https://www.iau.org/public/themes/constellations/. تم الوصول إليه في 2 أغسطس 2024.
- "D3.js." الوثائق المعتمدة على البيانات، https://d3js.org/. تم الوصول إليه في 2 أغسطس 2024.