@@ -57,12 +57,10 @@ def list_log_files(fs, devices, start_times, verbose=True):
57
57
if len (log_files_device ) > 0 :
58
58
with fs .open (log_files_device [0 ], "rb" ) as handle :
59
59
mdf_file = mdf_iter .MdfFile (handle )
60
-
61
60
df_raw_lin = mdf_file .get_data_frame_lin ()
62
61
df_raw_lin ["IDE" ] = 0
63
62
df_raw_can = mdf_file .get_data_frame ()
64
63
df_raw = df_raw_can .append (df_raw_lin )
65
-
66
64
end_time = df_raw .index [- 1 ]
67
65
68
66
if end_time < start :
@@ -129,7 +127,7 @@ def __init__(self, fs, db_list, signals=[], days_offset=None, verbose=True):
129
127
self .verbose = verbose
130
128
return
131
129
132
- def extract_phys (self , df_raw , tp_type = None ):
130
+ def extract_phys (self , df_raw ):
133
131
"""Given df of raw data and list of decoding databases, create new def with
134
132
physical values (no duplicate signals and optionally filtered/rebaselined)
135
133
"""
@@ -140,15 +138,12 @@ def extract_phys(self, df_raw, tp_type=None):
140
138
for db in self .db_list :
141
139
df_decoder = can_decoder .DataFrameDecoder (db )
142
140
143
- if tp_type != None :
144
- df_phys_tp = pd .DataFrame ()
145
- for length , group in df_raw .groupby ("DataLength" ):
146
- df_phys_group = df_decoder .decode_frame (group )
147
- df_phys_tp = df_phys_tp .append (df_phys_group )
141
+ df_phys_temp = pd .DataFrame ()
142
+ for length , group in df_raw .groupby ("DataLength" ):
143
+ df_phys_group = df_decoder .decode_frame (group )
144
+ df_phys_temp = df_phys_temp .append (df_phys_group )
148
145
149
- df_phys = df_phys .append (df_phys_tp .sort_index ())
150
- else :
151
- df_phys = df_phys .append (df_decoder .decode_frame (df_raw ))
146
+ df_phys = df_phys .append (df_phys_temp .sort_index ())
152
147
153
148
# remove duplicates in case multiple DBC files contain identical signals
154
149
df_phys ["datetime" ] = df_phys .index
@@ -157,20 +152,21 @@ def extract_phys(self, df_raw, tp_type=None):
157
152
158
153
# optionally filter and rebaseline the data
159
154
df_phys = self .filter_signals (df_phys )
160
- df_phys = self .rebaseline_data (df_phys )
155
+
156
+ if not df_phys .empty and type (self .days_offset ) == int :
157
+ df_phys = self .rebaseline_data (df_phys )
161
158
162
159
return df_phys
163
160
164
161
def rebaseline_data (self , df_phys ):
165
162
"""Given a df of physical values, this offsets the timestamp
166
163
to be equal to today, minus a given number of days.
167
164
"""
168
- if not df_phys .empty and type (self .days_offset ) == int :
169
- from datetime import datetime , timezone
170
- import pandas as pd
165
+ from datetime import datetime , timezone
166
+ import pandas as pd
171
167
172
- delta_days = (datetime .now (timezone .utc ) - df_phys .index .min ()).days - self .days_offset
173
- df_phys .index = df_phys .index + pd .Timedelta (delta_days , "day" )
168
+ delta_days = (datetime .now (timezone .utc ) - df_phys .index .min ()).days - self .days_offset
169
+ df_phys .index = df_phys .index + pd .Timedelta (delta_days , "day" )
174
170
175
171
return df_phys
176
172
0 commit comments