From 2254a7c01648ef6d650b04f3c2ae8a7d1f8f748e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Bron=C3=A8s?= <romain.brones@synchrotron-soleil.fr> Date: Wed, 7 Feb 2024 10:16:05 +0100 Subject: [PATCH] feat: Add examples --- examples/ExtractionJPEN.py | 20 +++++++++++++++ examples/Rendements.py | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100755 examples/ExtractionJPEN.py create mode 100755 examples/Rendements.py diff --git a/examples/ExtractionJPEN.py b/examples/ExtractionJPEN.py new file mode 100755 index 0000000..a783dcf --- /dev/null +++ b/examples/ExtractionJPEN.py @@ -0,0 +1,20 @@ + +import ArchiveExtractor as AE + +import pandas as pd + + +#%% Récupération des pression des JPEN de l'ANS sur le mois de décembre 2023 + + +ljpen = AE.findattr("ans-c*vi*jpen*pressure") + +data = AE.extract(ljpen, "2023-01", "1M", method='between') + + +#%% Réduction des données à l'heure par moyenne et concatenation + +datacat= pd.concat([d.resample("1h").mean() for d in data], axis=1) + +# Ecriture dans un fichier CSV dans le répertoire courant +datacat.to_csv("ANS_JPEN.csv") diff --git a/examples/Rendements.py b/examples/Rendements.py new file mode 100755 index 0000000..c228c19 --- /dev/null +++ b/examples/Rendements.py @@ -0,0 +1,50 @@ + +# Recherche des rendements d'injection sur les 3 derniers jours + +#%% Récupération des données +import ArchiveExtractor as AE +# On récupère tous les attributs de rendement stockés sur injection + +lattr = AE.findattr("*dg*rendement/efficiency*arch") + +# préparation d'un dict, récupération que de la dénomination utile pour la clé (ie LT2_LPM) +dattr = {s[-12:-5]:s for s in lattr} + +# On ajoute le courant aussi +dattr["current"]="ans/dg/dcct-ctrl/current" + +data = AE.extract(dattr, "3d", method="between") + +#%% Affichage des données + +import matplotlib.pyplot as plt + +fig, axes = plt.subplots(3,1, sharex=True, figsize=(12,6)) + + +for tinj, ax in zip( + ("SPM", "LPM"), + axes[1:], + ): + + ax.set_title("Efficiencies "+tinj) + + for mach, col in zip( + ('ANS', 'Boo', 'LT2', 'LT1'), + ('C0', 'C2', 'C1', 'C3'), + ): + + ax.plot(data[mach+"_"+tinj], + color=col, + label=mach+"_"+tinj, + linestyle="", alpha=0.5, markersize=3, marker="o", + ) + + ax.set_ylim(0,110) + ax.legend() + ax.grid(alpha=.3) + + +axes[0].plot(data["current"]) +axes[0].set_title("Beam current") +axes[0].grid(alpha=.3) -- GitLab