宇宙望遠鏡用の科学機器開口ファイル(SIAF)の取り扱い。 SIAFファイルには、科学機器の詳細な幾何学的焦点面の説明と関係が含まれています。これらは、JWST/HST PRD(プロジェクトリファレンスデータベース)で維持されています。
Pysiafは、特にJWSTにSIAFにアクセス、解釈、保守、生成するためのPythonパッケージです。フレーム変換、プロット、比較、および検証を適用するためのツールが提供されます。
どの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 Science Instrument Apertureファイルの説明と使用、https://jwst.stsci.edu/documentation/technical-documentsで入手可能です。 。
Pysiafはhttps://pysiaf.readthedocs.io/に文書化されています
このパッケージが役立つ場合は、上記のDOIバッジを使用してZenodoレコードを引用することを検討してください。引用の追加の引用指示を見つけてください。
PYSIAFのすべてのパラメーター値は、変更される場合があります。 JWSTの値は、JWST天文台の委託が終了するまで予備的です。
PYSIAFの歪みやその他の変換は、運用に十分な精度がありますが、必ずしも科学グレードの品質を持っているわけではありません。たとえば、通常、1つのフィルターソリューションのみが開口部ごとに運ばれます。サイエンスグレードの変換については、科学パイプラインとその参照ファイルを参照してください(https://jwst-docs.stsci.edu/jwst-data-reduction-pipelineを参照)
科学の観察計画のために、最新のAPT(http://www.stsci.edu/hst/proposing/apt)に実装された焦点面のジオメトリが優先されます。
STSCI望遠鏡ブランチは、S&OC運用システムのみのPysiafの完全なサポートを提供します。
バグ、フィードバック、または見たい新しい機能の新しい問題または新しいプルリクエストを開いてください。取り組みたい問題がある場合は、コメントを残してください。喜んでお手伝いします。新しい貢献と貢献者は大歓迎です!
フィードバックと機能のリクエストはありますか?見逃しているものはありますか?問題を開くか、メンテナーにメールを送信してください。このパッケージは、宇宙望遠鏡の行動規範に従って、すべてのユーザーと貢献者に歓迎のコミュニティを提供するよう努めています。
以下は、PYSIAFプロジェクトに貢献するための典型的なワークフロー(JWQLからの適応)について説明します。0。 。 Gitの履歴を消去することはできません。
spacetelescope pysiafリポジトリからフォークを作成します。upstream向けていることを確認してくださいspacetelescope pysiafで問題を開きます。これは、軽微な変更や修正には必要ありません。originにプッシュします。spacetelescope pysiafリポジトリで、ブランチをspacetelescope:masterにマージするプルリクエストを作成します。このパッケージは、Python 3.10+でサポートされています
pip install pysiaf
リポジトリをクローンします:
git clone https://github.com/spacetelescope/pysiaf
pysiafをインストールします:
cd pysiaf
pip install .
Develop Mode 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を使用する場合、Pyqt5なしでMatplotlibを失敗させます。 PYQT5がインストールされていることを確認するために適切なアクションを実行してください