From 577f47cdf6560bcaae8ef04f42f1b0aaafb13ce3 Mon Sep 17 00:00:00 2001
From: Nikos Karastathis <n.karastathis@kit.edu>
Date: Sat, 14 Oct 2023 11:42:09 +0200
Subject: [PATCH] Radio produces a nice dataframe with all showers and all
 antennas for each radio process

---
 python/corsika/io/outputs/radio_process.py | 37 ++++++++++++----------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/python/corsika/io/outputs/radio_process.py b/python/corsika/io/outputs/radio_process.py
index 0913eaa1f..9edc6baae 100644
--- a/python/corsika/io/outputs/radio_process.py
+++ b/python/corsika/io/outputs/radio_process.py
@@ -10,10 +10,8 @@
 import logging
 import os.path as op
 from typing import Any
-
 import pyarrow.parquet as pq
 import pandas as pd
-import numpy as np
 
 from .output import Output
 
@@ -60,11 +58,13 @@ class RadioProcess(Output):
             The path to the directory containing this output.
 
         """
-
         data = pq.read_table(op.join(path, "antennas.parquet"))
         nshowers = data.to_pandas()['shower'].iloc[-1] + 1
         antennas = list(self.config["antennas"].keys())
-        nr_antennas = len(antennas)
+
+        # check that we got some events
+        if nshowers == 0:
+            logging.warn(f"Radio Process {self.config['name']} contains 0 showers.")
 
         # if there are no antennas,
         if len(antennas) == 0:
@@ -72,19 +72,22 @@ class RadioProcess(Output):
 
         ant_nr = 0
         dictionary = {}
-        # loop over each of the antennas
-        for name in antennas:
-            dictionary[ant_nr] = name
-            sampling_period = self.config["antennas"][name]["number of bins"]
-            antenna_data = data[ant_nr*sampling_period:(ant_nr+1)*sampling_period].to_pandas()
-            shower = antenna_data["shower"]#.to_numpy()
-            times = antenna_data["Time"]#.to_numpy()
-            Ex = antenna_data["Ex"]#.to_numpy()
-            Ey = antenna_data["Ey"]#.to_numpy()
-            Ez = antenna_data["Ez"]#.to_numpy()
-            dataset = pd.DataFrame({'shower': shower, 'time': times, 'Ex': Ex, 'Ey': Ey, 'Ez': Ez})
-
-            ant_nr = ant_nr+ 1
+        dataset = {}
+        # loop over all showers
+        for i in range(nshowers):
+            # loop over each of the antennas
+            for name in antennas:
+                dictionary[ant_nr] = name
+                sampling_period = self.config["antennas"][name]["number of bins"]
+                antenna_data = data[ant_nr*sampling_period:(ant_nr+1)*sampling_period].to_pandas()
+                times = antenna_data["Time"]
+                Ex = antenna_data["Ex"]
+                Ey = antenna_data["Ey"]
+                Ez = antenna_data["Ez"]
+                dictionary[name] = pd.DataFrame({'time': times, 'Ex': Ex, 'Ey': Ey, 'Ez': Ez})
+                ant_nr = ant_nr+ 1
+
+            dataset[str(i)] = dictionary
 
         return dataset
 
-- 
GitLab