Skip to main content

Catalogue des 183 descripteurs spectraux

Ce document recense les 183 descripteurs spectroscopiques qui constituent la matrice de données centrale du projet AstroSpectro. Ils ont été extraits à partir de N = 43 019 spectres LAMOST DR5 et validés par croisement avec Gaia DR3. C'est sur ce jeu de descripteurs que sont appliquées la PCA, l'UMAP, le t-SNE et le classifieur XGBoost du pipeline.

Contexte PHY-3500

Ce catalogue correspond exactement au jeu de données décrit dans le rapport Baker, Caillat & Jean, «La réduction de dimension conserve-t-elle l'essentiel de l'information physique des spectres stellaires ?», PHY-3500, Université Laval, 28 avril 2026.


Vue d'ensemble

Deux niveaux de lecture

Les 183 descripteurs peuvent être lus selon deux grilles complémentaires.

La grille physique (6 familles, utilisée dans le rapport PHY-3500) regroupe les descripteurs par l'observable astrophysique qu'ils mesurent — c'est le cadre utilisé pour interpréter les loadings PCA et les clusters HDBSCAN.

La grille technique (9 familles, issue du module feature_engineering.py V2) reflète l'architecture du code — c'est le cadre utile pour comprendre comment les descripteurs sont calculés.

Répartition des 183 descripteurs par famille physique

35
Raies de Balmer
Hα–Hθ
Teff — axe thermique PC1
PC1 31.5%
20
Calcium ionisé
Ca II H&K + triplet IR
Métallicité + chromosphère
PC1 22.4%
15
Magnésium & α
Mg b, Mg 5184, [α/Fe]
[Mg/Fe], population I/II
30
Fer & métaux
Fe, Cr, V, Ni, Ba, Sr...
[Fe/H] — axe métallicité PC2
PC2 43.3%
18
Indices Lick/SDSS
Lick IDS, CaH, TiO
Âge + métallicité composite
65
Continuum
Pentes, courbures, couleurs
Teff (pente) · luminosité (sauts)
Chaque case = 1 descripteur spectroscopique · 183 total · survoler une famille pour la mettre en évidence
Comptage exact

Le nombre exact de descripteurs actifs est déterminé au premier appel de FeatureEngineer.extract_features() via _populate_feature_names() (ordre alphabétique stable). Le module feature_engineering.py V2 déclare 174 features spectrales pures ; les 9 features restantes proviennent des fonctions post-merge (add_gaia_derived_features, add_photometric_composites) appelées après le croisement avec le catalogue.


Couverture spectrale — positions des raies sur le spectre LAMOST

La visualisation ci-dessous montre où se situent les raies de chaque famille dans la couverture spectrale LAMOST (3 690–9 100 Å). Le trait vertical indique la séparation entre le bras bleu et le bras rouge du spectrographe.

Couverture spectrale LAMOST DR5 — 3 690–9 100 Å — positions des familles de raies
bras bleu | bras rouge
H10
H9
H8
Ca K
Ca H
IR1
IR2
IR3
Mg b
Fe
Fe
Fe
Na D
TiO
TiO
TiO
TiO
3690
4000
4500
5000
5500
6000
6500
7000
7500
8000
8500
9100
Balmer (H)
Ca II H&K + IR
Mg b
Fer & métaux
Bandes moléculaires
Å

Variables exclues du jeu de données PHY-3500

Avant toute analyse, les variables suivantes ont été supprimées du jeu de données initial :

ra
Coordonnée angulaire
Biais géographique et systématique instrumental de l'observation.
dec
Coordonnée angulaire
Biais géographique et systématique instrumental (redondant avec RA).
redshift
Métadonnée LAMOST
Biais observationnel non lié aux propriétés physiques intrinsèques.
Mode spectro_only=True

Dans le pipeline supervisé AstroSpectro, ces variables sont exclues via le paramètre spectro_only=True du SpectralClassifier. Elles constituent un exemple de fuite de données (feature leakage) : leur pouvoir discriminant provient du contexte d'observation, pas des propriétés physiques intrinsèques de l'étoile. Les résultats publiés (87 % de précision équilibrée, ROC-AUC ~0,964) utilisent exclusivement des descripteurs spectraux.


Familles physiques détaillées

