- 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>
5.4 KiB
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 (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 §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 |
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 §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, «Strutture dati comuni».
È JSON valido (i campi non applicabili, come sigma del riscaldamento, sono null), adatto a elaborazioni successive (confronti tra
analisi, tabelle).