Files
gen_data/README.md
T

2.2 KiB
Raw Blame History

Generatore CSV T e ΔT

Genera un CSV con la temperatura T di un sensore IR e la differenza ΔT = T − T_amb, con rumore, quantizzazione e jitter dei tempi simili a un sensore reale. T parte dalla temperatura ambiente, sale con i gradini di riscaldamento e ridiscende fino a T_amb.

Requisiti

uv. Lo script dichiara le sue dipendenze (Python ≥ 3.11, numpy): al primo avvio uv crea da solo l'ambiente virtuale, non serve installare altro.

Uso

uv run genera.py config.toml                      # scrive output/gen_<seed>.csv, seed casuale
uv run genera.py config.toml --seed 42            # riproducibile: output/gen_42.csv
uv run genera.py config.toml -o dati/prova.csv    # percorso a scelta (cartelle create se mancano)
uv run genera.py config.toml -o - > out.csv       # su stdout
Opzione Descrizione
config file di configurazione TOML (obbligatorio)
-o, --output file di uscita; default output/gen_<seed>.csv; - = stdout
--seed seme del generatore; se omesso è casuale e viene stampato su stderr

Stesso seed e stessa configurazione danno sempre lo stesso file. La cartella output/ è ignorata da git.

Output

t_ms,T_C,dT_C
151,22.90,0.20
301,22.63,0.03

t_ms è intero; T_C e dT_C hanno due decimali. ΔT è calcolato dopo rumore e quantizzazione di entrambi i canali.

Configurazione

Tutti i valori numerici sono in config.toml (nessuno è scritto nello script). Le unità sono nei suffissi delle chiavi: _s secondi, _ms millisecondi, _c gradi C, _hz 1/s. Una chiave mancante è un errore (exit 1, messaggio in italiano), così come t_impulsi_s e dT_impulsi_c di lunghezza diversa.

Per cambiare il profilo di riscaldamento si modificano t_impulsi_s e dT_impulsi_c (un gradino per elemento; [] = nessun riscaldamento) e k_raffreddamento_hz. durata_s deve essere abbastanza lunga perché T torni a T_amb. Per ricalibrare il rumore si possono usare come riferimento le misure reali in dati.csv.

Documentazione

Modello, passi di calcolo, controlli di accettazione e limiti sono in docs/SPEC.md.