76 lines
3.3 KiB
Markdown
76 lines
3.3 KiB
Markdown
# 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/<nome csv>/` |
|
|||
|
|
| `--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/<csv>/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).
|