Skip to content

Commit 600a158

Browse files
authored
Merge pull request #17 from fact-project/more_auxservices
More auxservices
2 parents d786676 + daf5aae commit 600a158

File tree

3 files changed

+61
-8
lines changed

3 files changed

+61
-8
lines changed

fact/auxservices/base.py

+10-6
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,26 @@ class AuxService:
1313

1414
def __init__(self, auxdir='/fact/aux'):
1515
self.auxdir = auxdir
16-
self.filename_template = os.path.join(
16+
17+
@property
18+
def filename_template(self):
19+
return os.path.join(
1720
self.auxdir, '{date:%Y}', '{date:%m}', '{date:%d}',
1821
'{date:%Y%m%d}.' + self.basename + '.fits'
1922
)
2023

21-
def read_file(self, filename):
24+
@classmethod
25+
def read_file(cls, filename):
2226
with warnings.catch_warnings():
2327
warnings.simplefilter('ignore', category=UnitsWarning)
2428
table = Table.read(filename)
2529

2630
for column in table.columns.keys():
27-
if column in self.ignored_columns:
31+
if column in cls.ignored_columns:
2832
table.remove_column(column)
2933

30-
elif column in self.renames:
31-
table[column].name = self.renames[column]
34+
elif column in cls.renames:
35+
table[column].name = cls.renames[column]
3236

3337
for column in table.columns.keys():
3438
shape = table[column].shape
@@ -39,7 +43,7 @@ def read_file(self, filename):
3943

4044
df = table.to_pandas()
4145

42-
for key, transform in self.transforms.items():
46+
for key, transform in cls.transforms.items():
4347
df[key] = transform(df[key])
4448

4549
return df

fact/auxservices/services.py

+50-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ def fact_mjd_to_datetime(fact_mjd):
1414
'DrivePointing',
1515
'DriveSource',
1616
'FSCHumidity',
17-
'FSCTemperature'
17+
'FSCTemperature',
18+
'FTMTriggerRates',
19+
'BiasVoltage',
20+
'FADTemperature',
1821
]
1922

2023

@@ -122,3 +125,49 @@ class FSCTemperature(AuxService):
122125
}
123126
transforms = {'timestamp': fact_mjd_to_datetime}
124127
ignored_columns = ['QoS', ]
128+
129+
130+
class FTMTriggerRates(AuxService):
131+
basename = 'FTM_CONTROL_TRIGGER_RATES'
132+
renames = {
133+
'Time': 'timestamp',
134+
'FTMtimeStamp': 'ftm_timestamp',
135+
'OnTimeCounter': 'effective_ontime',
136+
'TriggerCounter': 'trigger_counter',
137+
'TriggerRate': 'trigger_rate',
138+
'BoardRate': 'board_rate',
139+
'PatchRate': 'patch_rate',
140+
'OnTime': 'ontime',
141+
'ElapsedTime': 'elapsed_time',
142+
}
143+
transforms = {
144+
'timestamp': fact_mjd_to_datetime,
145+
'ftm_timestamp': lambda x: x/1e6,
146+
'effective_ontime': lambda x: x/1e6,
147+
}
148+
ignored_columns = ['QoS', ]
149+
150+
151+
class BiasVoltage(AuxService):
152+
basename = "BIAS_CONTROL_VOLTAGE"
153+
renames = {
154+
'Time': 'timestamp',
155+
'Uout': 'bias_voltage',
156+
}
157+
transforms = {
158+
'timestamp': fact_mjd_to_datetime,
159+
}
160+
ignored_columns = ['QoS', ]
161+
162+
163+
class FADTemperature(AuxService):
164+
basename = "FAD_CONTROL_TEMPERATURE"
165+
renames = {
166+
'Time': 'timestamp',
167+
'cnt': 'count',
168+
'temp': 'temperature',
169+
}
170+
transforms = {
171+
'timestamp': fact_mjd_to_datetime,
172+
}
173+
ignored_columns = ['QoS', ]

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
setup(
55
name='fact',
6-
version='0.6.0',
6+
version='0.7.0',
77
description='A module containing useful methods for working with fact',
88
url='http://github.com/fact-project/pyfact',
99
author='Maximilian Noethe, Dominik Neise',

0 commit comments

Comments
 (0)