آي راف

آي راف (مرفق تحليل وتقليل الصور) هو حزمة برمجية طُورت في االمرصد الوطني لعلم الفلك البصري (NOAO)، وتهدف إلى معالجة وتقليل الصور الفلكية والأطياف التي تكون على شكل مصفوفات بكسل. تعتمد هذه البيانات بشكل أساسي على أجهزة الكشف عن الصور مثل أأجهزة اقتران الشحنات (CCD) (CCD). يتوفر IRAF لجميع أنظمة التشغيل الرئيسية للحواسيب المركزية وأجهزة الكمبيوتر المكتبية، وقد صُمم ليكون متعدد المنصات، ويدعم أنظمة التشغيل VMS وأنظمة التشغيل الشبيهة بـيونكس (UNIX). في السابق، كان استخدامه ممكنًا على نظام مايكروسوفت ويندوز بفضل Cygwin، ويمكن القيام بذلك اليوم باستخدام نظام ويندوز الفرعي لينكس (Windows Subsystem for Linux). حاليًا، يُستخدم بشكل أساسي على نظامي ماك أو إس (macOS) ولينكس (Linux).

تُنظم أوامر IRAF، التي تُعرف بـالمهام (Tasks)، في هياكل تُسمى الحزم (Packages). يمكن إضافة حزم إضافية إلى آي راف، وقد تحتوي هذه الحزم بدورها على حزم أخرى. تتوفر العديد من الحزم من قبل المرصد الوطني لعلم الفلك البصري (NOAO) والمطورين الخارجيين، والذين يركزون غالبًا على فرع معين من البحث أو منشأة فلكية محددة.

تتضمن الوظائف المتاحة في آي راف معايرة التدفقات ومواقع الأجسام الفلكية داخل الصورة، والتعويض عن الاختلافات في الحساسية بين وحدات بكسل الكاشف، أو الجمع بين صور متعددة أو قياس الانزياحات الحمراء لخطوط الامتصاص أو الانبعاث في الطيف .

على الرغم من أن آي راف لا يزال يحظى بشعبية كبيرة بين علماء الفلك، فقد تم إيقاف التطوير المؤسسي والصيانة. يتم صيانة آي راف كبرنامج مجتمعي.  

 تاريخ 
بدأ مشروع IRAF في خريف عام 1981 في مرصد كيت بيك الوطني. في عام 1982، تم الانتهاء من التصميم الأولي والإصدار الأول من لغة الأوامر (CL). تأسست بعدها مجموعة IRAF، وكان دوغ تودي هو مصمم النظام والمبرمج الرئيسي. في عام 1983، اختار معهد علوم تلسكوب الفضاء IRAF كبيئة لنظام تحليل البيانات الخاص به، SDAS، وقام بنقل النظام إلى VMS. صدر أول إصدار داخلي لـ IRAF في عام 1984، وبعد توزيع محدود على عدد قليل من المواقع الخارجية، كان الإصدار العام الأول في عام 1987. 

في منتصف تسعينيات القرن العشرين، انطلق مشروع "فتح آي راف" لمعالجة المشاكل التي ظهرت آنذاك. وشمل ذلك ربط اللغات، وطريقة لاستخدام مكونات آي راف دون الحاجة إلى بيئة آي راف الكاملة، وأنواع بيانات جديدة، وأكواد مستخدم قابلة للتحميل ديناميكيًا. ومع ذلك، لم يُستكمل هذا المشروع قط.

في أواخر التسعينيات من القرن العشرين، تباطأ تطور القوات الجوية الإيرانية (آي راف ) بشكل ملحوظ، حيث اعتبر النظام حينها قد بلغ مرحلة النضج. تم نقل دعم المستخدمين إلى منتدى ويب في عام 2005، وتم تخفيض مستوى التطوير الجديد للنظام الأساسي رسميًا إلى حدٍ منخفض للغاية. ومع ذلك، استمر العمل التطوعي لمطوري آي راف ، وقاموا بتوزيع بعض الإصدارات الوسيطة غير الرسمية. 

من عام 2006 إلى عام 2009، بُذلت محاولة أولى لنقل آي راف إلى بنية 64 بت في <b>معهد علوم الفضاء والملاحة الفضائية</b> باليابان. ورغم أن هذا الجهد لم يتطور إلى إصدار رسمي جديد لـ آي راف ، فقد ساهم بأجزاء كبيرة في عملية النقل إلى 64 بت التي قام بها NOAO.

