def o3(df):
polluant = '<STR_LIT>'<EOL>if not isinstance(df.index.freq, pdoffset.Hour):<EOL><INDENT>raise FreqException("<STR_LIT>")<EOL><DEDENT>res = {"<STR_LIT>": depassement(df, valeur=<NUM_LIT>),<EOL>"<STR_LIT>": depassement(df, valeur=<NUM_LIT>),<EOL>"<STR_LIT>": depassement(df, valeur=<NUM_LIT>),<EOL>"<STR_LIT>": consecutive(df, valeur=<NUM_LIT>, sur=<NUM_LIT:3>),<EOL>"<STR_LIT>": consecutive(df, valeur=<NUM_LIT>, sur=<NUM_LIT:3>),<EOL>"<STR_LIT>": depassement(<EOL>moyennes_glissantes(df, sur=<NUM_LIT:8>), valeur=<NUM_LIT>),<EOL>}<EOL>return polluant, res<EOL>
Calculs réglementaires pour l'ozone

Paramètres:
df: DataFrame contenant les mesures, avec un index temporel
(voir xair.get_mesure)

Retourne:
Une série de résultats dans un DataFrame :
******
unité (u): µg/m3 (microgramme par mètre cube)

Seuil de RI sur 1H: 180u
Seuil d'Alerte sur 1H: 240u
Seuil d'Alerte sur 3H consécutives: 240u
Seuil d'Alerte sur 3H consécutives: 300u
Seuil d'Alerte sur 1H: 360u
Objectif de qualité pour la santé humaine sur 8H glissantes: 120u

Les résultats sont donnés en terme d'heure de dépassement