═══════════════════════════════════════════════════════════════════════════════
  MÉMORISATION DES BOUNDS PAR SPECTRE
  SpectralAnalyzer - A. Maetz
═══════════════════════════════════════════════════════════════════════════════

FONCTIONNALITÉ
────────────────────────────────────────────────────────────────────────────────

Le programme sauvegarde automatiquement les valeurs de bounds (limites
d'ajustement) pour chaque spectre de chaque étoile.

Quand vous ajustez manuellement les bounds d'un spectre et validez, ces valeurs
sont :
  1. Sauvegardées en mémoire pour la session en cours
  2. Enregistrées dans un fichier JSON sur le disque
  3. Automatiquement rechargées lors de la prochaine ouverture de cette étoile

═══════════════════════════════════════════════════════════════════════════════

COMMENT ÇA FONCTIONNE
────────────────────────────────────────────────────────────────────────────────

SAUVEGARDE AUTOMATIQUE :
   • Lorsque vous cliquez sur "✓ Valider" dans la fenêtre d'ajustement manuel
   • Les 12 valeurs de bounds (6 pour COMP1 + 6 pour COMP2) sont sauvegardées
   • Un fichier JSON est créé/mis à jour : bounds_[nom_étoile].json

   Exemple : bounds_HD123456.json

CHARGEMENT AUTOMATIQUE :
   • Lors du chargement des spectres d'une étoile (dossier ou fichiers)
   • Le programme recherche le fichier bounds_[nom_étoile].json
   • Si trouvé, les bounds sont appliqués aux spectres correspondants
   • Message affiché : "[INFO] X spectres avec bounds sauvegardés chargés"

═══════════════════════════════════════════════════════════════════════════════

FICHIERS JSON
────────────────────────────────────────────────────────────────────────────────

Format du fichier bounds_[nom_étoile].json :

{
  "spectrum_file1.fits": {
    "custom_bounds_comp1": [3.0, 4.0, 3.0, 10.0, 3.0, 20.0],
    "custom_bounds_comp2": [3.0, 4.0, 3.0, 10.0, 3.0, 20.0]
  },
  "spectrum_file2.fits": {
    "custom_bounds_comp1": [2.5, 3.5, 2.8, 8.0, 2.5, 18.0],
    "custom_bounds_comp2": [3.2, 4.2, 3.1, 11.0, 3.2, 22.0]
  },
  ...
}

Ordre des valeurs dans chaque liste :
  [0] = depth         (profondeur max)
  [1] = sigma         (sigma max)
  [2] = amp_lorentz   (amplitude Lorentz max)
  [3] = gamma         (gamma max)
  [4] = amp_gauss2    (amplitude Gauss2 max)
  [5] = width_gauss2  (largeur Gauss2 max)

═══════════════════════════════════════════════════════════════════════════════

UTILISATION TYPIQUE
────────────────────────────────────────────────────────────────────────────────

PREMIÈRE FOIS (nouvelle étoile) :
   1. Charger les spectres
   2. Ajuster manuellement les bounds sur un ou plusieurs spectres difficiles
   3. Valider → bounds sauvegardés automatiquement

SESSIONS SUIVANTES (même étoile) :
   1. Charger les spectres
   2. Les bounds précédemment ajustés sont automatiquement appliqués
   3. Vous pouvez modifier et re-valider si nécessaire
   4. Les nouveaux bounds écrasent les anciens pour ce spectre

CHANGEMENT D'ÉTOILE :
   1. Charger les spectres de la nouvelle étoile
   2. Le programme charge le fichier JSON correspondant à cette étoile
   3. Chaque étoile a son propre fichier de bounds

═══════════════════════════════════════════════════════════════════════════════

AVANTAGES
────────────────────────────────────────────────────────────────────────────────

✓ Mémorisation permanente des bounds pour chaque spectre
✓ Bounds séparés pour chaque composante (COMP1 et COMP2)
✓ Sauvegarde distincte pour chaque étoile
✓ Chargement/sauvegarde automatique et transparent
✓ Pas besoin de réajuster les bounds à chaque session
✓ Facilite le travail sur plusieurs étoiles en parallèle

═══════════════════════════════════════════════════════════════════════════════

GESTION DES FICHIERS
────────────────────────────────────────────────────────────────────────────────

EMPLACEMENT :
   Les fichiers bounds_*.json sont créés dans le dossier d'installation :
   D:\SpectralAnalyzer\

SAUVEGARDE :
   • Vous pouvez sauvegarder ces fichiers JSON si vous le souhaitez
   • Ils sont en format texte lisible (JSON)

SUPPRESSION :
   • Pour repartir de zéro pour une étoile, supprimez son fichier JSON
   • Le programme utilisera les bounds par défaut

ÉDITION MANUELLE :
   • Vous pouvez éditer les fichiers JSON avec un éditeur de texte
   • Respectez le format JSON (guillemets, crochets, virgules)
   • Attention à ne pas introduire d'erreurs de syntaxe

═══════════════════════════════════════════════════════════════════════════════

DÉPANNAGE
────────────────────────────────────────────────────────────────────────────────

Problème : Les bounds ne sont pas sauvegardés
Solution : Vérifiez que vous avez bien cliqué sur "✓ Valider" et non "✗ Annuler"

Problème : Les bounds ne sont pas rechargés
Solution : Vérifiez que le fichier bounds_[nom_étoile].json existe dans
           D:\SpectralAnalyzer\

Problème : Message d'erreur au chargement
Solution : Le fichier JSON est peut-être corrompu. Supprimez-le et recommencez.

Problème : Bounds incorrects après chargement
Solution : Ouvrez la fenêtre d'ajustement manuel, corrigez et re-validez

═══════════════════════════════════════════════════════════════════════════════

MESSAGES CONSOLE
────────────────────────────────────────────────────────────────────────────────

Au CHARGEMENT des spectres :
   [INFO] Bounds chargés depuis bounds_HD123456.json
   [INFO] 28 spectres avec bounds sauvegardés chargés

À la VALIDATION des bounds :
   [INFO] Bounds sauvegardés dans bounds_HD123456.json

Si AUCUN fichier trouvé :
   [INFO] Pas de fichier de bounds pour HD123456

En cas d'ERREUR :
   [ERREUR] Impossible de charger les bounds: [message d'erreur]
   [ERREUR] Impossible de sauvegarder les bounds: [message d'erreur]

═══════════════════════════════════════════════════════════════════════════════
Auteurs : A. Maetz & C. Kreider
Développé avec Claude Code (Anthropic)
Version : Janvier 2025
═══════════════════════════════════════════════════════════════════════════════