استأنفت المرصد الوطني لعلم الفلك البصري (NOAO) جهود التطوير في عام 2007، حيث قامت بنقل النظام إلى بنية 64 بت وأضافت إليه قدرات المرصد الافتراضي. انتهت هذه المرحلة في عام 2013 مع إصدار الإصدار 2.16.1.

في عام 2017، تم نقل الكود المصدري لـ IRAF إلى منصة GitHub. وفي محاولة لتعبئة برنامج آي راف لنظام ديبان Debian، تم تنظيفه من أي كود مصدري غير حر متبقٍ، ومنذ ذلك الحين، تتم صيانته بواسطة المجتمع فقط. بعد عدة إصدارات أولية، صدر الإصدار 2.17 في أوائل عام 2022. 

في عام 2023، استأنفت NOIRLab(الخلف لمؤسسة NOAO) بعض أعمال التطوير، وأصدرت نسختها الخاصة 2.18، مع نطاق محدود لدعم خط أنابيب تقليل بيانات Gemini القديم. تم دمج التغييرات ذات الصلة لاحقًا في إصدار المجتمع 2.18. 
+الإصدارات الرئيسية لـ IRAF  إصدار تاريخ الافراج عنه ملاحظات 2.1 1984 الإصدار الداخلي الأول 2.2 فبراير 1986 إصدار عام محدود 2.3 14 أغسطس 1986 دعم STSDAS 2.4 19 أكتوبر 1986 2.5 8 يوليو 1987 أول إصدار عام 2.6 24 فبراير 1988 2.7 4 ديسمبر 1988 2.8 30 يونيو 1989 2.9 10 أبريل 1990 2.10 7 يوليو 1992 2.11 27 أغسطس 1997 2.12 25 يناير 2002 2.13 2006 إصدارات غير رسمية من متطوعي NOAO 2.14 1 ديسمبر 2007 2.15 22 نوفمبر 2010 2.16 22 مارس 2012 آخر إصدار رئيسي من NOAO 2.17 4 يناير 2022 أول إصدار مجتمعي 2.18 5 أبريل 2024 دمج تغييرات NOIRLab

 الترخيص 
يتم ترخيص آي راف عمومًا وفقًا لنظام ترخيص MIT. تحتوي الإصدارات الأقدم على بعض البرامج غير المجانية. على وجه الخصوص، قيّد كود الرسومات التابع للمركز الوطني لأبحاث الغلاف الجوي إعادة توزيع IRAF قبل إزالته في الإصدار 2.16. بالإضافة إلى ذلك، استخدمت الإصدارات القديمة الكود المأخوذ من كتاب Numerical Recipes بموجب ترخيص مختلف. تم إزالة هذا الكود أو استبداله بمصدر مفتوح في الإصدارات بعد 2.16.1. سمح هذا بتوزيع حزم آي راف في توزيعات لينكس السائدة مثل ديبان أو Ubuntu.

 تصميم النظام 
يتكون نظام آي راف وقت التشغيل من أربعة مكونات أساسية: 

 تُعد حزم التطبيقات مجموعة منظمة من المهام المحمولة لتقليل البيانات العلمية وتحليلها، ولكن أيضًا لأدوات النظام.
 لغة الأوامر ( CL ) هي واجهة المستخدم التفاعلية الافتراضية ويتم استخدامها أيضًا كلغة برمجة نصية للمهام في حزم التطبيقات.
 يوفر نظام التشغيل الافتراضي ( VOS ) واجهة محمولة لمهام التطبيق. تم تصميمه على غرار وظائف نظام Unix، ولكن مع واجهة برمجة التطبيقات للغة Subset Preprocessor ( SPP ) الخاصة بـ آي راف.
 واجهة نظام المضيف ( HSI ) هي النواة التي توفر واجهة بين نظام المضيف ووظائف نظام VOS. كما أنه يوفر الأدوات اللازمة لبدء تشغيل النظام من المصدر. يعد مُجمِّع SPP أيضًا جزءًا من HSI.

