enginetotalhoursofoperationj1939 - SPN 247
Total hours the engine has operated
High-Level Explanation - SPN 247
This signal is a count of the number of hours that the engine has been operating for. This signal is a floating point number and the resolution is accurate to 0.05 hours (3 minutes).
Enables
This signal, similar to odometer, is strictly increasing and can be used to determine the total number of hours that an engine has operated. Further, this signal can be used to determine how many hours a vehicle has operated during any subset of time for which there are recorded values of enginetotalhoursofoperationj1939.
For example, to determine how many hours a vehicle was operating per day, the following code can be used. Note that this code is also robust to missing data between days as the difference in engine operating hours from the end of the each day to the start of the next day are ignored (e.g. if data is received on day 1, day 2, day 5, day 6, the hours that the vehicle was operating on day 3 and day 4 would not be counted in the hours operating on day 5).
gdf['year_month_day'] = gdf['timestamp'].map(lambda x: x.strftime('%Y_%m_%d'))
gdf['engine_hours_operation_diff'] = gdf['enginetotalhoursofoperationj1939'].ffill().bfill().diff().fillna(0)
temp = gdf.dropna(subset = 'enginetotalhoursofoperationj1939').copy(deep = True)
temp = temp.loc[~temp['timestamp'].isin(temp.groupby('year_month_day').first()['timestamp'].tolist())]
day_data['engine_hours_operation_sum'] = temp.groupby('year_month_day')['engine_hours_operation_diff'].sum()Enabled By
This signal is only available on vehicles with j1939 data, which is found on heavy trucks.
Known Quirks
Visualizations with Explanations

enginetotalhoursofoperationj1939 signalLast updated