Move spex prism loader to specutils
まだ誰も着手していません。
評価
調査の方向性
示されている _identify_spex、identify_spex_prism、spex_prism_loader のエントリポイントから始め、次に移行先のコンテキストについて関連する specutils issue 1259 を読んでください。完了条件は、SpeX loader とその識別動作が specutils に移され、既存の FITS、単位、不確かさ、メタデータの動作が維持されていることです。
索引モデルが issue の本文から書いたものです。
説明
Move Spex loader to specutils. Related issue https://github.com/astropy/specutils/issues/1259
def _identify_spex(filename):
"""
Check whether the given file is a SpeX data product.
"""
try:
with fits.open(filename, memmap=False) as hdulist:
return "spex" in hdulist[0].header["INSTRUME"].lower() and "irtf" in hdulist[0].header["TELESCOP"].lower()
except Exception: # pylint: disable=broad-except,
return False
def identify_spex_prism(origin, *args, **kwargs):
"""
Confirm this is a SpeX Prism FITS file.
See FITS keyword reference at http://irtfweb.ifa.hawaii.edu/~spex/observer/
Notes: GRAT has values of: ShortXD, Prism, LXD_long, LXD_short, SO_long, SO_short
"""
is_spex = _identify_spex(args[0])
if is_spex:
with fits.open(args[0], memmap=False) as hdulist:
return (
isinstance(args[0], str)
and os.path.splitext(args[0].lower())[1] == ".fits"
and is_spex
and ("lowres" in hdulist[0].header["GRAT"].lower() or "prism" in hdulist[0].header["GRAT"].lower())
)
else:
return is_spex
@data_loader("Spex Prism", identifier=identify_spex_prism, extensions=["fits"], dtype=Spectrum)
def spex_prism_loader(filename, **kwargs):
"""Open a SpeX Prism file and convert it to a Spectrum1D object"""
with fits.open(filename, **kwargs) as hdulist:
header = hdulist[0].header
tab = hdulist[0].data
# Handle missing/incorrect units
try:
flux_unit = header["YUNITS"].replace("ergs", "erg ").strip()
wave_unit = header["XUNITS"].replace("Microns", "um")
except (KeyError, ValueError):
# For now, assume some default units
flux_unit = "erg"
wave_unit = "um"
wave, data = tab[0] * Unit(wave_unit), tab[1] * Unit(flux_unit)
if tab.shape[0] == 3:
uncertainty = StdDevUncertainty(tab[2])
else:
uncertainty = None
meta = {"header": header}
return Spectrum(flux=data, spectral_axis=wave, uncertainty=uncertainty, meta=meta)
- 主要言語
- Python
- スター
- 12
- フォーク
- 5
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
astrodbtoolkit/AstrodbKit のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
astrodbtoolkit/AstrodbKit#110 ·
-
Nulls and load_tableオープン
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
astrodbtoolkit/AstrodbKit#109 ·
-
Remove `wcs1d_multispec` reader.再び着手できるかも @dr-rodriguez が 333 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
astrodbtoolkit/AstrodbKit#105 · 担当者 1 名 ·
-
Check if conn.commit() is required再び着手できるかも @dr-rodriguez が 445 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug
astrodbtoolkit/AstrodbKit#103 · 担当者 1 名 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 42/100
astrodbtoolkit/AstrodbKit#101 · コメント 1 件 ·
astrodbtoolkit/AstrodbKit の issue をすべて見る
似ている issue
-
namespace operations
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
EclipseFdn/open-vsx.org#14043 ·
メンテナーはふだん 1 日以内に返信
-
feedback simulation workshop
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
githubnext/gh-aw-workshop#4455 ·
メンテナーはふだん 1 日以内に返信
-
Triage 🩺
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
[BUG] Container scenario crashes without expected_recovery_time, kube DNS example uses retry_waitオープンneeds-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
krkn-chaos/krkn#1627 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
NousResearch/hermes-agent#136483 ·
メンテナーはふだん 1 日以内に返信