81 lines
6.5 KiB
Markdown
81 lines
6.5 KiB
Markdown
# Output
|
||
|
||
Ogni analisi scrive in `output/<nome del csv>/` (la cartella `output/` è ignorata da git). Ogni passo ha la sua sottocartella, numerata
|
||
nell'ordine di esecuzione. Chi produce cosa: [moduli.md](moduli.md) (`uscita.py`).
|
||
|
||
```
|
||
output/gen_7/
|
||
├── 01_domini/ passo 1 — suddivisione dei dati
|
||
│ ├── domini.png dati grezzi con i domini (colore per tipo, numerati) + zoom sui gradini
|
||
│ └── domini.toml domini usati, modificabili a mano ([uso.md](uso.md))
|
||
├── 02_sovrapposizione/ passo 2 — dati grezzi contro le equazioni trovate
|
||
│ ├── sovrapposizione_<serie>.png serie intera con le equazioni a tratti, residui e zoom
|
||
│ └── dominio<k>_<serie>.png un dominio: dati, modello scelto, altri modelli validi, residui
|
||
└── 03_report/ passo 3
|
||
├── report.md report completo, immagini incorporate, formule in LaTeX
|
||
└── risultati.json tutti i fit con tutte le metriche (schema in moduli.md)
|
||
```
|
||
`fitseg domini` scrive solo `01_domini/`; `fitseg analizza` scrive tutto.
|
||
|
||
## Colori
|
||
|
||
| Dominio | Colore |
|
||
|---|---|
|
||
| riposo | grigio |
|
||
| riscaldamento | rosso (i suoi campioni sono evidenziati con pallini, perché la fascia è sottile) |
|
||
| raffreddamento | un colore **diverso per ognuno**, in ordine: blu, verde, viola, arancio, ciano (poi si ricomincia) |
|
||
|
||
Le fasce sono numerate come nelle tabelle (il numero compare solo se la fascia è abbastanza larga per il grafico). Il raffreddamento *k*-esimo
|
||
ha lo stesso colore in tutti i grafici.
|
||
|
||
## `01_domini/domini.png`
|
||
|
||
Una riga per serie. A sinistra l'intero segnale con le fasce dei domini; a destra lo **zoom** sulla zona dei gradini (da 2 s prima del primo
|
||
riscaldamento a 8 s dopo l'ultimo), dove 7 domini in pochi secondi si distinguono. Serve a controllare la suddivisione *prima* di fidarsi
|
||
delle equazioni: se è sbagliata si corregge `domini.toml` e si rilancia ([uso.md](uso.md) §3).
|
||
|
||
## `02_sovrapposizione/sovrapposizione_<serie>.png`
|
||
|
||
Sopra: dati grezzi (punti grigi), fasce dei domini e **curva dell'equazione scelta** per ogni dominio nel colore del dominio. Sotto: residui
|
||
$y - \hat y$ dei soli campioni usati nel fit (i campioni esclusi all'inizio dei raffreddamenti non compaiono, per non schiacciare la scala).
|
||
A destra lo stesso con lo zoom. Il riscaldamento non ha curva (non si fitta) e i suoi campioni sono i pallini rossi.
|
||
|
||
Come leggere i residui: attorno a zero e senza struttura = modello adeguato; ondulazioni o code verso il basso = **scarti casuali** del sensore
|
||
non descritti dal modello (A14), non un errore del fit.
|
||
|
||
## `02_sovrapposizione/dominio<k>_<serie>.png`
|
||
|
||
- **Riposo e raffreddamento**: punti neri = campioni usati nel fit; punti grigi = campioni esclusi (solo se `scarta_dopo_salto_n` > 0); **linea continua** = modello scelto
|
||
(nel colore del dominio, con $\mathrm{RMSE}$ in legenda); **tratteggiate** = gli altri modelli validi (confronto); sotto i residui del modello scelto.
|
||
- **Riscaldamento**: la salita (pallini rossi) con 8 campioni di contesto prima e dopo, e nel titolo $\Delta$, numero di campioni e durata. Nessuna curva.
|
||
- Dominio indeterminato: solo i dati (un pannello, senza residui), con «indeterminato» nel titolo.
|
||
|
||
## `03_report/report.md`
|
||
|
||
Le immagini sono link relativi (`../01_domini/domini.png`); le grandezze matematiche sono in LaTeX (`$…$` nel testo, `$$…$$` per l'equazione scelta
|
||
con i valori sostituiti): servono un visualizzatore Markdown con supporto matematico (GitHub, VS Code, Obsidian). Struttura:
|
||
|
||
| Sezione | Contenuto |
|
||
|---|---|
|
||
| intestazione | nome del CSV, data, serie, definizione $t' = t - t_0$, livello degli intervalli (95 %) |
|
||
| 1. Suddivisione in domini | `domini.png` e tabella (#, tipo, $t_0$, $t_1$, campioni) |
|
||
| 2. Equazioni trovate | criterio di scelta con le soglie correnti; tabella (dominio, tipo, serie, modello, equazione e parametri ± IC) con una riga per dominio e serie; i riscaldamenti hanno il salto |
|
||
| 3. Sovrapposizione dati–equazioni | un grafico per serie |
|
||
| 4. Dettaglio per dominio | per ogni dominio e serie: grafico, modello scelto, equazione con i valori ($$…$$), parametri ± IC, $\sigma_\text{rumore}$ (se stimabile), $\hat\sigma_\text{res}$ (scala robusta dei residui), $\mathrm{RMSE}$, $R^2$ (non per `costante`, per cui non ha senso), $\rho_1$, motivo, tabella di tutti i modelli provati ($k$, RMSE, $\hat\sigma_\text{res}$, AICc, BIC, $\rho_1$, valido); il titolo riporta l'intervallo $t_0 \le t \le t_1$ (primo e ultimo campione del dominio) |
|
||
|
||
### Come leggere i messaggi
|
||
|
||
| Messaggio | Significato | Cosa fare |
|
||
|---|---|---|
|
||
| **salto** (riscaldamento) | salita rapida descritta, non fittata (A23): $\Delta$ stimato dai modelli adiacenti (misura accanto); «misura riportata all'istante del gradino con $c$ e $\tau$ del raffreddamento finale» se manca un modello vicino; «misurato sui campioni» se manca anche quello | niente: la misura sui campioni è per difetto (fino a ≈ 10–20 %), le altre due stime no (errore tipico < 1 %, massimo ≈ 3 % su 60 seed) |
|
||
| **(fisso)** accanto a un parametro | tenuto costante al valore del raffreddamento finale (A8); l'IC di $A$ è condizionato (A18) | niente; per disattivarlo vedi [configurazione.md](configurazione.md) |
|
||
| **modello non adeguato** ($\hat\sigma_\text{res} > 1.5\,\sigma$) | anche la scala **robusta** dei residui ($1.4826\,\mathrm{MAD}$, che ignora gli scarti casuali) supera il rumore: il modello scelto non spiega i dati | verifica la suddivisione dei domini e i residui: nei raffreddamenti finali con modello e domini giusti non succede (0 su 140); nei raffreddamenti intermedi corti (< 30 campioni, $c$ e $\tau$ fissi) può essere un falso allarme ([limiti.md](limiti.md)) |
|
||
| **Indeterminato** | nessun modello valido, oppure meno di `n_min_punti` campioni (`n_min_punti_parametri_fissi` nei raffreddamenti con $c$ e $\tau$ fissi): il motivo indica quale | verifica la suddivisione: tra gradini a meno di ≈ 1.2 s restano meno di 4 campioni |
|
||
| «valido: no» in tabella | fit non convergente, $\tau$ al limite o non identificabile ([algoritmi.md](algoritmi.md) §5.6) | un modello più semplice può essere preferito |
|
||
|
||
## `03_report/risultati.json`
|
||
|
||
Lista di domini con tutti i fit e tutte le metriche, anche dei modelli scartati. Schema dei campi: [moduli.md](moduli.md), «Strutture dati comuni».
|
||
È JSON valido anche in presenza di NaN (i campi non applicabili o non calcolabili, come `sigma` del riscaldamento o con meno di 8 campioni, sono `null`), adatto a elaborazioni successive (confronti tra
|
||
analisi, tabelle).
|