الفلك

كيف تصنع قناعًا مستمرًا في Python أو IDL لنجم؟

كيف تصنع قناعًا مستمرًا في Python أو IDL لنجم؟

أتعلم كيفية نمذجة الأطياف النجمية باستخدام كود IDL ، Spectroscopy Made Easy (SME) ، ونظيرتها Python ، PySME. هل استخدم أحد هذه البرامج من قبل؟ كما ترى من الصورة المرفقة الأولى ، يواجه الكود مشكلة في نمذجة السلسلة المتصلة ، والتي تم تطبيعها. عندما أحاول وضع قناع متواصل عن طريق ضبط نطاقات الطول الموجي (انظر الصورة الثانية) ، يتم تغيير النطاقات في النمذجة ... على ما يبدو في ورقة Valenti & Fischer 2005 ، تم استخدام الطيف الشمسي ثم إزاحته؟ أي مساعدة في هذا سيكون موضع تقدير صادق.


مزج ألفا وإخفاء الصور باستخدام Python و OpenCV و NumPy

يقوم بمزج ألفا وإخفائه باستخدام Python و OpenCV و NumPy.

يمكن تحقيق ذلك باستخدام NumPy فقط دون استخدام OpenCV. لأن عملية مصفوفة NumPy أسهل وأكثر مرونة ، فإنني أوصي بها.

توضح هذه المقالة المحتويات التالية.

  • مزج ألفا مع OpenCV: cv2.addWeighted ()
  • الإخفاء باستخدام OpenCV: cv2.bitwise_and ()
  • مزج ألفا مع NumPy
  • اخفاء مع NumPy
  • مزج ألفا معقد وإخفاء مع NumPy
  • إنشاء قناع الصورة عن طريق رسم OpenCV

راجع المقالة التالية حول مزج ألفا وإخفائه باستخدام وسادة (PIL).

يستخدم نموذج التعليمات البرمجية الصورة التالية.

إصدار OpenCV من نموذج التعليمات البرمجية هو 4.0.1. يجب ألا يتغير OpenCV3 و 4 كثيرًا ، ولكن قد يكون OpenCV2 مختلفًا ، لذا كن حذرًا.


إجراءات التحليل الطيفي المختلفة¶

الوظائف الفرعية: معايرة setheaders & # 8211 exptime ، والكسب ، وقراءة الضجيج ، وما إلى ذلك. makeflat & # 8211 تجعل العلامات المتوسطة المسطحة والصاخبة لخريطة البكسل & # 8211 تجعل متوسط ​​الظلام ، وتقدير الضوضاء في كل بكسل.

تنظيف & # 8211 استخراج واستبدال وحدات البكسل السيئة

الفهرس الأول لـ z الذي ستُضاف إليه البيانات

y0: عدد صحيح أو تسلسل ints

الفهرس الثاني لـ z الذي ستُضاف إليه البيانات

القيم التي ستضاف إلى z

البيانات الأولية ، التي سيتم إضافة وحدات بكسل جزئية

حساب تشتت atmosperic بالنسبة إلى lambda_0.

