From d9c9a5f870c8678ac0bb179a59952ebdd48aa7a4 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Wed, 1 Apr 2026 09:44:57 +0200 Subject: [PATCH] temperatura ambiente e report --- calcola_t_amb.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ report.md | 21 +++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 calcola_t_amb.py create mode 100644 report.md diff --git a/calcola_t_amb.py b/calcola_t_amb.py new file mode 100644 index 0000000..d7fae13 --- /dev/null +++ b/calcola_t_amb.py @@ -0,0 +1,46 @@ +import pandas as pd +import numpy as np + +df = pd.read_csv("data.csv") +df["time_s"] = df["time since start [ms]"] / 1000.0 + +t = df["time_s"].values +T = df["temp_amb IR [C]"].values + +# Media ponderata sul tempo con regola dei trapezi +# T_avg = integral(T dt) / (t_fine - t_inizio) +integral = np.trapezoid(T, t) +durata = t[-1] - t[0] +t_media = integral / durata + +t_min = T.min() +t_max = T.max() +t_inizio = t[0] +t_fine = t[-1] +n_campioni = len(df) + +print(f"Finestra di osservazione: {t_inizio:.1f} s → {t_fine:.1f} s ({durata:.1f} s)") +print(f"Campioni: {n_campioni}") +print(f"T ambiente min: {t_min:.2f} °C") +print(f"T ambiente max: {t_max:.2f} °C") +print(f"T ambiente media ponderata: {t_media:.2f} °C") + +with open("report.md", "w", encoding="utf-8") as f: + f.write("# Report: Temperatura Ambiente Media\n\n") + f.write("## Metodologia\n\n") + f.write("La media è calcolata come **media ponderata sul tempo** (regola dei trapezi):\n\n") + f.write("$$T_{avg} = \\frac{\\int T(t)\\, dt}{t_{fine} - t_{inizio}}$$\n\n") + f.write("Questo approccio tiene conto del campionamento non uniforme: ") + f.write("ogni campione pesa proporzionalmente all'intervallo di tempo che copre.\n\n") + f.write("## Risultati\n\n") + f.write(f"| Parametro | Valore |\n") + f.write(f"|---|---|\n") + f.write(f"| Inizio osservazione | {t_inizio:.1f} s |\n") + f.write(f"| Fine osservazione | {t_fine:.1f} s |\n") + f.write(f"| Durata totale | {durata:.1f} s |\n") + f.write(f"| Numero campioni | {n_campioni} |\n") + f.write(f"| T ambiente minima | {t_min:.2f} °C |\n") + f.write(f"| T ambiente massima | {t_max:.2f} °C |\n") + f.write(f"| **T ambiente media ponderata** | **{t_media:.2f} °C** |\n") + +print("\nreport.md generato.") diff --git a/report.md b/report.md new file mode 100644 index 0000000..f9212c6 --- /dev/null +++ b/report.md @@ -0,0 +1,21 @@ +# Report: Temperatura Ambiente Media + +## Metodologia + +La media è calcolata come **media ponderata sul tempo** (regola dei trapezi): + +$$T_{avg} = \frac{\int T(t)\, dt}{t_{fine} - t_{inizio}}$$ + +Questo approccio tiene conto del campionamento non uniforme: ogni campione pesa proporzionalmente all'intervallo di tempo che copre. + +## Risultati + +| Parametro | Valore | +|---|---| +| Inizio osservazione | 0.2 s | +| Fine osservazione | 133.7 s | +| Durata totale | 133.5 s | +| Numero campioni | 888 | +| T ambiente minima | 22.60 °C | +| T ambiente massima | 23.80 °C | +| **T ambiente media ponderata** | **22.99 °C** |