Files
gen_data/README.md
T

45 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](https://docs.astral.sh/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
```bash
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](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](dati.csv).
## Documentazione
Modello, passi di calcolo, controlli di accettazione e limiti sono in [docs/SPEC.md](docs/SPEC.md).