# Fiche Produit : Analyseur Spectral de Roches
Ce script Python simule et analyse des données spectrales pour identifier la composition minérale de différents types de roches à travers leurs signatures spectrales. Il offre des visualisations avancées, une analyse quantitative des indices spectraux et un rapport détaillé exportable.
## Caractéristiques du script :
**1. Modélisation des signatures spectrales :**
– Simulation de spectres de réflectance pour cinq types de roches : granite, basalte, calcaire, grès et schiste.
– Plage spectrale : 400 à 2500 nm (500 bandes, résolution ~4 nm).
– Spectres synthétiques générés avec des caractéristiques spécifiques (ex. absorption du fer pour le basalte, pic CO2 pour le calcaire) et bruit réaliste (configurable, par défaut 0,05).
– Chaque type de roche est associé à une liste de minéraux principaux et une couleur pour la visualisation.
**2. Génération des données :**
– Création de multiples échantillons par type de roche (par défaut : 8 échantillons).
– Spectres basés sur des modèles gaussiens adaptés aux propriétés minéralogiques, avec ajout de bruit pour simuler des conditions réelles.
– Données stockées avec identifiants d’échantillon et localisation fictive.
**3. Calcul des indices spectraux :**
– Indices calculés pour chaque spectre :
– **Indice de fer** : Rapport 750 nm/850 nm (sensible aux minéraux ferreux).
– **Indice de quartz** : Réflectance à 1400 nm.
– **Indice de carbonate** : Rapport 2300 nm/2350 nm (sensible aux calcaires).
– **Pente spectrale visible** : Différence 700 nm – 400 nm (caractérisation globale).
– Indices utilisés pour l’analyse comparative et l’identification.
**4. Visualisations :**
– **Signatures spectrales moyennes** : Courbes moyennes par type de roche avec zones d’incertitude (écart-type), colorées selon le type de roche.
– **Comparaison des indices** : Boxplots des indices spectraux pour chaque type de roche, avec coloration spécifique.
– **Carte de chaleur** : Visualisation des spectres de tous les échantillons, triés par type de roche, avec séparateurs et étiquettes.
– **Analyse d’échantillon** : Comparaison d’un spectre test avec les spectres de référence, mettant en évidence le type de roche le plus probable.
**5. Analyse et identification :**
– Identification du type de roche pour un échantillon inconnu via distance euclidienne dans l’espace des indices spectraux.
– Calcul d’un score de confiance basé sur la proximité spectrale.
– Résultats affichés avec un graphique comparatif et un rapport textuel (type de roche, confiance, distances).
**6. Exportation du rapport :**
– Génération d’un rapport textuel détaillé, incluant :
– Résumé des données (nombre de roches, plage spectrale, résolution).
– Statistiques par type de roche (minéraux, nombre d’échantillons, réflectance moyenne, indices spectraux).
– Sauvegarde dans un fichier texte (par défaut : `spectral_analysis_report.txt`).
## Utilisation :
Le script s’exécute via la fonction `main()`, qui :
– Génère des données spectrales pour 8 échantillons par type de roche.
– Produit trois visualisations : signatures spectrales, boxplots des indices, carte de chaleur.
– Analyse un échantillon test (simulé comme granite avec bruit) pour identifier son type.
– Exporte un rapport textuel.
**Paramètres par défaut :**
– Types de roches : granite, basalte, calcaire, grès, schiste
– Échantillons : 8 par type
– Plage spectrale : 400-2500 nm (500 bandes)
– Niveau de bruit : 0,05
– Spectre test : granite avec bruit de 0,08
– **Sortie :**
– Trois graphiques interactifs (signatures, indices, heatmap).
– Résultats d’analyse d’un échantillon test (type de roche, confiance).
– Rapport textuel exporté.
– **Dépendances :** Python 3.x, `numpy`, `matplotlib`.
– **Personnalisation :** Ajustement du nombre d’échantillons, de la plage spectrale, du niveau de bruit, des types de roches ou des indices spectraux.
**Licence :** MIT
Avis
Il n’y a pas encore d’avis.