معالجة ملفات فتحة أدوات العلوم (SIAF) لتلسكوبات الفضاء. تحتوي ملفات SIAF على أوصاف وعلاقات محورية هندسية مفصلة لأدوات العلوم. يتم الحفاظ عليها في JWST/HST PRD (قاعدة بيانات مرجع المشروع).
PyiAf هي حزمة Python للوصول إلى SIAF وتفسيرها وصيانتها وتوليدها ، خاصة لـ JWST. يتم توفير أدوات لتطبيق تحولات الإطار ، والتخطيط ، والمقارنة ، والتحقق من الصحة.
تحقق من إصدار PRD قيد الاستخدام:
print(pysiaf.JWST_PRD_VERSION)
تحولات الإطار ( det ، sci ، idl ، tel هي إطارات مدعومة):
import pysiaf
instrument = 'NIRISS'
# read SIAFXML
siaf = pysiaf.Siaf(instrument)
# select single aperture by name
nis_cen = siaf['NIS_CEN']
# access SIAF parameters
print('{} V2Ref = {}'.format(nis_cen.AperName, nis_cen.V2Ref))
print('{} V3Ref = {}'.format(nis_cen.AperName, nis_cen.V3Ref))
for attribute in ['InstrName', 'AperShape']:
print('{} {} = {}'.format(nis_cen.AperName, attribute, getattr(nis_cen, attribute)))
# coordinates in Science frame
sci_x = np.array([0, 2047, 2047, 0])
sci_y = np.array([0, 0, 2047, 2047])
# transform from Science frame to Ideal frame
idl_x, idl_y = nis_cen.sci_to_idl(sci_x, sci_y)
التآمر (تم توضيح مجموعة فرعية صغيرة فقط من الخيارات):



import matplotlib.pyplot as plt
plt.figure(figsize=(4, 4), facecolor='w', edgecolor='k'); plt.clf()
# plot single aperture
nis_cen.plot()
# plot all apertures in SIAF
for aperture_name, aperture in siaf.apertures.items():
aperture.plot()
plt.show()
# plot 'master' apertures
from pysiaf.siaf import plot_master_apertures
plt.figure(figsize=(8, 8), facecolor='w', edgecolor='k'); plt.clf()
plot_master_apertures(mark_ref=True)
plt.show()
# plot HST apertures
siaf = pysiaf.Siaf('HST')
aperture_names = ['FGS1', 'FGS2', 'FGS3', 'IUVIS1FIX', 'IUVIS2FIX', 'JWFC1FIX', 'JWFC2FIX']
plt.figure(figsize=(4, 4), facecolor='w', edgecolor='k')
for aperture_name in aperture_names:
siaf[aperture_name].plot(color='r', fill_color='darksalmon', mark_ref=True)
ax = plt.gca()
ax.set_aspect('equal')
ax.invert_yaxis()
plt.show()
المرجع الأساسي لوصف JWST SIAF هو Cox & Lallo ، 2017 ، JWST-STSCI-001550: الوصف واستخدام ملف فتحة أدوات العلوم JWST ، متاح على https://jwst.stsci.edu/documentation/technical-cification .
تم توثيق pysiaf في https://pysiaf.readthedocs.io/
إذا وجدت هذه الحزمة مفيدة ، فيرجى التفكير في ذكر سجل Zenodo باستخدام شارة DOI أعلاه. يرجى العثور على تعليمات استشهاد إضافية في الاقتباس.
جميع قيم المعلمات في pysiaf عرضة للتغيير. قيم JWST هي أولية حتى انتهى تكليف مرصد JWST.
التشويه وغيرها من التحولات في pysiaf هي ذات دقة كافية للعمليات ، ولكن ليس بالضرورة جودة من الدرجة العلمية. على سبيل المثال ، يتم حمل محلول مرشح واحد فقط لكل فتحة. للاطلاع على التحولات على مستوى العلوم ، يرجى الرجوع إلى خطوط أنابيب العلوم والملفات المرجعية الخاصة بهم (انظر https://jwst-docs.stsci.edu/jwst-data-reduction-pipeline)
لتخطيط مراقبة العلوم ، فإن هندسة الطائرة البؤرية التي تم تنفيذها في أحدث APT (http://www.stsci.edu/hst/proposing/apt) لها الأسبقية.
يوفر فرع STSCI Telescopes دعمًا كاملاً لـ PYSIAF لأنظمة التشغيل S & OC فقط.
يرجى فتح مشكلة جديدة أو طلب سحب جديد للأخطاء أو التعليقات أو الميزات الجديدة التي ترغب في رؤيتها. إذا كانت هناك مشكلة ترغب في العمل عليها ، فيرجى ترك تعليق وسنكون سعداء بالمساعدة. مساهمات جديدة والمساهمين مرحب بهم للغاية!
هل لديك ملاحظات وطلبات الميزات؟ هل هناك شيء مفقود تود رؤيته؟ يرجى فتح مشكلة أو إرسال بريد إلكتروني إلى المشرفين. تتبع هذه الحزمة مدونة سلوك التلسكوب الفضائي تسعى جاهدة لتوفير مجتمع ترحيبي لجميع مستخدمينا ومساهمينا.
يصف ما يلي تدفق العمل النموذجي للمساهمة في مشروع PYSIAF (مقتبس من JWQL): 0. . لا يمكن محو تاريخ GIT.
spacetelescope pysiaf على مساحة github الشخصية.upstream إلى https://github.com/spacetelescope/pysiafspacetelescope pysiaf التي تصف الحاجة إلى طبيعة التغييرات التي تخطط لإجراءها. هذا ليس ضروريًا للتغييرات الطفيفة والإصلاحات.origin .spacetelescope pysiaf ، قم بإنشاء طلب سحب يدمج الفرع في spacetelescope:master .هذه الحزمة مدعومة في Python 3.10+
pip install pysiaf
استنساخ المستودع:
git clone https://github.com/spacetelescope/pysiaf
تثبيت pysiaf:
cd pysiaf
pip install .
تثبيت في وضع تطوير pip install -e .
إذا حصلت على خطأ
import pysiaf
التي تعود إلى
import lxml.etree as ET
والدول
ImportError [...] Library not loaded: libxml2.2.dylib Reason: Incompatible library version: etree.[...] requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0
من المحتمل أن يتم إصلاح هذا عن طريق خفض إصدار LXML ، على سبيل المثال
pip uninstall lxml
pip install lxml==3.6.4
مشكلات تثبيت PYQT5: إذا كان استخدام MACOS MOJAVE ، فإنه يتسبب في فشل MATPLOTLIB دون PYQT5. يرجى اتخاذ الإجراء المناسب للتأكد من تثبيت PYQT5