Обработка файлов апертуру научных инструментов (SIAF) для космических телескопов. Файлы SIAF содержат подробные описания геометрических фокусных плоскостей и отношения для научных инструментов. Они поддерживаются в JWST/HST PRD (эталонная база данных проекта).
Pysiaf - это пакет 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-documents Полем
Pysiaf задокументирован по адресу https://pysiaf.readthedocs.io/
Если вы найдете этот пакет полезным, пожалуйста, рассмотрите возможность ссылки на запись Zenodo, используя значок DOI выше. Пожалуйста, найдите дополнительные инструкции по цитированию в цитировании.
Все значения параметров в Pysiaf могут быть изменены. Значения JWST являются предварительными до тех пор, пока в эксплуатацию JWST обсерваторию не завершится.
Искажение и другие преобразования в Pysiaf имеют достаточную точность для операций, но не обязательно имеют качество научного уровня. Например, как правило, только одно раствор фильтра переносится в соответствии с апертурой. Для преобразования науки, пожалуйста, проконсультируйтесь с научными трубопроводами и их эталонными файлами (см.
Для планирования научных наблюдений геометрия фокальной плоскости, внедренная в последней APT (http://www.stsci.edu/hst/proposing/apt) имеет приоритет.
Ветвь телескопа STSCI обеспечивает полную поддержку PYSIAF только для операционных систем S & OC.
Пожалуйста, откройте новую проблему или новый запрос на привлечение ошибок, отзывы или новые функции, которые вы хотели бы увидеть. Если есть проблема, над которой вы хотели бы поработать, оставьте комментарий, и мы будем рады помочь. Новые взносы и участники очень рады!
У вас есть отзывы и запросы функций? Что -то не хватает, что вы хотели бы увидеть? Пожалуйста, откройте проблему или отправьте электронное письмо со стороны сопровождающих. Этот пакет следует за кодом поведения космического телескопа, чтобы предоставить гостеприимное сообщество всем нашим пользователям и участникам.
Ниже описывается типичный рабочий процесс для участия в проекте Pysiaf (адаптированный из JWQL): 0. Не проводите какую-либо конфиденциальную информацию (например, структуры проходов STSCI-Internal, имена машин, имена пользователей, пароли и т. Д.) Полем История GIT не может быть стерта.
spacetelescope pysiaf в вашем личном пространстве GitHub.upstream до https://github.com/spacetelescope/pysiafspacetelescope pysiaf , которая описывает необходимость и характер изменений, которые вы планируете внести. Это не обязательно для незначительных изменений и исправлений.origin .pysiaf spacetelescope создайте запрос на вытягивание, которое объединяет ветвь в 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 установлен для