Files
ciclovolametrie/README.md
T
davide e4bea84c01 Espande il README con istruzioni dettagliate per Windows
Aggiunge una guida passo passo per l'installazione di Python su
Windows (incluso il chiarimento che venv e' gia' incluso), la
soluzione per l'errore di execution policy in PowerShell, e la nota
sull'installazione di python3-venv su Linux/WSL quando necessario.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-13 23:23:57 +02:00

135 lines
5.9 KiB
Markdown

# Ciclovoltametrie
Pipeline Python per trasformare i file grezzi (`.txt`) esportati da un potenziostato CHI660C in CSV puliti, con l'ultimo ciclo di voltammetria isolato, il potenziale normalizzato e le colonne derivate per l'analisi (es. grafici tipo Randles-Sevcik). Alla fine viene generato automaticamente anche un grafico per ogni file.
Questa guida non presume nessuna conoscenza di Python: segui i passaggi nell'ordine indicato.
## 1. Installare Python
Serve Python 3.10 o superiore.
### Windows
1. Vai su [python.org/downloads](https://www.python.org/downloads/) e clicca sul pulsante giallo per scaricare l'ultima versione (es. "Download Python 3.12.x").
2. Avvia il file scaricato (es. `python-3.12.x-amd64.exe`).
3. Nella prima schermata dell'installer, **spunta in basso la casella "Add python.exe to PATH"** — è il passaggio più importante, senza non funzionerà nulla dal terminale.
4. Clicca su "Install Now" e attendi il completamento.
5. Al termine, clicca "Close".
Il modulo `venv` (necessario al punto 4) è già incluso automaticamente in questa installazione: su Windows non serve installare nient'altro.
### macOS
Scarica l'installer da [python.org/downloads](https://www.python.org/downloads/) oppure, se hai [Homebrew](https://brew.sh), esegui `brew install python`.
### Linux (o WSL su Windows)
Su molte distribuzioni Python è già preinstallato, ma il modulo `venv` a volte è un pacchetto separato. Se al punto 4 ottieni un errore tipo `ensurepip is not available`, installalo con (Debian/Ubuntu):
```
sudo apt update
sudo apt install python3-venv
```
## 2. Verificare l'installazione
Apri il terminale — su Windows si chiama **PowerShell** (cercalo nel menu Start digitando "PowerShell") oppure "Prompt dei comandi"; su macOS/Linux è il "Terminale" — e digita:
```
python --version
```
Su Windows dovrebbe funzionare subito grazie al PATH configurato al punto 1. Su macOS/Linux, se `python` non è riconosciuto, prova con `python3 --version`. Dovresti vedere qualcosa come `Python 3.11.x`. Da qui in poi, ovunque leggi `python`, usa il comando che ha funzionato per te (`python` o `python3`).
## 3. Scaricare il progetto
Se non l'hai già fatto, scarica o clona questa cartella sul tuo computer. Poi apri il terminale **dentro la cartella del progetto** (quella che contiene questo file README).
## 4. Creare l'ambiente virtuale e installare le dipendenze
L'ambiente virtuale è una cartella isolata dove vengono installate le librerie necessarie, senza toccare il resto del tuo computer. Va creato una sola volta.
```
python -m venv .venv
```
Poi attivalo:
- **Windows (PowerShell)**:
```
.venv\Scripts\Activate.ps1
```
Se compare un errore che parla di "esecuzione script disabilitata" (`execution policy`), apri PowerShell **come amministratore** ed esegui una sola volta:
```
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
```
poi riprova ad attivare l'ambiente virtuale.
- **Windows (Prompt dei comandi)**:
```
.venv\Scripts\activate.bat
```
- **macOS/Linux**:
```
source .venv/bin/activate
```
Se l'attivazione ha funzionato, vedrai `(.venv)` all'inizio della riga del terminale. A questo punto installa le librerie richieste:
```
pip install -r requirements.txt
```
**Nota**: ogni volta che apri un nuovo terminale per usare la pipeline, devi riattivare l'ambiente virtuale (comando di attivazione sopra) prima di lanciare gli script.
## 5. Preparare i file da elaborare
1. Nella cartella del progetto trovi (o crea) una cartella chiamata `raw`.
2. Copia dentro `raw` tutti i file `.txt` esportati dallo strumento (uno o più file, es. `AL12 10 mgml soluzione (-1.6_1.2 scan 0.1Vs).txt`).
3. Non serve rinominarli o modificarli: la velocità di scansione viene letta automaticamente dal nome del file (es. `0.1Vs`, `0.5Vs`, `1Vs`).
## 6. Eseguire la pipeline
Con l'ambiente virtuale attivo (vedi punto 4), lancia:
```
python main.py
```
Lo script esegue in sequenza tutti i passaggi ed elaborerà **tutti** i file presenti in `raw`:
1. Converte ogni `.txt` in un CSV a due colonne (Potenziale, Corrente).
2. Isola l'ultimo ciclo completo di ogni misura.
3. Chiede il **potenziale di riferimento** (in Volt): digitalo e premi invio (es. `-0.152`).
4. Per ogni file chiede la **velocità di scansione**: viene proposto il valore trovato nel nome del file, basta premere invio per confermarlo, oppure puoi digitarne uno diverso.
5. Genera un grafico professionale (PNG) per ogni misura.
## 7. Dove trovare i risultati
- La cartella `raw` conterrà, oltre ai `.txt` originali, un CSV intermedio a due colonne per ciascun file.
- La cartella `output` conterrà, per ciascun file:
- il CSV finale con tutte le colonne (potenziale, corrente, potenziale normalizzato, colonne derivate);
- il grafico in formato PNG, pronto per essere usato in relazioni o presentazioni.
## 8. Rilanciare la pipeline su nuovi dati
Ogni volta che hai nuovi file da elaborare, ripeti solo i punti 5 e 6 (aggiungi i `.txt` in `raw` e rilancia `python main.py`) — non serve ricreare l'ambiente virtuale.
Se vuoi rielaborare gli stessi file da zero (es. con un potenziale di riferimento diverso), puoi lanciare di nuovo `python main.py`: i file in `output` verranno sovrascritti con i nuovi risultati.
## Struttura degli script
Se vuoi eseguire solo un passaggio della pipeline invece di tutta la sequenza, ogni script può essere lanciato singolarmente (sempre con l'ambiente virtuale attivo):
| Script | Cosa fa |
|---|---|
| `cv_to_csv.py` | Converte i `.txt` in `raw` in CSV a due colonne |
| `cv_last_cycle.py` | Estrae l'ultimo ciclo completo e lo salva in `output` |
| `cv_normalize_potential.py` | Aggiunge la colonna del potenziale normalizzato |
| `cv_current_over_sqrt_scanrate.py` | Aggiunge le colonne di corrente derivate dalla velocità di scansione |
| `cv_plot.py` | Genera i grafici PNG |
| `main.py` | Esegue tutti gli script sopra in sequenza |
## Licenza
Questo progetto è distribuito con licenza MIT — vedi il file [LICENSE](LICENSE).