Famille 1 — Raies de Balmer (Hα–Hθ)

Les raies de la série de Balmer (transitions vers le niveau n=2 de l'hydrogène) sont les indicateurs de température les plus puissants de l'espace spectral LAMOST. Elles contribuent à 31,5 % de la variance de PC1 (axe thermique) dans l'analyse PCA du jeu de 183 descripteurs.

Raie
λ (Å)
Position
Descripteurs extraits
6562.8
prominence, FWHM, W(Hα), présence, profil complet (10 métriques)
4861.3
prominence, FWHM, W(Hβ), présence
4340.5
W(Hγ), ratio γ/β
4101.7
W(Hδ), ratio δ/γ
3970.1
prominence
H8
3889.0
prominence
H9
3835.4
prominence
H10
3797.9
prominence
Position dans le spectre LAMOST 3690–9100 Å — Hα dans le rouge, H10 dans l'UV proche

Ratios de raies de Balmer extraits :

  • feature_balmer_ratio_gamma_beta : W(Hγ) / W(Hβ)
  • feature_balmer_ratio_delta_gamma : W(Hδ) / W(Hγ)
  • feature_balmer_temperature_index : (γ/β + δ/γ) / 2 — les étoiles chaudes tendent vers 1, les froides dépassent 1

Lien avec la PCA : ρ(PC1, Teff) = +0,831 (Spearman, N = 43 019). W(Hα) est le premier loading absolu de PC1 (w = +0,173).


Famille 2 — Calcium ionisé — Ca II H&K et triplet IR

Les raies Ca II H (3968 Å) et K (3934 Å) sont des indicateurs de métallicité et de gravité de surface. Le triplet IR (8498, 8542, 8662 Å) est sensible à la chromosphère et à l'activité magnétique.

Raie
λ (Å)
Espèce
Position
Descripteurs extraits
Ca II K
3933.7
Ca II
prominence, FWHM, W(CaIIK), profil complet (10 métriques)
Ca II H
3968.5
Ca II
prominence, FWHM, W(CaIIH)
Ca 8498
8498.0
Ca II
EW via indice CaII_triplet
Ca 8542
8542.1
Ca II
EW via indice CaII_triplet
Ca 8662
8662.1
Ca II
EW via indice CaII_triplet
Raies H et K dans l'UV proche (bras bleu LAMOST) · Triplet IR dans le rouge profond (bras rouge)

Indices composites Ca II :

  • EW_CaHK_sum : W(Ca II K) + W(Ca II H) — proxy de métallicité global
  • ratio_EW_CaK_CaH : rapport des largeurs équivalentes H/K
  • feature_ratio_prom_CaK_Hbeta : prominence(Ca II K) / prominence(Hβ) — proxy robuste de température

Contribution aux axes PCA : Le calcium contribue à 22,4 % de la variance de PC1 (second groupe après Balmer), confirmant son rôle d'indicateur thermique. La corrélation ρ(PC1, [Fe/H]) = −0,548 montre que PC1 capture aussi une part de la métallicité.


Famille 3 — Magnésium et raies α — Mg b, Mg 5184, [α/Fe]

Le triplet Mg b (autour de 5175 Å) et les indices α sont sensibles à la métallicité et à l'abondance relative des éléments α par rapport au fer — indicateur de l'histoire chimique de l'étoile (populations I/II).

Raie / Indice
λ (Å)
Position
Descripteurs extraits
Mg b
5175.0
prominence, FWHM, W(Mg b) — triplet 5167/5173/5184 Å
Mg b Lick
5175.0
indice Lick feature_index_Mgb_index · fenêtre 5160–5190 Å
Mg 1 Lick
5102.0
feature_index_Mg_1 · fenêtre 5069–5135 Å
Mg 2 Lick
5176.0
feature_index_Mg_2 · fenêtre 5154–5197 Å
Triplet Mg b à ~5175 Å — visible milieu · indicateur [Mg/Fe] et populations stellaires

Ratios impliquant Mg b :

  • feature_ratio_prom_Mgb_Hbeta : prominence(Mg b) / prominence(Hβ)
  • ratio_EW_MgB_NaD : rapport W(Mg b) / W(Na D)
  • contrast_metals_vs_balmer : contraste Mg/Ca vs Balmer — proxy de [Fe/H]

Proxies composites :

  • feature_FeH_proxy : estimé depuis l'indice métallique combiné
  • feature_alpha_Fe_proxy : log10(α_index / iron_index), borné entre −0,5 et +0,5

Famille 4 — Fer et métaux de pic de fer — Fe, Cr, V, Ni, Ba, Sr, Al, Co

Cette famille regroupe les raies des éléments du pic de fer, sensibles à la métallicité globale [Fe/H]. Elle domine PC2 avec 43,3 % de la variance — PC2 est l'axe métallicité du jeu de descripteurs.

Force :
strong
medium
weak
· La barre montre la position λ dans 3690–9100 Å
Fe
Fer · Fe I / Fe II
6 raies
4383.5 Å
Fe I
4531.1 Å
Fe II
5270.4 Å
Fe I
5335.2 Å
Fe I
5406.8 Å
Fe I
5709.4 Å
Fe I
PC2 loading +0,174
Cr
Chrome · Cr I
2 raies
5206.0 Å
Cr I
5208.4 Å
Cr I
Ni
Nickel · Ni I
1 raie
5081.1 Å
Ni I
Na
Sodium · Na I
2 raies
5889.9 Å
Na I
5895.9 Å
Na I
Doublet D — ratio W(MgB)/W(NaD)
Ba
Baryum · Ba II
2 raies
4554.0 Å
Ba II
6496.9 Å
Ba II
Sr
Strontium · Sr II
1 raie
4077.7 Å
Sr II
Si
Silicium · Si II
2 raies
4128.1 Å
Si II
4130.9 Å
Si II
Ti
Titane · Ti II
2 raies
4758.1 Å
Ti II
4764.9 Å
Ti II
proxy α-éléments
Al
Aluminium · Al I
1 raie
3944.0 Å
Al I
Co
Cobalt · Co I
1 raie
5301.0 Å
Co I
V
Vanadium · V II
1 raie
4379.2 Å
V II
Pour chaque raie : prominence, FWHM et W(raie) via specutils.analysis.equivalent_width. Composites : feature_metal_index_combined, feature_iron_peak_index, feature_alpha_elements_index.

Famille 5 — Indices de métallicité composites — Lick, SDSS, CaII triplet

Les indices spectraux sont des mesures standardisées du flux dans des fenêtres spectrales étroites, calculées par rapport à un pseudo-continuum local. Ils permettent des comparaisons directes avec les bibliothèques de population stellaire (Lick/IDS, SDSS).

Filtrer par origine :
position dans 3690–9100 Å
Indice
Fenêtre λ
Origine
Observable
TiO 5
7126–7135 Å
Lick
Bandes TiO — étoiles M froides
Dn4000
4000–4100 Å
standard
Saut 4000 Å — âge / métallicité
Dn4000 SDSS
4050–4250 Å
SDSS
Version étendue du saut D4000
G4300
4280–4320 Å
Lick
Bande CH — sous-géantes G
Ca4227
4225–4235 Å
Lick
Ca I — métallicité
Hβ index
4840–4870 Å
Lick
Hβ — âge stellaire
Mgb index
5160–5190 Å
Lick
Mg b — [Mg/Fe]
Ca II triplet
8480–8680 Å
standard
Ca II IR — gravité / activité
CaH 2
6814–6846 Å
standard
CaH — sous-types M
CaH 3
6960–6990 Å
standard
CaH — sous-types M
CN 1
4142–4177 Å
Lick
CN — géantes / évolution stellaire
CN 2
4216–4251 Å
Lick
CN — géantes / évolution stellaire
Mg 1
5069–5135 Å
Lick
[Mg/Fe]
Mg 2
5154–5197 Å
Lick
[Mg/Fe]
Na D Lick
5876–5909 Å
Lick
Na D — gravité / âge
TiO 1 Lick
5936–5994 Å
Lick
TiO — étoiles froides
TiO 2 Lick
6190–6272 Å
Lick
TiO — étoiles froides
Paschen 12
8730–8772 Å
standard
Série de Paschen

Famille 6 — Descripteurs du continuum — pentes, courbures, sauts, couleurs

Les descripteurs du continuum capturent la morphologie globale du spectre sans se focaliser sur des raies individuelles. Ils encodent la température effective (pente et couleur du continuum), la classe de luminosité (sauts), et la qualité de l'observation.

Pentes locales (sigma-clippées, σ = 2,5)

Pentes locales — sigma-clippées (σ = 2,5)5 descripteurs
Descripteur
Position 3690–9100 Å
Interprétation
feature_slope_blue
UV — étoiles chaudes
négatif = spectre bleu
feature_slope_green
Visible milieu
feature_slope_red
Visible rouge
feature_slope_deep_red
Proche IR — étoiles froides
feature_continuum_slope_global
Pente globale bleue/rouge
Courbures locales — Savitzky-Golay (dérivée seconde)3 descripteurs
Descripteur
Centre
Interprétation
feature_curvature_4000
4000 Å
Saut 4000 Å — frontière âge/métallicité
feature_curvature_5000
5000 Å
Visible milieu — courbure du corps noir
feature_curvature_6000
6000 Å
Rouge — transition vers IR
Sauts spectraux — discontinuités du continuum5 descripteurs
Descripteur
Description
Statut
feature_paschen_jump_strength
Saut Paschen 8120/8220 Å
Classe de luminosité
✓ actif
feature_break_4000A_strength
Force du saut D4000
Âge / métallicité
✓ actif
feature_break_4000A_width
Largeur du saut D4000
Âge / métallicité
✓ actif
feature_balmer_jump_strength
Saut de Balmer 3646 Å
NaN — hors couverture LAMOST
✗ NaN
feature_brackett_jump_strength
Saut Brackett 14 500 Å
NaN — hors couverture LAMOST
✗ NaN
Asymétrie et couleurs synthétiques7 descripteurs
Descripteur
Formule
Interprétation
feature_continuum_asymmetry
(f_bleu − f_rouge) / (f_bleu + f_rouge)
Asymétrie bleue/rouge
feature_flux_ratio_blue_red
f_bleu / f_rouge
Ratio de flux B/R
feature_UV_excess_3900
f(3850–3950) / f(4400–4600)
Excès UV — étoiles A
feature_color_index_BlueRed
dérivé du flux
Proxy couleur globale
feature_color_gr
magnitude g − r
Couleur LAMOST g−r
feature_color_ri
magnitude r − i
Couleur LAMOST r−i
feature_synthetic_BV
calculé depuis le spectre
Proxy B−V synthétique
Tous les descripteurs de continuum sont calculés sur le spectre normalisé après sigma-clipping. Les NaN correspondent aux longueurs d'onde hors couverture LAMOST (3 690–9 100 Å).

Bandes moléculaires — TiO, VO, CN, CH, CaH, MgH

Les bandes moléculaires sont les signatures spectrales des étoiles les plus froides (types K tardifs et M). Elles apparaissent dans les clusters HDBSCAN correspondant aux naines K-M dans l'espace UMAP.

Position des bandes dans 3690–9100 Å
4000
5000
6000
7000
8000
9000
TiO
Oxyde de titane
K–M
Étoiles M — naines K tardives
TiO 6180
61556255 Å
TiO 7050
70007200 Å
TiO 7600
75507750 Å
TiO 8200
81508350 Å
TiO 8400
83508550 Å
TiO 8860
88358935 Å
VO
Oxyde de vanadium
M
Étoiles M les plus froides
VO 7400
73257625 Å
VO 7900
78258125 Å
CN
Cyanure
Géantes
Géantes — évolution stellaire
CN 4142
41254195 Å
CN 8200
81508350 Å
CH
Méthylidyne
G
Bande G — sous-géantes G
CH 4300
42804330 Å
CaH
Hydrure de calcium
M
Sous-types M — naines froides
CaH 6380
63756395 Å
CaH 6830
68256845 Å
CaH 6975
69706990 Å
MgH
Hydrure de magnésium
K–M
Étoiles froides / métallicité
MgH 5140
51355155 Å
Descripteur extrait par bande : rapport flux_bande / flux_continuum. Ces bandes apparaissent dans les clusters HDBSCAN correspondant aux naines K-M dans l'espace UMAP.

Corrélations avec les paramètres Gaia DR3

Le tableau suivant présente les corrélations de Spearman entre PC1/PC2 et les paramètres astrophysiques Gaia DR3 (N = 43 019 étoiles). L'intensité de couleur reflète |ρ| — survoler une cellule pour voir l'interprétation.

Intensité de couleur ∝ |ρ| :
fort positif
fort négatif
modéré
faible
Paramètre Gaia DR3
Unité
ρ(PC1, ·)
ρ(PC2, ·)
Teff
K
+0.831
+0.156
log g
dex
-0.155
+0.081
[Fe/H]
dex
-0.548
-0.082
G_BP − G_RP
mag
-0.768
-0.025
SNR_r
+0.071
-0.310
A_G
mag
-0.070
+0.196
PC1 = axe thermique — dominé par Balmer (31,5 %) + Ca II (22,4 %). Gradient continu de Teff (étoiles chaudes A-F à droite, froides K-M à gauche).
PC2 = axe métallicité — dominé par métaux (43,3 %). ⚠️ Partiellement contaminé par SNR (ρ = −0,310) : artefact instrumental inhérent à la PCA non supervisée.

Les 5 premiers loadings de PC1 et PC2

Extrait du rapport PHY-3500, Table 2. Les barres signées montrent la direction et l'amplitude de la contribution de chaque descripteur à son axe principal.

PC1
axe thermique · 16,9 % de variance · ρ(Teff) = +0,831
interprétation
Température T_eff
#
Descripteur
← négatif · · · · positif →
w
1
W(Hα)
+0.173
2
Asymétrie continuum
+0.172
3
W(Mg b)
-0.171
4
B−V synthétique
-0.163
5
fbleu / frouge
+0.161
PC2
axe métallicité · 12,0 % de variance
interprétation
Métallicité [Fe/H]
#
Descripteur
← négatif · · · · positif →
w
1
[Fe/H]proxy
+0.205
2
Idx métal combiné
+0.198
3
Idx α
+0.194
4
Idx métal pauvre
-0.193
5
W(Fe λ5270)
+0.174

Figures de référence

Les figures suivantes illustrent l'importance relative des familles de descripteurs et la structure des loadings PCA. Cliquer sur une image pour l'agrandir.

Contributions par famille — PC1 vs PC2
PCA loadings
Contributions par famille — PC1 vs PC2
Contribution quadratique normalisée — Balmer domine PC1, Fer/métaux domine PC2
Répartition en donut par famille
PCA loadings
Répartition en donut par famille
Vue circulaire des contributions relatives PC1 (gauche) et PC2 (droite)
Eigenspectra PCA sur flux bruts
Flux bruts
Eigenspectra PCA sur flux bruts
PC1 = pente Teff · PC2 = montée IR étoiles froides · PC3 = coupure instrumentale
Top loadings PC1 — axe thermique
PC1 · Teff
Top loadings PC1 — axe thermique
W(Hα) en tête (w = +0,173) · Balmer + Ca II + continuum dominent
Top loadings PC2 — axe métallicité
PC2 · [Fe/H]
Top loadings PC2 — axe métallicité
[Fe/H]proxy en tête (w = +0,205) · Tous des indicateurs de composition chimique
Heatmap complète des loadings
Heatmap 183×K
Heatmap complète des loadings
Matrice 183 descripteurs × K composantes — structure et décroissance du spectre

Référence dans le code

from src.pipeline.feature_engineering import FeatureEngineer

fe = FeatureEngineer()

# Extraction pour un spectre
vec = fe.extract_features(matched_lines, wl, flux_norm, invvar)

# Nombre de descripteurs (déterminé au premier appel)
print(len(fe.feature_names)) # → 174 (spectraux purs)

# Post-merge : ajout des descripteurs dérivés Gaia
from src.pipeline.feature_engineering import (
add_gaia_derived_features,
add_photometric_composites,
add_line_composites,
)

df, new_cols = add_gaia_derived_features(df) # bp_g, M_G, v_tan, etc.
df, mod_cols = add_photometric_composites(df) # bp_g, color_ug, Q_parameter
df, lc_cols = add_line_composites(df) # EW_CaHK_sum, ratios EW/FWHM

Pour activer le mode spectroscopique pur (sans Gaia, sans redshift/ra/dec) :

from src.pipeline.classifier import SpectralClassifier

clf = SpectralClassifier(model_type="XGBoost", prediction_target="main_class")
clf.train_and_evaluate(features_df, spectro_only=True)