Files
davide b33d9a81cc Sposta CSV dell'ultimo ciclo e grafici nella cartella 'output'
cv_last_cycle.py accetta ora una cartella di output separata da quella
di input; main.py legge da 'raw' (dove restano .txt e CSV intermedio) e
scrive i CSV dell'ultimo ciclo e i PNG in 'output'.

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

49 lines
1.6 KiB
Python

"""Esegue in cascata l'intera pipeline di voltammetria ciclica.
Prende i file .txt grezzi dalla cartella 'raw' (nella root del progetto)
e li elabora nell'ordine:
1. cv_to_csv -> CSV a due colonne (Potential/V, Current/A), dentro 'raw'
2. cv_last_cycle -> isola l'ultimo ciclo completo, salvato in 'output'
3. cv_normalize_potential -> aggiunge il potenziale normalizzato (in 'output')
4. cv_current_over_sqrt_scanrate -> aggiunge le colonne derivate dalla corrente (in 'output')
5. cv_plot -> genera il grafico PNG per ciascun file (in 'output')
"""
import sys
from pathlib import Path
import cv_to_csv
import cv_last_cycle
import cv_normalize_potential
import cv_current_over_sqrt_scanrate
import cv_plot
RAW_DIR = Path(__file__).parent / "raw"
OUTPUT_DIR = Path(__file__).parent / "output"
def main() -> None:
if not RAW_DIR.is_dir():
print(f"Cartella 'raw' non trovata: creala e mettici dentro i file .txt da elaborare ({RAW_DIR})")
return
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
print("\n=== Conversione .txt -> .csv ===")
cv_to_csv.main(["", str(RAW_DIR)])
print("\n=== Estrazione ultimo ciclo ===")
cv_last_cycle.main(["", str(RAW_DIR), str(OUTPUT_DIR)])
for label, module in [
("Normalizzazione potenziale", cv_normalize_potential),
("Colonne corrente/velocita' di scansione", cv_current_over_sqrt_scanrate),
("Generazione grafici", cv_plot),
]:
print(f"\n=== {label} ===")
module.main(["", str(OUTPUT_DIR)])
if __name__ == "__main__":
main()