Manuseio de arquivos de abertura do instrumento científico (SIAF) para telescópios espaciais. Os arquivos SIAF contêm descrições e relacionamentos geométricos de planos geométricos detalhados para os instrumentos científicos. Eles são mantidos no PRD JWST/HST (banco de dados de referência do projeto).
O Pysiaf é um pacote Python para acessar, interpretar, manter e gerar SIAF, em particular para o JWST. São fornecidas ferramentas para aplicar as transformações de quadros, plotagem, comparação e validação.
Verifique qual versão PRD está em uso:
print(pysiaf.JWST_PRD_VERSION)
Transformações de quadros ( det , sci , idl , tel são quadros suportados):
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)
Plotagem (apenas um pequeno subconjunto de opções é ilustrado):



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()
A referência principal para uma descrição do JWST SIAF é Cox & Lallo, 2017, JWST-STSCI-001550: Descrição e uso do arquivo de abertura do instrumento científico JWST , disponível em https://jwst.stsci.edu/documentation/technical-documents .
Pysiaf está documentado em https://pysiaf.readthedocs.io/
Se você achar esse pacote útil, considere citar o registro Zenodo usando o crachá do DOI acima. Encontre instruções de citação adicionais em citação.
Todos os valores de parâmetros no Pysiaf estão sujeitos a alterações. Os valores da JWST são preliminares até que o comissionamento do Observatório JWST conclua.
A distorção e outras transformações em Pysiaf são de precisão suficiente para as operações, mas não necessariamente têm qualidade de nível científica. Por exemplo, geralmente apenas uma solução de filtro é transportada por abertura. Para transformações de grau de ciência, consulte os pipelines de ciências e seus arquivos de referência (consulte https://jwst-docs.stsci.edu/jwst-data-reduction-pipeline)
Para o planejamento da observação científica, a geometria do plano focal implementado no mais recente apt (http://www.stsci.edu/hst/propososing/apt) tem precedência.
A filial do STSCI Telescops fornece suporte total ao PYSIAF apenas para sistemas operacionais S & OC.
Por favor, abra um novo problema ou uma nova solicitação de tração de bugs, feedback ou novos recursos que você gostaria de ver. Se houver um problema em que você gostaria de trabalhar, deixe um comentário e teremos o maior prazer em ajudar. Novas contribuições e colaboradores são muito bem -vindos!
Você tem feedback e solicitações de recursos? Há algo faltando que você gostaria de ver? Abra um problema ou envie um email para os mantenedores. Este pacote segue o Código de Conduta do Telescópio Espacial se esforça para fornecer uma comunidade acolhedora a todos os nossos usuários e colaboradores.
A seguir, descreve o fluxo de trabalho típico para contribuir para o projeto PYSIAF (adaptado do JWQL): 0. Não cometa nenhuma informação confidencial (por exemplo, estruturas de caminho-internal STSCI, nomes de máquinas, nomes de usuário, senhas etc.) para este repositório público . A história do Git não pode ser apagada.
spacetelescope pysiaf no seu espaço pessoal do Github.upstream para https://github.com/spacetelescope/pysiafspacetelescope pysiaf que descreve a necessidade e a natureza das mudanças que você planeja fazer. Isso não é necessário para pequenas alterações e correções.origin .spacetelescope pysiaf , crie uma solicitação de tração que mescla o ramo no spacetelescope:master .Este pacote é suportado no Python 3.10+
pip install pysiaf
Clone o repositório:
git clone https://github.com/spacetelescope/pysiaf
Instale o Pysiaf:
cd pysiaf
pip install .
Instale no modo de desenvolvimento pip install -e .
Se você receber um erro
import pysiaf
que remonta a
import lxml.etree as ET
e estados
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 ,
Provavelmente isso pode ser corrigido rebaixando a versão do LXML, por exemplo
pip uninstall lxml
pip install lxml==3.6.4
Problemas de instalação do PYQT5: Se estiver usando o MacOS Mojave, faz com que o matplotlib falhe sem Pyqt5. Por favor, tome as medidas apropriadas para garantir que o PYQT5 esteja instalado para