تسلسل الاتصال: النتيجة = atmosdisp (wave، wave_0، za، pressure، temp، [water]، [obsalt]، $

الموجة - الطول الموجي بالميكرونات - wave_0 - الطول الموجي المرجعي بالميكرونات za - زاوية ذروة الجسم [بالدرجات] الضغط - الضغط الجوي بالملليمتر من درجة حرارة الزئبق - درجة حرارة الغلاف الجوي بالدرجات C

الماء - ضغط بخار الماء بملليمتر زئبق. fco2 - التركيز النسبي لثاني أكسيد الكربون (بالضغط) الزومبي - ارتفاع المرصد بالكيلومتر.

إلغاء - قم بتعيينه عند الإرجاع إذا كانت هناك مشكلة

إرجاع اضطراب الغلاف الجوي بالثواني القوسية.

يحسب الفرق بين التشتت عند طولين موجيين. مشتق لكل طول موجي من القسم 4.3 من Green & # 8217s & # 8220 Spherical Astronomy & # 8221 (1985).

2000-04-05 - كتبه M. Cushing ، معهد علم الفلك ، UH 2002-07-26 - تم تنظيفه قليلاً. 20-10-2003 - الصيغة المعدلة - WDV 2011-10-07 15:51 IJMC: تم التحويل إلى Python ، مع بعض تحويلات الوحدات

المواصفات.معايرة_نجوم_موسفاير_سبكترا(scifn, تفوق, skycorrect, pixcorrect, الزوايا الفرعية, ** كو) [المصدر] ¶ تصحيح الأطر الطيفية غير المتذبذبة ذات الشق العريض MOSFIRE من أجل:

عدم انتظام البكسل إلى البكسل (أي الحقول المسطحة التقليدية)

الكاشف اللاخطية

خطوط طيفية مائلة

عرض شق غير منتظم (والذي يتسبب في خلفيات غير متجانسة)

لاحظ أن اتجاه التشتت يجب أن يكون & # 8216 أفقيًا & # 8217 (أي موازيًا للصفوف) في هذا الإطار.

اسم ملف إطار علمي خام غير مُعاير (في ADUs ، وليس الإلكترونات)

الاسم الذي يجب كتابة الملف النهائي المعاير فيه.

skycorrect: صفيف str أو 2D NumPy

خريطة تصحيح الخسارة (على سبيل المثال ، للشقوق ذات العرض غير المنتظم) ، مثل التي تم إنشاؤها بواسطة Make_spectral_flats () .

pixcorrect: صفيف str أو 2D NumPy

خريطة تصحيح حساسية البكسل بكسل (أي الحقل المسطح) ، مثل التي تم إنشاؤها بواسطة Make_spectral_flats () .

sub_corners: تسلسل من 2 أو 4 تسلسلات

المؤشرات (أو مجرد صفوف البداية والنهاية) لكل منطقة فرعية ذات أهمية في إطارات & # 8216sky & # 8217 و & # 8216domeflat & # 8217. يجب أن يكون بناء الجملة من tools.extractSubregion () ، أو تلك المنطقة الفرعية = السماء [sub_corners [0]: sub_corners [1]]

سواء لتصحيح البيانات الخطية.

إذا خطي: ​​يتم حساب التصحيح الخطي وتطبيق أمبير بعد تطبيق تصحيح البكسل بكسل (الحقل المسطح) ، ولكن قبل تصحيح الشق (السماء).

نصف القطر الداخلي والخارجي لحساب الخلفية وإزالتها المقاس بالبكسل من مركز ملف التعريف. يبدو أن القيم [11،52] تعمل بشكل جيد مع أطياف MOSFIRE K-band.

هذا الروتين بطيء، في الغالب بسبب الاتصال بـ defringe_sinusoid () . ضع في اعتبارك تشغيل عمليات متعددة بالتوازي لتسريع الأمور!

استخدم تركيبًا بسيطًا لطرح الهوامش وخلفية السماء.

رتل فرعي: إطار فرعي لبيانات مصفوفة NumPy يحتوي على بيانات السماء المراد طرحها (وربما تتبع طيفي لكائن # 8217s). يُفترض أنه موجود في ADU ، وليس الإلكترونات (انظر الكسب وقراءة الضوضاء) nmed: حجم النافذة لمرشح متوسط ​​ثنائي الأبعاد (لرفض وحدات البكسل السيئة ، وما إلى ذلك) التوزيع: محور تشتت مجموعة int: 0 = أفقي و 1 = مؤشر مكاني عمودي: لا شيء ، أو صفيف 1D NumPy من النوع bool

لاحظ أن (في تجربتي!) هذا النهج يعمل بشكل أفضل عندما تقوم بتعيين جميع الأوزان على الوحدة ، بدلاً من استخدام الفروق المقترحة (الفوتون + ضوضاء القراءة).

لومب (لمخططات Lomb-Scargle)

SciPy & # 8216signal & # 8217 module (للترشيح المتوسط)

يُرجع أفضل إطار سماء ملائم.

إما مجموعة من (splineProfile أو profileStack أو errorStack أو profileMask) أو قائمة بهذه المجموعات (من makeprofile).

أنصاف الأقطار الداخلية والخارجية لاستخدامها في الخلفية الحاسوبية

نصف القطر لاستخدامه في تطبيع التدفق والاستخراج

[0] & # 8211 تدفق الطيف (في الإلكترونات)

لاحظ أن هذا غير مثالي مع أطياف مائلة أو منحنية للغاية ، للأسباب التي وصفها Marsh (1989) و Mukai (1990).

احتواء اثنين من Gaussians في وقت واحد إلى متجه بيانات الإدخال.

صفيف أحادي الأبعاد أو قائمة قيم تناسبها

معلمات التخمين: [area1، sigma1، cen1، area2، sig2، cen2، ثابت]. لاحظ أن المعلمات بوحدات البكسل.

المعلمات لتثبيت ثابتة في التحليل ، _IF_ يتم تمرير التخمين.

احتواء دالة Gaussian مع متجه بيانات الإدخال.

أعد تقديرات الملاءمة وعدم اليقين بشأن ذلك الملاءمة.

احتواء دالة Gaussian مع متجه بيانات الإدخال.

أعد تقديرات الملاءمة وعدم اليقين بشأن ذلك الملاءمة.

وظيفة المساعد لتلائم 1D PSF بالقرب من منطقة معينة. يفترض أن الطيف يعمل أفقيًا عبر الإطار!

ec: صفيف مخطط صدى صفيف ثنائي الأبعاد ، مع تخمين اتجاه التشتت الأفقي Loc: 2-tuple تسمية خاطئة بسيطة لهذه المجموعة (x ، y): y هو تخمين وسيكون مناسبًا ، لكن x هو الإحداثي الذي يحدث عنده التركيب. fitwidth: عرض int لاتجاه التشتت المتقاطع لاستخدامه في ملاءمة النطاق المتوسط: عدد الأعمدة الذي يجب أن يكون متوسطًا عند تركيب ملف تعريف مطول: الإسهاب المنطقي / تصحيح أخطاء علامة الطباعة سيجما: مقياس سيجما القياسي لقص القيم السيئة المواصفات.fitProfileSlices(الملف الشخصي, الملف الشخصي, الملف الشخصي, بكسل جيد, مطول = خطأ, bkg_radii = لا شيء, extract_radius = لا شيء) [مصدر] ¶

قم بملاءمة ملف تعريف مكاني معين مع طيف

قم بملاءمة وظيفة 1D tophat لمتجه بيانات الإدخال.

أعد تقديرات الملاءمة وعدم اليقين بشأن ذلك الملاءمة.

قم بملاءمة ملف تعريف مكاني فئة خدد مع مقطع عرضي للطيف

حساب التكامل من -inf إلى x من Gaussian المقيس

الحد الأعلى للتكامل

مصمم لنسخ وظيفة IDL التي تحمل الاسم نفسه.

لتحويل الرطوبة النسبية إلى ضغط جزئي لبخار H2O

RH - الرطوبة النسبية ، بالنسبة المئوية T - درجة الحرارة ، بالكلفن

h2o_pp: الضغط الجزئي لبخار الماء في باسكال

كما هو موضح في Butler (1998): & # 8220 المياه القابلة للاستهلاك في KP & # 8221 ، MMA Memo 238 (والتي تشير بدورها إلى Liebe 1989 ، & # 8220MPM - نموذج انتشار الموجات الجوية المليمترية & # 8221). تدعي Liebe أن هذه العلاقة بها خطأ & lt0.2٪ من -40 درجة مئوية إلى +40 درجة مئوية.

2011-10-08 17:08 IJMC: تم إنشاؤه.

لتحديد خسائر الشق من الطيف.

### TBD lightloss، obj، std، wguide، see، out، CANCEL = إلغاء

obj - ملف FITS الخاص بدليل طيف الكائن - الطول الموجي الذي تم عنده التوجيه للرؤية - رؤية FWHM عند الطول الموجي التوجيهي

اضغط - mm Hg القيمة النموذجية (615 لـ IRTF ، ما لم يتم ضبطها) الماء - mm Hg القيمة النموذجية (2 لـ IRTF ، ما لم يتم ضبطها) درجة الحرارة - القيمة النموذجية C (0 لـ IRTF ، ما لم يتم ضبطها) fco2 - التركيز النسبي لثاني أكسيد الكربون (0.004 ، ما لم يتم ضبطه) wobj - مقياس الطول الموجي للبيانات dx - الإزاحة الأفقية للنجم من dy لمركز الشق - الإزاحة الرأسية للنجم من تراجع مركز الشق - سواء لإرجاع الكثير من المعلومات التشخيصية ، أو مجرد فقدان الضوء.

& # 8216 مشاهدة المعالم & # 8217 ، & # 8216dx & # 8217 ، و & # 8216dy & # 8217 يجب أن تكون جميعها في نفس الوحدات ، وكذلك نفس الوحدات المستخدمة لتحديد أبعاد الشق في رأس ملف obj FITS

إلغاء - قم بتعيينه عند الإرجاع إذا كانت هناك مشكلة

الصفيف: خسارة شق جزئية عند كل قيمة طول موجي

مجموعة المصفوفات: (slitloss، disp_obj، diff، fwhm، dx_obj، dy_obj)

يقرأ ملف Spextool FITS.

2003-10-21 - كتبه W D Vacca 2011-10-07 20:19 IJMC: تم تحويله إلى Python ، وتكييفه مع كائنات فردية 2011-10-14 14:01 IJMC: إضافة فحص لوضع Prism (له

كلمات مختلفة ذات أبعاد فتحة) ووضع قراءة رأس pyfits مختلف.

2011-11-07 15:53 ​​IJMC: تمت إضافة & # 8216 استرجاع & # 8217 الكلمة الأساسية

لتحديد خسائر الشق من الملاحظة (لا يوجد ملف FITS متضمن)

### TBD lightloss، obj، std، wguide، see، out، CANCEL = إلغاء

wobj - مقياس الطول الموجي للبيانات slitwd - عرض الشق ، في arcsec slitht - ارتفاع الشق ، بالشق القوسي ، PA - زاوية موضع الشق ، بالراديان الهدف PA - زاوية Parallactic عند الهدف ، بالراديان zenith_angle - Zenith Angle ، بالراديان wguide - الطول الموجي عند الذي تم توجيهه لرؤية - رؤية FWHM عند الطول الموجي الموجه

اضغط - مم زئبق القيمة النموذجية (615 ، ما لم يتم ضبطها) ماء - مم زئبق القيمة النموذجية (2 ، ما لم يتم ضبطها) درجة الحرارة - درجة مئوية القيمة النموذجية (0 ، ما لم يتم ضبطها) fco2 - التركيز النسبي لثاني أكسيد الكربون (0.004 ، ما لم يتم ضبطه) ارتفاع المرصد ، بالكيلومتر teldiam- قطر فتحة المرصد المحدود ، بالمتر dx - الإزاحة الأفقية للنجم من مركز الشق dy - الإزاحة الرأسية للنجم من تراجع مركز الشق - ما إذا كان سيتم إرجاع الكثير من المعلومات التشخيصية ، أو مجرد فقدان الضوء.

ydisp - موضع الطيف في الشق على الإطلاق

قيم wobj. يجب أن تكون هذه مصفوفة من نفس حجم wobj ، بحيث يكون الصفر مطابقًا للمنتصف الرأسي للشق والقيم الموجبة تميل نحو السمت. في هذه الحالة ، سيتم حساب xdisp كـ XXXX بدلاً من التشتت الجوي المحسوب dx و dy سيتم تجاهلها أيضًا.

fwhm - العرض الكامل بنصف الحد الأقصى للتتبع الطيفي ، عند

كل قيم wobj. يجب أن تكون هذه مصفوفة بنفس حجم wobj ، وتُقاس بالثواني القوسية.

& # 8216slitwidth & # 8217، & # 8216slitheight & # 8217، & # 8216seeing & # 8217، & # 8216dx & # 8217، & # 8216dy & # 8217، & # 8216fwhm & # 8217 (إذا تم استخدامها) يجب أن تكون جميعها في نفس الوحدات: arc seconds .

الصفيف: خسارة شق جزئية عند كل قيمة طول موجي

مجموعة المصفوفات: (slitloss، disp_obj، diff، fwhm، dx_obj، dy_obj)

كل المدخلات مدفوعة. لتناظرية إصدار SpeXTool ، انظر lightloss ()

استيراد numpy كمواصفات استيراد np w = np.linspace (.5، 2.5، 100) # الطول الموجي ، بالميكرونات d2r = np.deg2rad (1.) #targetPA، za = spec.parangle (1.827، 29.67 * d2r، lat = 20. * d2r) targetPA، za = 105.3، 27.4 slitPA = 90. * d2r

spec.lightloss2 (w، 3.، 15.، slitPA، targetPA * d2r، za * d2r، 2.2، 1.0)

2003-10-21 - كتبه W D Vacca 2011-10-07 20:19 IJMC: تم تحويله إلى Python ، وتكييفه مع كائنات فردية 2011-10-14 14:01 IJMC: إضافة فحص لوضع Prism (له

كلمات مختلفة ذات أبعاد فتحة) ووضع قراءة رأس pyfits مختلف.

2011-11-07 15:53 ​​IJMC: تمت إضافة & # 8216 استرجاع & # 8217 الكلمة الرئيسية 2011-11-07 21:17 IJMC: تم تفكيكها من إصدار SpeXTool 2011-11-25 15:06 IJMC: تمت إضافة خيارات ydisp و fwhm.

قم بإنشاء إطار Sky طبيعي من بيانات التحليل الطيفي غير الشقوق SpeX.

أسماء ملفات إطارات السماء الطيفية بدون شق

مركز المنطقة لاستخدامه في تسوية الإطار الوسيط.

العرض الكامل للمنطقة المراد استخدامها في تسوية الإطار المتوسط.

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

إطار السماء الطيفي الرئيسي ، على سبيل المثال من التكديس المتوسط ​​للعديد من إطارات السماء أو إطارات أطياف علمية متراصة وإخفاء. يستخدم هذا الإطار لإنشاء خريطة لتصحيح الإطارات العلمية (مأخوذة باستخدام قناع الشق المتطابق!) لخلفيات السماء غير المنتظمة الناتجة عن عرض الشق غير المنتظم (على سبيل المثال ، Keck / MOSFIRE).

لاحظ أن اتجاه التشتت يجب أن يكون & # 8216 أفقيًا & # 8217 (أي موازيًا للصفوف) في هذه الإطارات.

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

لاحظ أن اتجاه التشتت يجب أن يكون & # 8216 أفقيًا & # 8217 (أي موازيًا للصفوف) في هذه الإطارات.

sub_corners: تسلسل مؤشرات 2 أو 4 متواليات (أو مجرد صفوف بداية ونهاية) لكل منطقة فرعية ذات أهمية في & # 8216sky & # 8217 و & # 8216domeflat & # 8217 إطارات. يجب أن يكون بناء الجملة من tools.extractSubregion () ، أو مثل تلك المنطقة الفرعية = السماء [sub_corners [0]: sub_corners [1]] badpixelmask: مصفوفة 2D NumPy ، أو str Nonzero لأي وحدات بكسل سيئة سيتم إقحامها باستخدام nsdata.bfixpix () . xord_pix: تسلسل أوامر متعددة الحدود للتطبيع في اتجاه التشتت للشقة المستندة إلى البكسل (القبة المسطحة) على التكرارات المتعاقبة ، انظر ماككسفلات () . xord_sky: تسلسل أوامر متعددة الحدود للتطبيع في اتجاه التشتت للتصحيح القائم على الشق (إطار السماء) على التكرارات المتعاقبة ، انظر ماككسفلات () . yord: ترتيب متعدد الحدود العددي لتطبيع (القبة) المستندة إلى البكسل في الاتجاه المكاني. locs: لا شيء ، أو فهرس الصف التسلسلي في كل منطقة فرعية من موقع التتبع الطيفي للفائدة. يستخدم فقط لتصحيح إطار السماء مع ترك هذا عند لا شيء سيكون له تأثير معتدل على الأكثر. إذا لم يكن لا شيء ، فيجب أن يكون بنفس طول sub_corners. إذا كانت sub_corners [0] = [800 ، 950] ، فقد يتم تعيين المواقع [0] على ، على سبيل المثال ، 75 إذا كان التتبع يقع في منتصف المنطقة الفرعية.

وظيفة المساعد لـ الطول الموجي : إنشاء نموذج تحجيم واستيفائي للقالب.

قم بعمل ملف تعريف مكاني من الطيف ، بالنظر إلى موقعه المتتبع. نقوم بتحويل PSF عند كل بكسل إلى إطار مرجعي مشترك ، ثم نقوم بتوسيطها.

اسم الملف: str _OR_ 2D عدد المصفوفة 2D تتبع مخطط الصدى: 1D مجموعة صفيف numpy من معاملات متعددة الحدود من أجل التوزيع (P-1): محور تشتت مجموعة int: 0 = أفقي و = عرض مناسب عمودي: int إجمالي عرض الكتلة الفرعية الطيفية المستخرجة. ستتم زيادتها دائمًا إلى ضعف أكبر قيمة لـ bkg_radii. neg: مجموعة عددية منطقية صحيحة لتتبع طيفي سلبي nsigma: قطع Sigma-clipping عددي للبكسل السيئ (يتجاوز قراءة + ضوضاء الفوتون). اضبطه على درجة عالية ، ولا تتردد في تجربة هذه المعلمة! xylims: 4-تسلسل استخرج المجموعة الفرعية المحددة من مصفوفة البيانات: [xmin، xmax، ymin، ymax] retall: bool Set True لإخراج عدة معلمات إضافية (انظر أدناه) rn: ضوضاء القراءة العددية (الإلكترونات) g: كسب الكاشف القياسي (الإلكترونات لكل وحدة بيانات) bkg_radii: 2 تسلسل نصف قطر داخلي وخارجي لحساب الخلفية وإزالتها المقاسة بالبكسل من مركز الملف الشخصي. bkg_order: int & gt 0 ترتيب متعدد الحدود لاتجاه الخلفية المحسوب في ملف التعريف الطيفي الرئيسي: bool سواء كان سيتم (ثنائي الخطي) إقحام كل شريحة لإنتاج ملف تعريف طيفي متمركز بدقة (وفقًا للإدخال & # 8216trace & # 8217). إذا كانت False ، ستتم محاذاة الشرائح فقط لأقرب بكسل. الإخراج: إذا أعيد:

وظيفة خدد تقحم مواقع البكسل في ملف التعريف المتوسط

تقديرات الشكوك

else: وظيفة خدد تقحم مواقع البكسل في ملف التعريف المتوسط المواصفات.makexflat(دون, xord, نسيغما = 3, مينسنر = 10, مينفراك = 0.5, نيتير = 1) [مصدر] ¶

المنطقة الفرعية الطيفية ، التي تحتوي على الخلفية الطيفية ، والسماء ، و / أو قياسات التدفق المستهدف.

ترتيب كثير الحدود الذي سيتم من خلاله تسوية كل صف. إذا كان niter & gt0 ، فيمكن أن يكون xord عبارة عن سلسلة من الطول (نيتير + 1). من الأساليب الجيدة ، على سبيل المثال ، مسطحات القبة الطيفية تعيين niter = 1 و xord = [15،2].

مستوى Sigma-clipping لحساب S / N عمودًا بعمود

الحد الأدنى لقيمة S / N لاستخدامها عند تحديد & # 8216 جيدة & # 8217 أعمدة للتسوية.

minfrac: عددي ، 0 & lt minfrac & lt 1

جزء من الأعمدة المراد استخدامها ، محددًا بأعلى نسبة S / N ، عند تحديد & # 8216 أعمدة جيدة & # 8217 للتسوية.

عدد التكرارات. إذا تم التعيين على الصفر ، فلا تكرره (على سبيل المثال ، قم بالتشغيل مرة واحدة بدقة.)

وظيفة المساعد للوظائف XXXX

اعرض رسالة في الوقت الحالي ، مع نص.

نموذج تتبع طيفي خام!

لاحظ أن معظم المدخلات يجب أن تكون في الإطار _ المصحح_.

مستوى قاعدة خلفية التتبع: صفيف 1D

عرض مستوى قاعدة قاعدة الخلفية: عددي (في الوقت الحالي)

مركز التتبع: مجموعة 1D

إزاحة طيف الكائن ، نسبة إلى المركز: عددي

عرض 1D PSF: عددي

مساحة 1D psf: مجموعة 1D

تشويه (س وص ، بطريقة ما.)

خلفية ضوئية متناثرة: عددي (في الوقت الحالي)

نموذج عنصر تحليل طيفي.

بارام [0 ، 1 ، 2] - السعة ، سيجما ، والموقع المركزي لملف تعريف الخط الغاوسي (راجع. analysis.gaussian () ).

بارام [3 ، 4 ، 5] - السعة والعرض والموقع المركزي لخلفية تشبه القبعة العلوية (راجع. قبعة عالية() ).

param [6 ::] - مكونات خلفية إضافية (ثابتة أو متعددة الحدود) ، للتقييم باستخدام numpy.polyval ()

القيم التي يتم عندها تقييم وظيفة النموذج (أي وحدات البكسل). نموذجيا 1D.

نموذج عنصر الدقة ، بنفس شكل x.

نموذج عنصر تحليل طيفي على طول الاتجاه المكاني. يتكون هذا من ملف تعريف خط (من المفترض أن يكون غاوسيًا) متراكبًا على التتبع الطيفي وخلفية تشبه القبعة العلوية # 8217s ، مع مكون خلفية إضافي ثابت (أو متعدد الحدود) خارج ترتيب echelle.

قم بإنشاء ملف تعريف دوراني ، وقم بلفه بملف تعريف إدخال ثانٍ ، وقم بتطبيعه (ببساطة) ، ثم قم بإرجاعه.

بارام [0: 3] & # 8211 انظر التناوب بارام [4] & # 8211 عامل تحجيم مضاعف

prof2: ملف تعريف الإدخال الثاني

تتبع وتطبيع إطار حقل مسطح طيفي.

إطار مسطح رئيسي غير طبيعي: يُفترض أنه يقاس بالإلكترونات الضوئية (لحساب حالات عدم اليقين).

عدد الطلبات الطيفية التي يتم البحث عنها وتسويتها

الحد الأدنى للفصل ، بالبكسل ، بين الطلبات الطيفية التي سيتم العثور عليها.

عرض نواة عامل التصفية المتوسط ​​المستخدمة لحساب القيمة المنخفضة

قراءة الكاشف ضوضاء في الإلكترونات. لحساب حالات عدم اليقين.

badpixelmask: مجموعة NumPy ثنائية الأبعاد

قناع البكسل السيئ: 1 في مواقع بكسل سيئة ، 0 في مكان آخر.

آثار: 2D NumPy Array (nord، pord) على شكل صفيف numpy يمثل متعدد الحدود

معاملات لكل طلب (مناسبة للاستخدام مع np.polyval) ، كما أنتج بواسطة أوامر التتبع ()

استخراج الطيف ، بعد هورن 1986.

إطار معاير بشكل مناسب لاستخراج الطيف. يجب أن يكون بوحدات ADU ، وليس بوحدات الإلكترونات!

تباينات قيم البكسل في & # 8216data & # 8217.

كسب الكاشف ، بالإلكترونات لكل ADU

قراءة ضوضاء الكاشف ، في الإلكترونات.

يساوي 0 لوحدات البكسل الرديئة ، و 1 لوحدات البكسل الجيدة

bkg_radii: 2- أو 4 تسلسل

إذا كان الطول 2: نصف القطر الداخلي والخارجي لاستخدامهما في الخلفية الحاسوبية. لاحظ أنه لكي يكون هذا فعالاً ، يجب أن يكون التتبع الطيفي مواضع في وسط & # 8216data. & # 8217

إذا كان الطول 4: مؤشرات البداية والنهاية لكلا الفتحتين لتركيب الخلفية ، بالشكل [b1_start ، b1_end ، b2_start ، b2_end] حيث b1 و b2 هما فتحتا الخلفية ، ويتم ترتيب العناصر بترتيب تصاعدي صارم.

extract_radius: int أو 2-تسلسل

نصف القطر لاستخدامه في تطبيع التدفق والاستخراج. إذا كان هناك تسلسل ، يجب استخدام أول وآخر مؤشر للمصفوفة للتطبيع الطيفي والاستخراج.

0 للطيف الأفقي و 1 للطيف الرأسي

درجة ملاءمة الخلفية متعددة الحدود.

عتبة Sigma-clipping لحوسبة الخلفية.

درجة تناسب كثير الحدود لبناء الملف الشخصي.

عتبة Sigma-clipping لملف التعريف.

عتبة Sigma-clipping للتنظيف ورفض الأشعة الكونية.

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

عدد البكسل المطلوب رفضه في كل تكرار.

[0] & # 8211 تدفق الطيف (في الإلكترونات)

[1] & # 8211 عدم اليقين بشأن تدفق الطيف

تعد خوارزمية الاستخراج المثالية الكلاسيكية من Horne & # 8217s هي الأمثل فقط طالما أن الآثار الطيفية تقريبًا محاذاة مع صفوف أو أعمدة الكاشف. أنه ليس مناسب تمامًا لاستخراج الآثار المائلة أو المنحنية إلى حد كبير ، للأسباب التي وصفها Marsh 1989، Mukai 1990. لاستخراج مثل هذه الأطياف ، انظر superExtract () .

قم بتشغيل الاستخراج الطيفي الأمثل في نتائج تمرير IDL إلى Python.

اسم الملف ، أو 2D Numpy Array ، أو قائمة أسماء الملفات التي تحتوي على الإطارات التي سيتم استخراج الأطياف منها. يجب أن يكون هذا بوحدات ADU (وليس الإلكترونات) لكي تظهر خصائص الضوضاء بشكل صحيح.

أيضًا ، يجب أن يعمل التتبع الطيفي عموديًا عبر الإطار.

كسب الكاشف في الإلكترونات / ADU

قراءة الكاشف ضوضاء في الإلكترونات

x1 ، x2: ints ، أو قوائم ints

بدء وإيقاف مؤشرات التتبع الطيفي عبر الإطار. إذا تم إدخال إطارات متعددة وتم إدخال x1 / x2 واحد ، فسيتم استخدام نفس القيمة لكل إطار. لاحظ مع ذلك أنه يمكن أيضًا إدخال عدة x1 / x2 (واحد لكل إطار).

المسار إلى IDL القابل للتنفيذ. يجب أن تكون OPTSPECEXTR.PRO والملفات المرتبطة بها في مسار IDL الخاص بك. إذا تم التعيين على بلا ، فسيتم تعيينه على: os.popen (& # 8216which idl & # 8217) .read (). strip ()

ما إذا كان سيتم الكتابة فوق الملفات عند كتابة بيانات الإدخال إلى TEMPFRAMFN.

إذا كان الإدخال & # 8216frame & # 8217 عبارة عن مصفوفة ، فسيتم كتابتها على اسم الملف هذا لتمريرها إلى IDL.

سيكتب IDL البيانات الطيفية إلى اسم الملف هذا من أجل تمريرها مرة أخرى إلى Python.

اسم الملف الذي سيتم كتابة نص IDL القصير به.

خيارات لتمريرها إلى OPTSPECEXTR.PRO. على سبيل المثال: & # 8220adjfunc = & # 8217adjgauss & # 8217، Adoptions =، bgdeg = 3 & # 8221

لاحظ أن كود Python هذا سوف ينكسر إذا قمت _don & # 8217 t_ بتتبع الطيف (التعديلات ، إلخ) ، فهذه منطقة للعمل المستقبلي إذا كنت أستخدم مطيافًا بتتبع مستقيم.

اسم قناع البكسل الجيد لـ OPTSPECEXTR.PRO. يساوي 1 لوحدات البكسل الجيدة ، و 0 لوحدات البكسل الرديئة.

[0] & # 8211 الطيف المستخرج ، ADU لكل بكسل [1] & # 8211 عدم اليقين (1 سيجما) من الطيف المستخرج [2] & # 8211 موقع التتبع (بالبكسل) عبر الإطار [3] & # 8211 عرض تتبع عبر الإطار

لاحظ أن هذا يتبع عن كثب Horne et al. مما يفعل الاستخراج الأمثل () ، وأسرع من هذه الوظيفة و (خاصة!) استخراج الطيف () . الجانب السلبي الوحيد (إذا كان واحدًا) هو أن هذه الوظيفة تتطلب IDL.

إضافة خيارات لإدخال المستخدم لإطار التباين أو تباين السماء.

السماح بمزيد من المرونة (التتبع ، خيارات الإدخال / الإخراج ، إلخ.)

  • اسم:

    Parangle

    غرض:

    لحساب زاوية المنظر في موضع معين في السماء.

    الفئة:

    التحليل الطيفي

    تسلسل الاتصال:

    eta، za = parangle (HA، DEC، lat)

    المدخلات:

    HA - زاوية ساعة الكائن ، بالساعات العشرية (0،24) DEC - انحراف الكائن ، بدرجات العرض - خط عرض الراصد ، بالدرجات

    معلمات الكلمات الرئيسية:

    إلغاء - قم بتعيينه عند الإرجاع إذا كانت هناك مشكلة

    المخرجات:

    إيتا - الزاوية المنعزلة za - زاوية الذروة

    إجراء:

    بالنظر إلى الأجسام HA و DEC وخط عرض المراقبين ، يتم حساب زاوية السمت والسمت. ثم يعطي قانون جيب التمام الزاوية المنعزلة.

    مثال:

    غير متوفر

    تاريخ التعديل:

    2000-04-05 - كتبه M. Cushing ، معهد علم الفلك ، UH 2002-08-15 - تم تنظيفه قليلاً. 21-10-2003 - تم التغيير إلى زاوية ذروة النواتج الاحترافية أيضًا - WDV 2011-10-07 17:58 IJMC: تم التحويل إلى Python

الفأس: (مثيل المحاور) & # 8211 محاور لاختيار موقع

التكبير / التصغير: نطاق التكبير / التصغير int & # 8211 لتأكيد الهدف

: 2-tuple & # 8211 (x، y) أنصاف أقطار لتأكيد التكبير / التصغير.

احسب خطأ مربع كاي على الطيف مقابل الملف الشخصي

قم بتحويل إطارات GMOS التي تم التقاطها باستخدام عائد استثمار مخصص إلى إطارات FITS قياسية.

إدخال اسم الملف أو أسماء الملفات.

خارج: سلسلة أو سلسلة من السلاسل

اسم ملف الإخراج أو أسماء الملفات.

تم تمريره إلى PyFITS ما إذا كان سيتم الكتابة فوق الملفات الموجودة.

إعادة تشكيل الطيف مع الحفاظ على كثافة التدفق.

شبكة الطول الموجي الجديدة (أي الطول الموجي المركزي لكل بكسل)

شبكة الطول الموجي القديمة (أي الطول الموجي المركزي لكل بكسل)

الطيف القديم (على سبيل المثال ، كثافة التدفق أو عدد الفوتون)

عامل يمكن بواسطته زيادة عينة المدخلات من الطيف قبل إعادة تكوين الطيف. أسوأ دقة جزئية تحققها هي تقريبًا 1. /oversamp.

التنسيق هو نفسه numpy.interp ()

احسب ملف الدوران للنجم ، بافتراض دوران الجسم الصلب وتغميق الأطراف الخطية.

يستخدم هذا المعادل. 18.14 of Gray & # 8217s Photospheres، 2005، 3rd Edition.

[0]: delta_Lambda_L = lambda * V * sin (i) / c الدوران

الإزاحة في الطرف النجمي.

[1]: إبسيلون ، معامل سواد الأطراف الخطي ، يُستخدم في

العلاقة أنا (ثيتا) = I0 + إبسيلون * (كوس (ثيتا) - 1).

[2]: اختياري! الموقع المركزي للملف الشخصي (خلاف ذلك

يفترض أنه يقع في delta_lam = 0).

الطول الموجي مطروحًا منه الإزاحة: لامدا ناقص lambda_0. الشبكة التي سيتم إجراء الحسابات عليها.

قم بتشغيل LBLRTM لحساب نفاذية الغلاف الجوي و / أو الإشراق.

الأطوال الموجية الدنيا والقصوى التقريبية

ملم من بخار الماء النفاث فوق موقع المراقبة. إذا كانت سالبة ، فسيتم استخدام القيمة abs (pwv_offset-pwv) بدلاً من ذلك.

تستخدم فقط إذا (pwv & lt 0) انظر أعلاه للحصول على الوصف.

زاوية المراقبة من الذروة بالدرجات

ارتفاع المراقبة ، بالكيلومتر.

تركيز ثاني أكسيد الكربون في جزء في المليون من حيث الحجم. من المفترض أن يكون التركيز موحدًا في جميع أنحاء الغلاف الجوي.

الدقة الطيفية التقريبية المطلوبة

حساب النفاذية الجوية

حساب إشعاع الغلاف الجوي. لا يعمل حاليًا

المسار حيث سيتم تخزين ملف حفظ MAT المؤقت

المسار حيث توجد البرامج النصية المجمعة MATLAB لـ LBLRTM

اسم ملف لبرنامج نصي MATLAB / OCTAVE مؤقت (تم حفظه بعد الخروج)

المسار إلى MATLAB / OCTAVE القابل للتنفيذ

2- أو 3-tuple: العنصر الأول هو الطول الموجي بالميكرونات ، والعنصر الثاني هو النفاذية (عند الطلب). سيكون الإشعاع دائمًا (عند الطلب) هو العنصر الأخير ، وفي وحدات f_nu: W / cm2 / sr / (cm ^ -1)

استخدم الارتباط المتبادل لطرح خلفيات السماء المائلة.

رتل فرعي: إطار فرعي لبيانات مصفوفة NumPy يحتوي على بيانات السماء المراد طرحها (وربما تتبع طيفي لكائن # 8217s). badpixelmask: مصفوفة بلا أو NumPy مصفوفة منطقية ، تساوي صفرًا لوحدات البكسل الجيدة والوحدة لوحدات البكسل التالفة. إذا تم تعيين هذا ، فستكون الخطوة الأولى هي الاتصال بـ nsdata.bfixpix () لاستيفاء هذه القيم. nmed: الحجم الداخلي للمرشح المتوسط ​​ثنائي الأبعاد للتمليس المسبق. بورد: درجة كثافة الميل الطيفي. حافظ على هذا الرقم منخفضًا! maxshift: int أقصى تغيير مقبول. لم يتم تنفيذه بعد! fitwidth: int أقصى نصف قطر (بالبكسل) للتوافق مع ذروة الارتباط المتبادل. nmed: حجم النافذة لمرشح متوسط ​​ثنائي الأبعاد (لرفض وحدات البكسل السيئة ، وما إلى ذلك) التوزيع: محور التشتت المحدد: 0 = أفقي و 1 = فهرس مكاني عمودي: لا شيء ، أو مصفوفة من النوع 1D NumPy منطقي الصفوف المكانية (إذا كان dispaxis = 0) لاستخدامها عند ملاءمة إمالة خطوط السماء عبر الطيف. إذا كنت تريد استخدام الكل ، فاضبط على بلا. إذا كنت تريد تجاهل البعض (على سبيل المثال ، لأن هناك & # 8217s كائنًا ساطعًا & # 8217s طيفًا هناك) ، فقم بتعيين هذه الصفوف & # 8217 عناصر من الفهرس المكاني على & # 8216False & # 8217. refpix: البكسل القياسي على طول المحور المكاني الذي يجب محاذاة المقاسات الطيفية في حالة وجود أثر طيفي ، يجب تعيين & # 8220refpix & # 8221 على موقع التتبع. tord: ترتيب داخلي مناسب للعديد من الحدود على طول الاتجاه المكاني في إطار طيفي ثنائي الأبعاد محاذي ، لحساب الاختلالات أو عدم انتظام اتجاه الميل.

عائدات:
عائدات:نموذج لخلفية السماء ، بنفس شكل & # 8216subframe. & # 8217
المواصفات.مقياس الطيف(إطار فرعي, التباين = لا شيء, badpixelmask = لا شيء, nk = 31, بورد = 1, nmed = 3, كسب = 3.3, قراءة الضوضاء = 30, التوزيع = 0, spatial_index = لا شيء) [مصدر] ¶

استخدم تقنيات التصوير الفروق لطرح خلفية السماء المائلة بشكل معتدل. لا & # 8217t تعمل بشكل جيد!

رتل فرعي: إطار فرعي لبيانات مصفوفة NumPy يحتوي على بيانات السماء المراد طرحها (وربما تتبع طيفي لكائن # 8217s). يُفترض أنه موجود في ADU ، وليس الإلكترونات (انظر الكسب وقراءة الضوضاء) التباين: لا شيء أو تباين مصفوفة NumPy لكل بكسل في & # 8216subframe & # 8217 nmed: حجم int لمرشح متوسط ​​ثنائي الأبعاد: درجة int للميل الطيفي. حافظ على هذا الرقم منخفضًا! nk: int عدد وحدات بكسل kernel في dia.dsa () nmed: حجم النافذة لمرشح متوسط ​​ثنائي الأبعاد (لرفض وحدات البكسل السيئة ، وما إلى ذلك) dispaxis: محور التشتت المحدد: 0 = أفقي و 1 = كسب رأسي ، ضجيج القراءة: ints إذا كان & # 8216variance & # 8217 لا شيء ، يتم استخدام هذه لتقدير الشكوك. spatial_index: لا شيء ، أو صفيف 1D NumPy من نوع bool أي الصفوف المكانية (إذا كان dispaxis = 0) لاستخدامها عند ملاءمة إمالة خطوط السماء عبر الطيف. إذا كنت تريد استخدام الكل ، فاضبط على بلا. إذا كنت تريد تجاهل البعض (على سبيل المثال ، لأن هناك & # 8217s كائنًا ساطعًا & # 8217s طيفًا هناك) ، فقم بتعيين هذه الصفوف & # 8217 عناصر من الفهرس المكاني على & # 8216False & # 8217.

ملاحظات:لاحظ أن (في تجربتي!) هذا النهج يعمل بشكل أفضل عندما تقوم بتعيين جميع الأوزان على الوحدة ، بدلاً من استخدام الفروق المقترحة (الفوتون + ضوضاء القراءة).

يُرجع أفضل إطار سماء ملائم.

استخدم PCA وإطارات السماء الفارغة للطرح

الإطار: إطار بيانات صفيف str أو NumPy لطرح السماء منه. يُفترض أنه موجود في ADU ، وليس الإلكترونات (انظر الكسب وقراءة الضوضاء) npca: عدد مكونات PCA المراد إزالتها

f0 = pyfits.getdata (odome.procsci [0]) mask = pyfits.getdata (odome._proc + & # 8216skyframes_samplemask.fits & # 8217) .astype (bool) badpixelmask = pyfits.getdata (odome.badpixelmask) .astype (odome.badpixelmask) .astype (odome.badpixelmask) .astype (odome.badpixelmask). )

إن أبسط طريقة لملاءمة السماء مع & # 8216frame & # 8217 التي تحتوي على طيف ساطع هي تضمين مناطق التتبع الطيفي في & # 8216mask & # 8217 ولكن مع تعيين & # 8216variance & # 8217 من تلك المناطق عالية للغاية (لتقليل الوزن فيها تناسب المربعات الصغرى).

لاستخدامها مع بيانات الكائنات المتعددة ، ضع في اعتبارك تشغيلها عدة مرات (مرة واحدة لكل طلب)

يُرجع أفضل إطار سماء ملائم كما هو محدد من مكونات & # 8216npca & # 8217 PCA.

حساب التدفق الذي يمر عبر شق بافتراض PSF غاوسي.

العرض - عرض الشق. الارتفاع - ارتفاع الشق. fwhm - عرض كامل بنصف أقصى حد للصورة الغاوسية. xoffset - إزاحة في x للصورة من مركز الشق. yoffset - إزاحة الصورة من مركز الشق بالقيمة y.

ملاحظة: الوحدات عشوائية ولكن يجب أن تكون متماثلة في العرض

كل كميات المدخلات.

يحسب جزء التدفق المنقول عبر شق 0.3x15 ثانية قوسية مع PSF يبلغ 0.6 ثانية قوسية FWHM. يتركز PSF على الفتحة.

استنادًا إلى برنامج M Buie ، مارس 1991 ، مارك دبليو بوي ، تم تعديل مرصد لويل 2000 أبريل ، إم كوشينغ ليشمل تعويضات y. 2011-10-07 15:45 IJMC: تم التحويل إلى Python 2011-11-14 16:29 IJMC: تمت إعادة كتابته للاستخدام erf () عوضا عن

أصلح الضوء المبعثر في SpeX / SXD K-band واكتب ملفًا جديدًا.

اسم ملف جديد للملف الثابت.

ما إذا كان سيتم الكتابة فوق ملفات FITS الموجودة

0 إذا كانت هناك مشكلة ، 1 إذا كان كل شيء على ما يرام

نموذج للضوء المنتثر المرئي في إطارات SpeX / SXD K-band.

يجب تصحيح اسم ملف إطار SXD الخام ، أو مصفوفة Numpy تحتوي على بياناتها.

نصف عرض الأوامر الطيفية. تظهر التجربة أن هذا حوالي 48 بكسل. هذه القيمة لا تتناسب!

الحد الأدنى والحد الأقصى لقيم x-pixel لاستخدامها في التركيب

الحد الأدنى والأقصى لقيم y-pixel لاستخدامها في التركيب

ما إذا كان سيتم إخراج النموذج فقط أو المجموعة (model، fits، chisq، nbad)

وقت التكامل بالثواني لقياس التخمينات الأولية

scatter_model: مصفوفة عددية

نموذج لمكون الضوء المشتت للطرح أو الحفظ.

scatter_model ، يناسب ، chis ، nbad

يمكنني أن أكون أكثر ذكاءً في نمذجة مكونات الضوء المتناثرة & # 8211 ربما مناسبة للعرض ، أو على الأقل السماح للعرض أن يكون عددًا غير صحيح.

Extract a spectrum from a frame using one of several methods.

Contains a single spectral trace.

Gain of data contained in ‘frame’ i.e., number of collected photoelectrons equals frame * gain.

readnoise : None or scalar

Read noise of detector, in electrons.

framevar : None, 2D Numpy array, or filename

Variance of values in ‘frame.’

If and only if framevar is None, use gain and readnoise to compute variance.

badpixelmask : None, 2D Numpy array, or filename

Mask of bad pixels in ‘frame.’ Bad pixels are set to 1, good pixels are set to 0.

Which spectral extraction mode to use. Options are:

Spectral trace location: fractional pixel index along the entire spectral trace. If None, traceorders() will be called using the options in ‘trace_options.’

Keyword options to be passed to the appropriate spectral extraction algorithm. Note that you should be able to pass the same sets of parameters to superExtract() و optimalExtract() (the necessary parameter sets overlap, but are not identical).

trace_options : None or dict

Keyword options to be passed to traceorders() (if no trace is input, or if mode=’spline’)

spectrum, error or variance of spectrum, sky background, .

When ‘optimalextract’ is used: if len(bkg_radii)==2 then the background apertures will be reset based on the median location of the trace. If extract_radius is a singleton, it will be similarly redefined.

Optimally extract curved spectra, following Marsh 1989.

Appropriately calibrated frame from which to extract spectrum. Should be in units of ADU, not electrons!

Variances of pixel values in ‘data’.

Detector gain, in electrons per ADU

Detector readnoise, in electrons.

location of spectral trace. If None, traceorders() is invoked.

goodpixelmask : 2D numpy array

Equals 0 for bad pixels, 1 for good pixels

Number of profile polynomials to evaluate (Marsh’s “K”). Ideally you should not need to set this – instead, play with ‘polyspacing’ and ‘extract_radius.’ For symmetry, this should be odd.

Spacing between profile polynomials, in pixels. (Marsh’s “S”). A few cursory tests suggests that the extraction precision (in the high S/N case) scales as S^-2 – but the code slows down as S^2.

Order of profile polynomials 1 = linear, etc.

inner and outer radii to use in computing background

radius to use for both flux normalization and extraction

0 for horizontal spectrum, 1 for vertical spectrum

Degree of polynomial background fit.

Sigma-clipping threshold for computing background.

Degree of spectral-trace polynomial (for trace across frame – not used if ‘trace’ is input)

Sigma-clipping threshold for cleaning & cosmic-ray rejection.

If true, mask all non-finite values as bad pixels.

How to compute Marsh’s Q-matrix. Valid inputs are ‘fast-linear’, ‘slow-linear’, ‘fast-nearest,’ ‘slow-nearest,’ and ‘brute’. These select between various methods of integrating the nearest-neighbor or linear interpolation schemes as described by Marsh the ‘linear’ methods are preferred for accuracy. Use ‘slow’ if you are running out of memory when using the ‘fast’ array-based methods. ‘Brute’ is both slow and inaccurate, and should not be used.

Number of outlier-pixels to reject at each iteration.

If true, also return the 2D profile, background, variance map, and bad pixel mask.

Iterate background fitting and reject outliers maybe first time would be unweighted for robustness.

Introduce even more array-based, rather than loop-based, calculations. For large spectra computing the C-matrix takes the most time this should be optimized somehow.

Grey-pixel tophat function with set width param: [cen_pix, amplitude, background] newparam: [amplitude, full width, cen_pix, background] x : must be array of ints, arange(0, size-1) returns the model.

Standard tophat function (alternative version).

p[0] – Amplitude p[1] – full width dispersion p[2] – central offset (mean location) p[3] – vertical offset (OPTIONAL)

values at which to evaluate function

1.0 where |x| < 0.5, 0.5 where |x| = 0.5, 0.0 otherwise.

Trace spectral orders for a specified filename.

filename : str OR 2D array full path and filename to a 2D echelleogram FITS file, _OR_ a 2D numpy array representing such a file.

OPTIONAL INPUTS: pord : int

full path and filename to a 2D uncertainties FITS file, _OR_ a 2D numpy array representing such a file.

If this is set, ‘g’ and ‘rn’ below are ignored. This is useful if, e.g., you are analyzing data which have already been sky-subtracted, nodded on slit, or otherwise altered. But note that this must be the same size as the input data!

g : scalar > 0 Detector gain, electrons per ADU (for setting uncertainties) rn : scalar > 0 Detector read noise, electrons (for setting uncertainties) retsnr : bool If true, also return the computed S/N of the position fit at each stepped location. retfits : bool If true, also return the X,Y positions at each stepped location.

RETURNS: (nord, pord) shaped numpy array representing the polynomial

coefficients for each order (suitable for use with np.polyval)

If tracing fails, a common reason can be that fitwidth is too small. Try increasing it!

Determine dispersion solution for a spectrum, from a template.

Spectrum for which a wavelength solution is desired.

Known wavelength grid of a template spectrum.

Flux (e.g.) levels of the template spectrum with known wavelength solution.

Uncertainties on the template values. This can be important in a weighted fit!

Initial guess for the wavelength solution. This is very helpful, if you have it! The guess should be a sequence containing the set of Chebychev polynomial coefficients, followed by a scale factor and DC offset (to help in scaling the template).

If guess is None, attempt to fit a simple linear dispersion relation.

NOT YET IMPLEMENTED! BUT EVENTUALLY: if guess is None, this sets the polynomial order of the wavelength solution.

FOR THE MOMENT: if guess is None, return a simple linear solution. This is likely to fail entirely for strongly nonlinear dispersion solutions or poorly mismatched template and spectrum.

Number of processors to use for MCMC searching.

(wavelength, wavelength_polynomial_coefficients, full_parameter_set)

This implementation uses a rather crude MCMC sampling approach to sample parameters space and ‘home in’ on better solutions. There is probably a way to do this that is both faster and more optimal.

Note that if ‘spectrum’ and ‘template’ are of different lengths, the longer one will be trimmed at the end to make the lengths match.

Compute zenith angle (in degrees) for an observation.

Right Ascension of target, in format: HH:MM:SS.SS

Declination of target, in format: +ddd:mm:ss

Hour Angle of target, in format: +HH:MM:SS.SS

Name of observatory site (keck, irtf, lick, lapalma, ctio, andersonmesa, mtgraham, kpno) or a 3-tuple containing (longitude_string, latitude_string, elevation_in_meters)


How do you create a continuum mask in Python or IDL for a star? - الفلك

IRTF and General Reduction Tools

This repository contains some IRAF scripts and IDL scripts for viewing and processing spectrograph and image files. It includes a pipeline for reducing IRTF SpeX prism data in time series modes. The IRTF SpeX prism data should have 2 sources - a target and reference star that are imaged on the slit simultaneously. The pipeline is designed to work with data taken with the 3x60'' slit. The pipeline will take raw data and apply the following:

  • Correct linearity, trim data
  • Apply flat and dark corrections
  • Shift images to account for pointing errors
  • Rectify the spectra
  • Correct for bad pixels
  • Extract spectral with optimal extraction techniques. This refereed paper describes the pipeline: http://adsabs.harvard.edu/abs/2014ApJ. 783. 5S

There is a hefty list of code requirements for this pipeline. Be prepared that installing all these pieces may take a long time unless you already have experience with them.

My preferred way to add to the IDL path is to edit my .bash_profile :

where path1 is to the The IDL Astronomy User's Library, path2 is to E Schlawin's IDL Routines and path3 is the directory containing this code repository.

These are intended as reminders to oneself and not a complete set of instructions for a new user.

  • Put all data into a directory called edited - this will contain a duplicate of all raw data
  • All data files should be called run*.fits (it’s OK if they’re sky images called runsky*.fits )
  • All flat images (with relevant 3x60 slit) should be flat*.fits
  • All dark images should be dark*.fits
  • All arc images (only the 0.3 x 60 slit) should be arc*.fits
  • All sky files (if using) should be listed in sky_choices.txt
  • Get rid of all periods except for the ending of files may be file.a.fits or file.b.fits
  • Remove all files not explicitly described in this list
  • Make a proc directory adjacent to the edited folder
  • You may have to modify permissions to the fits files (for example, the files may be set to read-only). This can be accomplished with chmod 755 *
  • The python script prep_SpeX_images.py , can help with the above tasks.

B: Load the necessary NOAO procedures

where /data/OBJECT5/bigdog/ is the location of the IRTF SpeX prism spectrograph data. You may get a warning with my IRAF about camera.dat. A solution is available here: http://iraf.net/forum/viewtopic.php?showtopic=1467939

These can also be placed in the login.cl file so they are loaded with each log-in.

where path_to_reduction_scripts is the path to this repository.

D: Reduce data from the “edited” directory

The reduction steps will apply linearity corrections (optional), flat fields, bad pixel masks, dark subtractions and accounts for flexure of the telescope, which causes the spectra and background to shift positions.

  • Navigate to the edited directory which contains a copy of all relevant raw files. Edit the local_red_params.cl file to have the correct parameters for your file.
    • You will need to set a trim region the default is s1 = "[65:749,33:607]" . However, you should make sure that the trim is the largest region that clips out all un-illuminated rows of the detector.
    • Open the image to locate the sources. Make sure that the background box and background spectrum region are between the two sources. X,Y coordinates are from the bottom left corner. The #ESParam backbox [X1:X2,Y1:Y2] line should have X1 and X2 encompassing the H band background emission and the Y1 and Y2 values should be between the two sources.
    • If you have local b1 = yes , it will use the sky flats. You’ll need to select a set of sky images to combine (called sky_choices.txt ). You can also have optional mask_for_runsky005.fits files to specify where to mask out sources. If you are not using sky flats, set b1 = no . For first time use, it is simpler to have b1 = no and do the sky flats on another pipeline run.

    E: Initial Spectral Extraction

    This step will rectify the images, extract spectra from each source, do background subtraction. It first uses the IRAF apall routines, but then can be run again with custom optimal extraction techniques. The resulting files are FITS images with flux and background as function of wavelength for each star.

    Navigate to the proc directory.

    Start by going through the images in the middle of the time series to be used as a reference aperture-finding. Select an image with few artifacts, cosmic rays or star-like blemishes due to alpha particles from a Th-containing coating on the optics. After choosing the reference image, write the name of it to a file with ls run_image_spc_00187.a.fits > ap_reference.txt where in this example it is image 187.

    Next create a local_extract_params.cl file where you will set the distance range between the sources and background fitting parameters (polynomial order). You can copy a previous file, but will need to be sure that the distance range between the source apertures includes the true value.

    The Argon line identification is a very tedious process. It is easier to start by copying the Wavelength ID file from a previous extraction.

    /reduction_code/ is the path to this repository.

    Load in the extraction parameters with cl < local_extract_parameters.cl

    Create an initial IRAF extractions on the data by running extraction_script

    If the first time running, edit the identification file so that the coefficients for Aperture 1 and Aperture 2 are identical and run again: emacs database/idfirst_wavecal

    If at any time you need to re-run the extraction, first run reset_extraction to wipe the previously created files.

    A useful map of the wavelength identification is included in example_params/labeled_argon_lines_nist.png

    F: Run the custom IDL extraction routine with:

    This step has IDL routines to do optimal extraction and also gives more control over the background subtraction process.

    Navigate to the proc directory

    Make and edit a es_local_parameters.txt . For exampe cp

    /reduction_code/example_params/es_local_parameters.txt . The name must be exactly es_local_parameters.txt . In many cases the default parameters will be OK. You may need to adjust the size of the background aperture size ( BackSize ) if the sources are close.

    Run the backsub command from idl

    One can run es_backsub,/saveSteps to save the individual steps and view background-subtracted fits images to test the residuals. Since this multiplies the amount of data by the number of steps, it only runs on 10 images by default.

    Also, if the wavelength identification is updated, one may run redo_wavecal without re-extracting.

    Error in image section specification - usually it happens when I haven’t loaded the local parameters in (either cl < local_red_parameters.cl in the “edited” directory or cl < local_parameters.cl in the “processed” directory).

    Cannot find sky_choices.txt - didn't make a sky choices file

    You get the following error in ev_backsub :

    This could be that the aperture finding failed. You may notice that after extraction_script , you see something like Trace of aperture 1 in run_2017A013_170704_spc_00281.a lost at column 388. Try choosing another aperture reference file, as described in Section E. Also, make sure that nfind=2 when running epar apall

    ERROR: run_2017A013_170704_spc_00167.a.ms.fits - Missing reference for aperture 3 . It may have found 3 apertures instead of 2. Try choosing another aperture reference file, as described in Section E. Also, make sure that nfind=2 when running epar apall

    ERROR: HDMGETR: No value found "sample="*", naverage=1, nit . This may arise if you have not run adjust_headers first.

    ERROR: No images to combine line 17: reduction_script.cl . No darks were found. Probably the wrong indices in the pre-processing python script.

    ERROR: No write permission on file (String_File) . Double check that the ap_reference.txt file is OK. This happened when I accidentally set ap_reference to be a copy of the FITS file rather than the name of it.

    Multi-image viewer can aid in glancing through files, doing photometry etc.

    Type mphot to do photometry by clicking stars. It will ask you for a box search size in pixels. Create a file in the same directory that miv is run in called phot_params.txt . It should have the following format:


    Plotting a velocity field and creating your own masks

    We will now follow a similar procedure as above for the H&alpha but now for a velocity field.

    First we need to read in the velocity extension and H&alpha channel.

    Let's now make a signal-to-noise cut, so only the H&alpha velocities with a decent signal-to-noise are shown. For this we will use the inverse variance (ivar) extension.

    An important note regarding gas velocity fields: The velocities of the emission lines are tied together, so for example, the velocity of the [OIII]-5007 line is the same as the H&alpha line, as are the uncertainties. You cannot reduce the uncertainty on the measured velocity by averaging the velocities of several lines together.


    ROI-Based Processing

    A region of interest (ROI) is a portion of an image that you want to filter or operate on in some way. The toolbox supports a set of ROI objects that you can use to create ROIs of many shapes, such circles, ellipses, polygons, rectangles, and hand-drawn shapes. After creation, you can use ROI object properties to customize their appearance and functioning. In addition, the ROI objects support object functions and events that you can use to implement interactive behavior. For example, using events, your application can execute custom code whenever the ROI changes position. As a convenience, the toolbox includes a parallel set of convenience functions for ROI creation. For example, to create a rectangular ROI, you can use images.roi.Rectangle or the corresponding convenience function drawrectangle . For more information about ROIs, see ROI Creation Overview.

    A common use of an ROI is to create a binary mask image. In the mask image, pixels that belong to the ROI are set to 1 and pixels outside the ROI are set to 0 . To create a mask, use the createMask object functions supported by most of the ROI objects. You can also create a mask without requiring an image using the poly2mask function.

    Starting in R2018b, a new set of ROI objects replaced the previous set of ROI objects. The new objects provide better performance and more functional capabilities, such as face color transparency. With the new objects, you can also receive notification of interactions with the object, such as clicks or movement, using events. Although there are no plans to remove the old ROI objects at this time, switch to the new ROIs to take advantage of the additional capabilities and flexibility. For more information on migrating to the new ROIs, see ROI Migration.


    How do you create a continuum mask in Python or IDL for a star? - الفلك

    Keck OSIRIS Data Reduction Pipeline

    • New wavelength solution for 2021. OSIRIS had to be opened for servicing in Dec. 2020, so new arc scans were taken in Jan 2021 and new wavelength solutions were created. Tests show that the average wavelength shift at Kn3 35 mas to be about -0.04+-0.07 Angstroms (based on comparisons with OH skylines). At Kn3 50 mas, the shift is on average: 0.38+-0.06 Angstroms.

    Release Notes for v5.0beta

    • New wavelength solution for 2019 & 2020. Unlike data before 2019, there appears to be larger residual offsets in the wavelength solution between different plate scales. The smallest shift is at 50 mas and the grows larger for smaller plate scales. At Kn3 35 mas, the offset is about 0.3 Angstrom based on comparisons with OH sky lines.
    • Handle imager upgrade pixel units (DN) instead of DN/s
    • The FITS files from the imager upgrade were flipped such that the images were not in an astronomical orientation.
    • QL2 will now flip IMAGER images about the x-axis (IDL-> im=reverse(im,2)) for upgraded images only. SPEC and DRP cubes are NOT flipped.
    • Made a slight update to IDL_astro routine xy2ad.pro to handle WCS in OSIMG images.
    • Other minor updates

    2018-05-07 Major Updates

    • Derived new wavelength solution for OSIRIS in March 2018, which was required because OSIRIS was opened. All users are recommended to use this version, especially those with data post March 2018.
    • Updated manual - new installation instructions, wavelength solution, bad pixel mask info, updated information post-2016 detector upgrade are ongoing. Download here

    2017-11-07 Major Updates

    • Includes a new wavelength solution for data after May 2017. A shift in the wavelength solution (on average about 2.8 Angstroms offset) in May 2017 required a re-derivation of the solution. The new solution has an average offset between the observed and vacuum wavelength of OH lines of 0.07 +- 0.06 Angstroms in Kn3 35 mas.
    • A preliminary bad pixel mask is available for data taken after 2016 (new spectrograph detector). The mask was computed from a series of darks. There is both a bad pixel mask of hot pixels (pixels with permanently elevated value) as well as a dead pixel mask (pixels with permanently low values). This mask meant to be used as extension 2 in the raw fits files. Currently, the mask is not automatically applied by Keck. To apply it, use the following command in the raw spectra directory once the pipeline is installed:

    NOTE: this requires python installed with numpy and astropy packages. Tests show that using the bad pixel mask improves the SNR by about 10%.

    • A new keyword is available in the Scaled Sky Subtraction module called scale_fitted_lines_only . To turn on the new behavior, the keyword should be set to YES and the Scale_K_Continuum should be set to NO:

    This keyword will only scale only OH lines, not the rest of the spectrum as well. This setting greatly improves sky subtraction for the case where the science target fills the lenslets and there are no true sky locations. It may also help in other cases. Users are encouraged to try this option if they see large residuals in sky subtraction, or if the residual continuum is problematic.

    • The cosmic ray module is now automatically turned off for all data with the new detector (see reasoning below). Cosmic rays represent about 1% of the bad pixels in a typical 15 minute exposure -- the majority are static bad pixels that should now be accounted for by the bad pixel mask.
    • Updates to the code in order to run the pipeline for the new detector (2016 data and newer).
    • Installation has now been simplified (see below for install directions). Bash scripts have been included for those who would like to use bash shell.
    • Test framework is now available to run tests of the pipeline (requires pytest module in python, see README in ''tests'' directory)
    • Optimized algorithms for the construction of data cubes
    • qlook2, odrfgui, and oopgui are now also included in the repository
    • WCS bugs have been fixed.
    • qlook2 fixes
      • units bug is fixed
      • fix initial autoscale to imager display
      • clean up startup scripts

      Cosmic Ray Module

      • We do not recommend running the cosmic ray module on data in 2016 or later, as it will introduce significant artifacts and reduce overall signal to noise. This is due to the fact that unresolved emission lines such as OH lines are now sharper on the detector. The cosmic ray module will tend to interpret this as a cosmic ray. To remove cosmic rays, we recommend combining data with the mosaic module with the MEANCLIP keyword if there are sufficient number of frames.
      • The cosmic ray module may lead to artifacts in data before 2016 as well, but at a lesser level. We recommend checking on individual science cases.
      • The pipeline team is investigating different cosmic ray modules for a future release.
      • More information is available in Issue 49 or in the wiki.

      Bad pixel mask A preliminary bad pixel mask is available for data taken after 2016 (new spectrograph detector). The mask was computed from a series of darks. There is both a bad pixel mask of hot pixels (pixels with permanently elevated value) as well as a dead pixel mask (pixels with permanently low values). This mask meant to be used as extension 2 in the raw fits files. Currently, the mask is not automatically applied by Keck. To apply it, use the following command in the raw spectra directory once the pipeline is installed:

      NOTE: this requires python installed with numpy and astropy packages. Tests show that using the bad pixel mask improves the SNR by about 10%.

      Old Modules

      • For data taken in 2016 onward, it is no longer necessary to run the following modules: Remove Cross Talk, Glitch Identification. It is fine to keep them in the DRF XML, these modules will automatically not run on the new data.

      Current Important OSIRIS Issues

      • For certain cases, there are flux artifacts: Issue 20, wiki link
      • Spatial rippling is seen in the integrate flux of sky lines spatially across the field: Issue 21 on these and other issues from the most recent OSIRIS Hackathon

      Please cite Lyke et al. (2017) and Lockhart et al. (2019) if you use this pipeline in a publication.

      To install and run the OSIRIS DRP, you will need the following:

      • A working C compiler (e.g. gcc )
      • A copy of the compiled library cfitsio
      • A working installation of IDL 7 or IDL 8 (the IDL binary directory should be in your PATH environment variable)
      • Python dependencies (optional, for testing): pytest, astropy

      Either clone or download the source from github, choose either the master branch or the develop branch.

      Set up the following environment variables to compile the code (you can remove these variables after compiling). The defaults should work for installations of IDL on Mac OS X and CFITSIO installed using MacPorts:

      • IDL_INCLUDE : The IDL include directory. If you don't set IDL_INCLUDE , it defaults to IDL_INCLUDE=/Applications/exelis/idl/external/include
      • CFITSIOLIBDIR : The directory containing your installation of CFITSIO. If you don't set CFITSIOLIBDIR , it will default to CFITSIOLIBDIR=/opt/local/lib , which is correct for MacPorts.

      Run the makefile from the top level of the OSIRIS DRP source code:

      You should see that the pipeline has been built correctly. Be sure you are using gmake (which on OS X is the only make , so using make works.)

      Setup OSIRIS DRP Runtime Environment

      The OSIRIS DRP requires various environment variables to find and run the pipeline. Instructions are below for bash (should work for other POSIX compliant shells) and c-shell. If you want to set up your environment every time you start your shell (e.g. via .cshrc or .bashrc ), you can add the environment variable, OSIRIS_VERBOSE=0 to silence the output of the setup scripts. Otherwise, they will print useful messages about the setup of your OSIRIS pipeline environment.

      Environment Setup in Bash

      You can add these lines to your .bashrc file or other startup profile if you want to set up the osiris environment variables for all of your shell sessions. Add these lines to your profile:

      Remember if your IDL binary is not in your path, you should also add it to your .bashrc file, for example:

      You can add these lines to your .cshrc file or other startup profile if you want to set up the osiris environment variables for each of your shell sessions. Add these lines to your profile:

      Remember if your IDL binary is not in your path, you should also add it to your .cshrc file, for example:

      To run the pipeline, use run_odrp . If you don't want the pipeline to open a new xterm window, call run_odrp -n .

      To run the suite of tests on the pipeline, and you have pytest and astropy in your python environment:

      The first time you run the tests, data will be downloaded so it will take longer. If the tests pass, your pipeline is installed properly. You will see something like the following if the tests pass:

      To set the default directories for the guis, you can edit the following two files:

      If you run into problems, please re-read this README.md, then read INSTALLPROBLEMS.md for some common installation problems.

      OSIRIS DRP Project Contributors

      Alphabetical list of contributors

      • Anna Boehle (@aboehle)
      • Randy Campbell
      • Sam Chappell
      • Devin Chu
      • Mike Fitzgerald (@astrofitz)
      • Tom Gasawy
      • Christof Iserlohe
      • Alfred Krabbe
      • James Larkin
      • Jim Lyke (@jlyke-keck)
      • Kelly Lockhart
      • Jessica Lu
      • Etsuko Mieda
      • Mike McElwain
      • Marshall Perrin
      • Alex Rudy (@alexrudy)
      • Breann Sitarski
      • Andrey Vayner
      • Greg Walth
      • Jason Weiss
      • Tommer Wizanski
      • Shelley Wright

      (If you have contributed to the OSIRIS pipeline and your name is missing, please send an email to the coordinators, or If you have contributed to the OSIRIS pipeline and your name is missing, please send an email to the coordinators, or open a pull request for this page in the OsirisDRP repository


      Gaussfitter¶

      agpy.gaussfitter.collapse_gaussfit(cube, xax=None, axis=2, negamp=False, usemoments=True, nsigcut=1.0, mppsigcut=1.0, return_errors=False, **kwargs) [source] ¶ agpy.gaussfitter.gaussfit(data, err=None, params=(), autoderiv=True, return_all=False, circle=False, fixed=array([False, False, False, False, False, False, False], dtype=bool), limitedmin=[False, False, False, False, True, True, True], limitedmax=[False, False, False, False, False, False, True], usemoment=array([], dtype=bool), minpars=array([0, 0, 0, 0, 0, 0, 0]), maxpars=[0, 0, 0, 0, 0, 0, 360], rotate=1, vheight=1, quiet=True, returnmp=False, returnfitimage=False, **kwargs) [source] ¶

      Gaussian fitter with the ability to fit a variety of different forms of 2-dimensional gaussian.

      data - 2-dimensional data array err=None - error array with same size as data array params=[] - initial input parameters for Gaussian function.

      returnfitimage - returns (best fit params,best fit image) returnmp - returns the full mpfit struct circle=0 - default is an elliptical gaussian (different x, y widths),

      Warning: Does NOT necessarily output a rotation angle between 0 and 360 degrees.

      Returns (height, amplitude, x, y, width_x, width_y, rotation angle) the gaussian parameters of a 2D distribution by calculating its moments. Depending on the input parameters, will only output a subset of the above.

      If using masked arrays, pass estimator=numpy.ma.median

      agpy.gaussfitter.multigaussfit(xax, data, ngauss=1, err=None, params=[1, 0, 1], fixed=[False, False, False], limitedmin=[False, False, True], limitedmax=[False, False, False], minpars=[0, 0, 0], maxpars=[0, 0, 0], quiet=True, shh=True, veryverbose=False) [source] ¶

      An improvement on onedgaussfit. Lets you fit multiple gaussians.

      These parameters need to have length = 3*ngauss. If ngauss > 1 and length = 3, they will be replicated ngauss times, otherwise they will be reset to defaults:

      params - Fit parameters: [amplitude, offset, width] * ngauss If len(params) % 3 == 0, ngauss will be set to len(params) / 3

      fixed - Is parameter fixed? limitedmin/minpars - set lower limits on each parameter (default: width>0) limitedmax/maxpars - set upper limits on each parameter

      quiet - should MPFIT output each iteration? shh - output final parameters?

      Returns a function that sums over N gaussians, where N is the length of a,dx,sigma أو N = len(pars) / 3

      The background “height” is assumed to be zero (you must “baseline” your spectrum before fitting)

      pars - a list with len(pars) = 3n, assuming a,dx,sigma repeated dx - offset (velocity center) values sigma - line widths a - amplitudes

      agpy.gaussfitter.onedgaussfit(xax, data, err=None, params=[0, 1, 0, 1], fixed=[False, False, False, False], limitedmin=[False, False, False, True], limitedmax=[False, False, False, False], minpars=[0, 0, 0, 0], maxpars=[0, 0, 0, 0], quiet=True, shh=True, veryverbose=False, vheight=True, negamp=False, usemoments=False) [source] ¶ Inputs:

      xax - x axis data - y axis err - error corresponding to data

      params - Fit parameters: Height of background, Amplitude, Shift, Width fixed - Is parameter fixed? limitedmin/minpars - set lower limits on each parameter (default: width>0) limitedmax/maxpars - set upper limits on each parameter quiet - should MPFIT output each iteration? shh - output final parameters? usemoments - replace default parameters with moments

      Returns a 1-dimensional gaussian of form H+A*numpy.exp(-(x-dx)**2/(2*w**2))

      Returns (height, amplitude, x, width_x) the gaussian parameters of a 1D distribution by calculating its moments. Depending on the input parameters, will only output a subset of the above.

      If using masked arrays, pass estimator=numpy.ma.median ‘estimator’ is used to measure the background level (height)

      negamp can be used to force the peak negative (True), positive (False), or it will be “autodetected” (negamp=None)

      Returns a 2d gaussian function of the form: x’ = numpy.cos(rota) * x - numpy.sin(rota) * y y’ = numpy.sin(rota) * x + numpy.cos(rota) * y (rota should be in degrees) g = b + a * numpy.exp ( - ( ((x-center_x)/width_x)**2 + ((y-center_y)/width_y)**2 ) / 2 )

      inpars = [b,a,center_x,center_y,width_x,width_y,rota] (b is background height, a is peak amplitude)

      where x and y are the input parameters of the returned function, and all other parameters are specified by this function

      However, the above values are passed by list. The list should be: inpars = (height,amplitude,center_x,center_y,width_x,width_y,rota)

      You can choose to ignore / neglect some of the above input parameters

      unumpy.sing the following options: circle=0 - default is an elliptical gaussian (different x, y


      Packaging has started and developers might try the packaging code in VCS

      Python3-astroalign: Astrometric registration of images when no WCS info is available

      ASTROALIGN is a python module that will try to align two stellar astronomical images, especially when there is no WCS information available.

      It does so by finding similar 3-point asterisms (triangles) in both images and deducing the affine transformation between them.

      Generic registration routines try to match feature points, using corner detection routines to make the point correspondence. These generally fail for stellar astronomical images, since stars have very little stable structure and so, in general, indistinguishable from each other. Asterism matching is more robust, and closer to the human way of matching stellar images.

      Python3-extinction: Fast interstellar dust extinction laws (Python 3)

      Extinction contains Cython-optimised implementations of empirical dust extinction laws found in the astronomical literature.

      This package contains the Python 3 version of the package.

      Python3-heliopy: Python for heliospheric and planetary physics

      A python library for heliospheric and planetary Physics. The primary goal of HelioPy is to provide a set of tools to download and read in data, and to carry out other common data processing tasks.

      Python3-pyspeckit: Python toolkit for fitting and manipulating spectroscopic data (Python 3)

      PySpecKit is a code framework designed to allow for analysis of spectroscopic data from a wide variety of astronomical instruments. Initial implementation focuses on optical and radio applications, e.g. gaussian and voigt profile fitting, baseline/continuum fitting, and equivalent width measurements.

      Python3-supersmoother: Python implementation of Friedman's Supersmoother (Python 3)

      This is an efficient implementation of Friedman’s SuperSmoother based in Python. It makes use of numpy for fast numerical computation

      This package installs the library for Python 3.


      Matplotlib.pyplot.plot¶

      The coordinates of the points or line nodes are given by x, ذ.

      The optional parameter fmt is a convenient way for defining basic formatting like color, marker and linestyle. It's a shortcut string notation described in the Notes section below.

      You can use Line2D properties as keyword arguments for more control on the appearance. Line properties and fmt can be mixed. The following two calls yield identical results:

      When conflicting with fmt, keyword arguments take precedence.

      Plotting labelled data

      There's a convenient way for plotting objects with labelled data (i.e. data that can be accessed by index obj['y'] ). Instead of giving the data in x و ذ, you can provide the object in the data parameter and just give the labels for x و ذ:

      All indexable objects are supported. This could e.g. be a dict , a pandas.DataFrame or a structured numpy array.

      Plotting multiple sets of data

      There are various ways to plot multiple sets of data.

      The most straight forward way is just to call plot multiple times. Example:

      If x and/or ذ are 2D arrays a separate data set will be drawn for every column. إذا كان كل من x و ذ are 2D, they must have the same shape. If only one of them is 2D with shape (N, m) the other must have length N and will be used for every data set m.

      The third way is to specify multiple sets of [x], ذ, [fmt] groups:

      In this case, any additional keyword argument applies to all datasets. Also this syntax cannot be combined with the data parameter.

      By default, each line is assigned a different style specified by a 'style cycle'. ال fmt and line property parameters are only necessary if you want explicit deviations from these defaults. Alternatively, you can also change the style cycle using rcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']) ).

      The horizontal / vertical coordinates of the data points. x values are optional and default to range(len(y)) .

      Commonly, these parameters are 1D arrays.

      They can also be scalars, or two-dimensional (in that case, the columns represent separate data sets).

      These arguments cannot be passed as keywords.

      fmt str, optional

      A format string, e.g. 'ro' for red circles. See the Notes section for a full description of the format strings.

      Format strings are just an abbreviation for quickly setting basic line properties. All of these and more can also be controlled by keyword arguments.

      This argument cannot be passed as keyword.

      data indexable object, optional

      An object with labelled data. If given, provide the label names to plot in x و ذ.

      Technically there's a slight ambiguity in calls where the second label is a valid fmt. plot('n', 'o', data=obj) could be plt(x, y) or plt(y, fmt) . In such cases, the former interpretation is chosen, but a warning is issued. You may suppress the warning by adding an empty format string plot('n', 'o', '', data=obj) .

      A list of lines representing the plotted data.

      These parameters determine if the view limits are adapted to the data limits. The values are passed on to autoscale_view .

      **kwargs Line2D properties, optional

      kwargs are used to specify properties like a line label (for auto legends), linewidth, antialiasing, marker face color. Example:

      If you specify multiple lines with one plot call, the kwargs apply to all those lines. In case the label object is iterable, each element is used as labels for each set of data.

      Here is a list of available Line2D properties:

      scatter XY scatter plot with markers of varying size and/or color ( sometimes also called bubble chart).

      Format Strings

      A format string consists of a part for color, marker and line:

      Each of them is optional. If not provided, the value from the style cycle is used. Exception: If line is given, but no marker , the data will be a line without markers.

      Other combinations such as [color][marker][line] are also supported, but note that their parsing may be ambiguous.


      شاهد الفيديو: Python لغة البايثون بالعربي للمبتدئين (شهر اكتوبر 2021).