Skip to content

Commit eda3984

Browse files
author
K.-Michael Aye
committed
add RDRS class
1 parent 5bdb490 commit eda3984

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

diviner/rdrx.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
"""This module provides utilities to deal with RDRx files."""
2-
from diviner import file_utils as fu
32
import pandas as pd
43

4+
from diviner import file_utils as fu
5+
56
# this list are the column names in rdrr that have detector specific data.
67
to_melt = [
78
'cemis',
@@ -72,6 +73,36 @@ def get_edr_data(self):
7273
return self.df.filter(regex='edr_')
7374

7475

76+
class RDRS(object):
77+
"""Class to enable extracting data from RDRx."""
78+
79+
def __init__(self, tstr_or_filename):
80+
self.df = fu.RDRS_Reader(tstr_or_filename).open()
81+
82+
@property
83+
def columns(self):
84+
return self.df.columns
85+
86+
def get_column(self, colbase):
87+
return self.df.filter(regex='^' + colbase + '_')
88+
89+
def get_counts(self):
90+
return self.get_column('counts')
91+
92+
def get_molten_col(self, colbase, channel):
93+
rdr1 = self.df
94+
df = rdr1[colnames(colbase, channel)]
95+
df = df.rename(columns=lambda x: int(x.split('_')[-1]))
96+
return pd.melt(df.reset_index(), id_vars=['index'],
97+
var_name='det', value_name=colbase)
98+
99+
def merge_with_molten(self, colbase, channel, target_df):
100+
molten = self.get_molten_col(colbase, channel)
101+
return target_df.merge(molten, on=['index', 'det'])
102+
103+
def get_edr_data(self):
104+
return self.df.filter(regex='edr_')
105+
75106
no_melt = [
76107
'jdate',
77108
'orbit',

0 commit comments

Comments
 (0)