يعتمد نظام HSI بشكل أساسي على النظام. يمكن نقل جميع المكونات الأخرى باستخدام الوظائف التي يوفرها HSI. بهذه الطريقة، تتطلب عملية النقل إلى نظام جديد إجراء تغييرات في هذا المكون فقط. ومع ذلك، كان التصميم الأولي يعتمد ضمنًا على الاستخدام الشامل لأنواع البيانات ذات 32 بت، ولذلك فإن النقل إلى بنية 64 بت يتطلب جهودًا كبيرة ليس فقط في HSI ولكن في جميع مكونات النظام.

 حزم التطبيقات 
تُهيكل حزم التطبيقات بشكل متكرر في حزم فرعية ومهام. يمكن تقسيمها إلى فئتين: النظام العام وأدوات معالجة البيانات الأساسية، والحزم الخاصة بتقليص البيانات الفلكية وتحليلها. تُكتب المهام بشكل أساسي في لغتي اس بي بي(spp) وسي ال cl.

 حزم النظام 
توجد حزم النظام في الحزمة الأساسية لـ آي راف وتوفر أدوات لـ سي ال (cl)، وأدوات مساعدة مفيدة لنظام التشغيل، وأدوات مساعدة علمية أساسية، في ذلك معالجة الصور:

 داتايو
 تحويل تنسيق البيانات (تنسيق الصور FITS ، آي راف، إلخ.)
 الصور
 معالجة الصور النقطية العامة وعرضها
 القوائم
 معالجة القائمة
 حبكة
 أدوات رسم الرسومات المتجهة
 أدوات ناعمة
 أدوات تطوير البرمجيات وصيانة النظام
 نظام
 أدوات النظام
 المرافق
 أدوات مساعدة متنوعة، بما في ذلك nttools للتعامل مع الجداول.

 حزم علم الفلك البصري 
تُستخدم حزم NOAO لتحليل بيانات علم الفلك البصري. معظم هذه المهام عامة، ولكن حزمة imred تحتوي أيضًا على مهام لتقليل البيانات لأدوات محددة. بعض الحزم المهمة هي :

 إمريد
 حزمة تخفيضات الصور، تحتوي على مهام عامة لتخفيض البيانات الفلكية ولأجهزة KPNO المحددة
 بيانات فنية
 حزمة توليد البيانات الاصطناعية. يمكن إنشاء كتالوجات اصطناعية، وأطياف ثنائية الأبعاد وثنائية الأبعاد، وإنشاء صور من النجوم الاصطناعية والمجرات والضوضاء والأشعة الكونية وما إلى ذلك لأغراض الاختبار.
 علم الفلك
 حزمة القياسات الفلكية للحصول على إحداثيات فلكية للأجسام في الحقول النجمية
 ديجيبوت
 حزمة قياس الضوء النجمي الرقمي

تصغير| مخطط IRAF من حزمة onedspec أثناء العمل.

 أوندسبيكس
 حزمة تحليل وتخفيض البيانات الطيفية أحادية البعد. إحدى المهام المهمة في هذه الحزمة هي splot ، وهي أداة رسومية لتحليل الأطياف.
 تودسبيك
 حزمة التحليل والتخفيض الطيفي ثنائي الأبعاد، نفس العمليات للأطياف ثنائية الأبعاد ( الشق الطويل ، متعدد المواصفات)
 صورة الأمواج
 حزمة تحليل تساوي ضوء المجرة
 أستكات
 حزمة الوصول إلى الكتالوج الفلكي والمسوحات

 الحزم الخارجية 
