# Uso ## 1. Installazione Python ≥ 3.11 e [uv](https://docs.astral.sh/uv/) (`curl -LsSf https://astral.sh/uv/install.sh | sh`): ```bash uv venv .venv uv pip install -e ".[dev]" # numpy, scipy, matplotlib; pytest e ruff per lo sviluppo ``` Il comando si chiama `fitseg`: `.venv/bin/fitseg`, oppure dopo `source .venv/bin/activate` semplicemente `fitseg`. ## 2. Dati di ingresso I CSV da analizzare vanno nella cartella **`input/`** (la cartella è nel repository, i file `*.csv` no). Formato: intestazione, tempo strettamente crescente, una colonna per serie, numeri senza celle vuote (A1, A2); i nomi delle colonne e l'unità del tempo sono in `[dati]` di [config.toml](../config.toml) ([configurazione.md](configurazione.md)). ``` t_ms,T_C,dT_C 151,22.90,0.20 301,22.63,0.03 ``` I CSV di prova si generano con il repository fratello `../gen_data` (modello: `../gen_data/docs/SPEC.md`). I test di integrazione usano i seed 1–3: ```bash mkdir -p input for s in 1 2 3; do (cd ../gen_data && .venv/bin/python genera.py config.toml --seed $s -o ../EquationMiner/input/gen_$s.csv) done ``` ## 3. Comandi ```bash fitseg domini input/gen_1.csv # passo 1: come verrebbero suddivisi i dati (tabella, domini.png, domini.toml), nessun fit fitseg analizza input/gen_1.csv # tutti i passi: domini, equazioni, sovrapposizione, report fitseg analizza input/gen_1.csv --domini output/gen_1/01_domini/domini.toml # con i domini corretti a mano ``` | Opzione | Dove | Significato | |---|---|---| | `--config PATH` | prima del sottocomando | file di configurazione (default `config.toml`) | | `--output DIR` | prima del sottocomando | cartella madre dell'output (default `[output] cartella_output`); i file vanno in `DIR//` | | `--domini FILE` | solo `analizza` | usa questi domini invece della proposta automatica | **Flusso consigliato**: lancia `fitseg domini`, guarda `01_domini/domini.png` (in particolare lo zoom); se la suddivisione è giusta lancia `fitseg analizza`, altrimenti correggi `domini.toml` e rilancia con `--domini`. ### Correggere i domini a mano Apri `output//01_domini/domini.toml`, modifica `t0_s` / `t1_s` o il `tipo` (`riposo`, `riscaldamento`, `raffreddamento`), aggiungi o togli blocchi `[[dominio]]`. I domini devono restare contigui. Formato e regole: [configurazione.md](configurazione.md) («domini.toml»). Con `--domini` il file viene riscritto normalizzato e il grafico rigenerato, quindi `domini.png` mostra sempre la suddivisione effettivamente usata. ## 4. Cosa esce Una cartella per CSV con `01_domini/`, `02_sovrapposizione/`, `03_report/report.md`: [output.md](output.md). Il report si apre con un visualizzatore Markdown con supporto matematico (formule in LaTeX). ## 5. Codici di uscita | Codice | Significato | |---|---| | 0 | ok | | 2 | uso errato della riga di comando (argparse) | | 3 | `config.toml` non valido: file illeggibile, TOML non valido, chiave mancante, valore non ammesso | | 4 | CSV illeggibile o non valido (colonna mancante, valori non numerici, tempo non crescente) | | 6 | `domini.toml` non valido (tipo non ammesso, intervallo vuoto, domini non contigui) | Gli errori sono stampati su stderr in italiano come `Errore: …`. ## 6. Sviluppo Test e controllo dello stile: [test.md](test.md). Mappa del codice e come aggiungere un modello: [moduli.md](moduli.md).