- docs/SPEC.md sostituito da un file per argomento (indice in docs/README.md) - assunzioni A1-A24 con dove nel codice e cosa succede se false - formule in LaTeX corrette (nessuno spazio prima del dollaro di chiusura), simboli e chiavi in tabella - diagrammi Mermaid per il flusso degli algoritmi e le dipendenze dei moduli - figura dei domini sul seed 1 (docs/img/domini_esempio.png) - README ridotto a indice con avvio rapido; CLAUDE.md e docstring allineati Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
81 lines
5.4 KiB
Markdown
81 lines
5.4 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_1/
|
||
├── 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 grigi = campioni esclusi dal fit; punti neri = campioni usati; **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, 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}$, $\mathrm{RMSE}$, $R^2$, $\rho_1$, motivo, tabella di tutti i modelli provati ($k$, RMSE, AICc, BIC, $\rho_1$, valido) |
|
||
|
||
### Come leggere i messaggi
|
||
|
||
| Messaggio | Significato | Cosa fare |
|
||
|---|---|---|
|
||
| **salto** (riscaldamento) | salita rapida descritta, non fittata (A23) | niente: $\Delta$ è per difetto |
|
||
| **(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** ($\mathrm{RMSE} > 1.3\,\sigma$) | il modello scelto è il migliore tra quelli validi ma non spiega tutta la varianza | guarda $\rho_1$ e i residui: tipicamente scarti casuali (A14) |
|
||
| **Indeterminato** | nessun modello valido, o meno di `n_min_punti` campioni | verifica la suddivisione (domini troppo corti?) |
|
||
| «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 (i campi non applicabili, come `sigma` del riscaldamento, sono `null`), adatto a elaborazioni successive (confronti tra
|
||
analisi, tabelle).
|