كانت إحدى نقاط القوة في آي راف هي وجود العديد من الحزم الخارجية التي تعمل على حل مشكلات محددة أو تنفيذ خطوط أنابيب متخصصة لتقليل البيانات. ومن بين هذه الحزم نذكر على سبيل المثال:

 فيتسوتيل
 أدوات مساعدة لملفات FITS ذات الامتداد المفرد والمتعدد
 طاولة قابلة للطي
 حزمة آي راف( IRAF) للأطياف الجدولية
 ctio
 أدوات مرصد سيررو تولولو للبلدان الأمريكية
 ستداس
 نظام برمجي من معهد علوم تلسكوب الفضاء لمعايرة وتحليل البيانات من تلسكوب هابل الفضائي . يستمر دعم المهام المحددة من حزمة stsdas في حزمة st4gem . تم الآن تضمين حزمة الجداول الأصلية من STSci كـ utilities.nttables في حزم النظام.
 ستيكف
 مهام آي راف التي تم تطويرها في منشأة التنسيق الأوروبية للتلسكوب الفضائي
 رفساو
 حزمة السرعة الشعاعية من مرصد سميثسونيان للفيزياء الفلكية
 كراسي المراحيض
 أدوات نظام إحداثيات صورة العالم من تأليف جيسيكا مينك
 استخراج الطيف AXe
 برنامج استخراج وتصور الطيف (aXe) هو أداة لمعالجة الصور الطيفية الفلكية كبيرة الحجم بدون شقوق، مثل تلك التي يتم الحصول عليها باستخدام الكاميرا المتقدمة للمسح على (ACS) تلسكوب هابل الفضائي . تتكون الحزمة من عدة مهام، كل منها تؤدي خطوة اختزال محددة على البيانات لإنتاج الأطياف المستخرجة النهائية. يمكن للمستخدم بعد ذلك تحليل الأطياف والتحكم فيها، وإذا لزم الأمر، إعادة تشغيلها بمعلمات متغيرة قليلاً حتى يتم التوصل إلى نتيجة مرضية. يمكن أن تحتوي صورة <b>grism</b> العميقة لـ ACS WFC على أطياف قابلة للكشف لآلاف الأجسام. إن التحقق من كل طيف على حدة أمر مرهق للغاية. للمساعدة في تحليل كامل ثروة بيانات المستخدمين، تم تطوير المهمة الإضافية aXe2web لإنتاج صفحات ويب قابلة للتصفح من بيانات طيفية مخفضة. هذا يمكّن فحص مئات الأطياف بسرعة وتمييزها. يمكن استخدام الأداة لإلقاء نظرة سريعة أو كمرافق معاينة في خطوط أنابيب البيانات أو قواعد البيانات أو حتى للمراصد الافتراضية.

 جيميني خط أنابيب تقليل البيانات لمرصد جيميني

ومع ذلك، لم يعد العديد من هذه الحزم يُحظى بالصيانة حاليًا. كما تطلب النقل إلى بنية 64 بت جهدًا كبيرًا، ولم تُنقل جميع الحزم الخارجية بشكل كامل، وبالتالي لا يمكن استخدامها إلا في بيئة 32 بت.

 المهام المحددة من قبل المستخدم 
يتيح IRAF للمستخدمين كتابة مهامهم الخاصة بطريقتين رئيسيتين:

 عن طريق كتابة نصوص إجراءات غير مجمعة (لغة الأوامر، CL): هذه الطريقة تسمح للمستخدمين بكتابة البرامج النصية مباشرةً باستخدام لغة الأوامر الخاصة بـIRAF.
 من خلال برامج المعالجة المسبقة للمجموعة الفرعية المترجمة (SPP): تتيح هذه الطريقة للمستخدمين كتابة برامج مترجمة، مما يوفر أداءً أفضل في بعض الحالات.

تتوفر وثائق تعليمية مفصلة لكلا الطريقتين لمساعدة المستخدمين على البدء وتطوير مهامهم المخصصة.. 

 اللغات الخاصة بـ IRAF 

 لغة الأوامر 
تُعد لغة الأوامر سي ال (CL) بمثابة الواجهة الداعمة للأوامر ووقت التشغيل بين المستخدم في محطة الكمبيوتر الخاصة به وبرامج التطبيق التي يقوم بتنفيذها. يقوم المستخدم بكتابة أوامره إلى لوحة التحكم سي ال (CL)، وتقوم هذه اللوحة بإجراء أي مهام أو عمليات معالجة للملفات ضرورية لتنفيذ الأوامر. في الإصدارات اللاحقة، تم توسيع سيي ال CL الأصلي إلى ECL.

يعمل سي ال CL (Command Language) في المقام الأول كغلاف وينظم العمل مع النظام والتطبيقات. هناك ثلاثة أنواع من المهام التي يمكن لـ CL تنفيذها:

 المهام الأصلية (Native Tasks): وهي جزء من ملفات IRAF القابلة للتنفيذ والمترجمة.
 البرامج النصية (Script Tasks): وهي مهام مكتوبة بلغة CL نفسها.
 المهام الأجنبية (Foreign Tasks): وهي برامج خارجية أو برامج نصية يتم تنفيذها بواسطة CL.

