2.6 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Generatore di CSV t_ms,T_C,dT_C (temperatura di un sensore IR che si scalda e si raffredda, con rumore realistico). docs/SPEC.md è l'unica fonte di verità su output, modello, CLI, errori e controlli di accettazione: leggila per intero prima di cambiare il comportamento. Documentazione, commenti e messaggi di errore sono in italiano.
Comandi
Ambiente .venv nel progetto (numpy per genera.py, in più matplotlib per grafico.py):
uv venv .venv && uv pip install numpy matplotlib
.venv/bin/python genera.py config.toml --seed 42 # scrive output/gen_42.csv
.venv/bin/python grafico.py -o g.png # grafico dell'ultimo CSV in output/
./pulisci.sh # svuota output/
--help di ogni script (testo in DESCRIZIONE/EPILOGO per genera.py) elenca le chiavi di config.toml per gruppo: va aggiornato insieme a CHIAVI.
Non ci sono test automatici: la verifica è sui controlli di §5 di SPEC.md, su più seed (vedi gotcha).
Mappa del codice
- genera.py, script unico:
leggi_config(validaCHIAVI) →genera→scrivi. Dentrogenera:perturba(variabilità per corsa di istanti, ampiezze ekdei gradini),eccesso(gradini + raffreddamento),salti/eventi(disturbi Poisson in riscaldamento e raffreddamento), poi filtro del sensore, rumore, quantizzazione. - config.toml: unica fonte dei valori numerici; unità nei suffissi (
_s,_ms,_c,_hz). - grafico.py: script separato, non importa
genera.py.
Gotcha
ΔT= T − ambiente, calcolato dopo rumore e quantizzazione di entrambi i canali, mai dalla T vera.- Nessun valore numerico nello script: ogni chiave nuova di
config.tomlva aggiunta anche aCHIAVIingenera.py(chiave mancante ⇒ exit 1) e descritta in SPEC.md e nell'epilogo di--help. - Un solo
numpy.random.Generatorseminato da--seed: stesso seed + stessa config ⇒ file identico. Cambiare numero o ordine delle estrazioni casuali cambia i file di ogni seed. - Tutto ciò che sembra "fisso" nelle curve (salti, picco, istanti) è casuale per seed: non esistono istanti programmati.
- Gli intervalli di §5 di SPEC.md (picco,
T/ΔTfinali) sono empirici su ~40 seed: se cambiconfig.toml(gradini, durata, salti, k) ricalcolali e aggiornali. uv run genera.pyusa un ambiente a parte nella cache di uv, non.venv; i comandi del progetto sono quelli con.venv/bin/python.