Rispondi
Rispondi a:
Questa settimana ho avuto occasione di parlare di questo progettino #FuoriComeUnBalcone a vari livelli, e devo dire che sono particolarmente felice dell'interesse e dalla curiosità manifestata da diversi giovani "tecnici" verso questo tipo di tecnologia.
Oltre a parlare, stamane ho rispolverato librerie matematiche opensource :-)
import pandas as pd
from pandas import read_csv
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime
import matplotlib.dates as mdates
filepath_ = "http://www.milanoscaloromana.it/PM/MILANO_SCALO_ROMANA_PARTICULATE_MATTER_annual_series_2019.csv"
df = read_csv(filepath_,sep=",", index_col = ['daily'], parse_dates=['daily'],na_values=['-999'])
# Cancello tutte le colonne che non mi interessano. Tengo solo PM1,PM2_5,PM10
#No,date,daily,year,month,day,hour,min,PM1,PM2_5,PM10,TEMP,Hum,PRES
df = df.drop(['No','date','year','month','day','hour','min','TEMP','Hum','PRES'],axis=1)
# Raggruppo per data clacolando la media giornaliera della colonna PM2_5
df = df.groupby('daily').mean()
# PLOT
pd.DataFrame({'PM2_5':100, 'PM10':100}, index=['PM2_5'])
ax = df.plot()
t0_= '2019-06-01'
now = datetime.utcnow().strftime('%Y-%m-%d')
ax.hlines(8.2,t0_,now, linestyles='dashed',color = 'darkorange')
ax.annotate('Very good',(t0_,8.7),color = 'darkorange')
ax.hlines(16.4,t0_,now, linestyles='dashed',color = 'darkorange')
ax.annotate('Good',(t0_,16.9),color = 'darkorange')
ax.hlines(25.1,t0_,now, linestyles='dashed',color = 'darkorange')
ax.annotate('Fair',(t0_,25.5),color = 'darkorange')
ax.hlines(37.4,t0_,now, linestyles='dashed',color = 'darkorange')
ax.annotate('Poor',(t0_,37.9),color = 'darkorange')
ax.annotate('Very Poor',(t0_,50.0),color = 'darkorange')
fig = ax.get_figure()
ax.set(xlabel="Date",
ylabel="polveri sottili (μg/m3)",
title="Milano Scalo Romana\n Air quality category (PM2.5 μg/m3)");
#salvo grafico su file
now = datetime.utcnow().strftime('%Y%m')
filename= now+".png"
fig.savefig(filename)
Accedi
Devi inserire Nome utente e Password per inviare un messaggio. Se non li hai prosegui inserendo il contenuto della risposta e i dati personali (nome, cognome e email) oppure Registrati