لكل مهمة، قد يوجد ملف معلمات يضم وصفًا لجميع المعلمات التي تستخدمها المهمة والتي يجب أن تكون معروفة ومُدارة بواسطة CL.

في الإصدارات اللاحقة، تم توسيع CL الأصلي إلى ECL (Enhanced Command Language)، الذي يتميز بسطر أوامر قابل للتحرير كميزة رئيسية. وقد تم أيضًا تطوير إصدار يتيح الوصول المباشر إلى المرصد الافتراضي (VOCL).

. 

فيما يلي نص Hello World بسيط في CL:{
print(' Hello, world !! ')
}عادةً ما تحتوي نصوص CL على اللاحقة .cl، مما قد يؤدي إلى تعارضات مع ملفات كود Common Lisp التي تستخدم نفس اللاحقة..

 لغة المعالجة المسبقة الفرعية 

تُنفذ لغة المعالجة المسبقة الفرعية (SPP) مجموعة فرعية من لغة المعالجة المسبقة لـ آي راف التي خُطط لها في الأيام الأولى لـ آي راف. تعتمد لغة SPP على لغة راتفور. الشكل المعجمي، والمشغلات، وبنى تدفق التحكم متطابقة مع تلك التي يوفرها راتفور.

تتمثل الاختلافات الرئيسية في أنواع البيانات، وشكل الإجراء، وإضافة السلاسل المضمنة وثوابت الأحرف، واستخدام الأقواس المربعة للمصفوفات، وبيان المهمة. تختلف مرافق الإدخال/الإخراج المقدمة تمامًا.. 

يقوم برنامج xc، المُقدم مع IRAF، بترجمة برامج SPP إلى لغة Fortran 66 ، ومن ثم باستخدام مترجم f2c يتم تحويلها إلى كود C.

يُستكمل المعالج المسبق باستخدام mkpkg، وهي أداة لأتمتة البناء شبيهة بـmake، بالإضافة إلى generic، وهي أداة لترجمة الأنواع العامة إلى كود مصدر يعتمد على النوع، وxyacc، وهو نسخة معدلة من yacc لإنتاج مخرجات SPP.

فيما يلي برنامج Hello World البسيط في SPP:task    hello                   # CL callable task
procedure hello()               # common procedure
begin
        call printf ("hello, world\n")
endعادةً ما تحتوي برامج SPP على اللاحقة .x، بينما تلك التي تتطلب معالجة مسبقة باستخدام الأداة العامة تحتوي على اللاحقة .gx.

 البرامج التكميلية 
تتطلب بيئة العمل الكاملة لـ IRAF عادةً تطبيقين آخرين:

 نافذة xterm ممتدة مع نافذة رسومية، تُسمى xgterm وتُوزع ضمن حزمة x11iraf منفصلة.
 برنامج عرض الصور يُشار إليه باسم "خادم الصور". أشهر خوادم الصور هما:
 SAOImageDS9 (من SAO)
 ximtool (من NOAO، ويُوزع أيضًا في حزمة x11iraf).

تُستخدم هذه الأدوات معًا لتوفير بيئة عمل رسومية وتفاعلية لعلماء الفلك عند استخدام IRAF.. 

كبديل لـ xgterm ولغة الأوامر، يمكن استخدام حزمة Python PyRAF. يتميز PyRAF بقدرته على ترجمة نصوص CL إلى نصوص Python. كما يوفر نافذة رسومية (تعتمد على Tk أو Matplotlib). وكواجهة أوامر، يمكن استخدام واجهة أوامر Python أو IPython، أو حتى وضع خاص يشبه إلى حد كبير مظهر واجهة أوامر CL الأصلية. 

 انظر أيضا 

 قائمة برامج المرصد
 علم الفلك
 IDL / لغة جنوداتال
 ستارلينك

 مراجع 

 روابط خارجية 

 الصفحة الرئيسية لـ IRAF
 وثائق IRAF
 مستودع الكود المصدر على Github
 صفحة مناقشة مجتمع IRAF
 الصفحة الرئيسية القديمة لـ IRAF على أرشيف الويب

تصنيف:برمجيات متعددة المنصات
تصنيف:برمجيات فلكية
تصنيف:صفحات بترجمات غير مراجعة