|
@@ -88,7 +88,7 @@ class DBManager():
|
|
|
yield json.loads(line)
|
|
|
|
|
|
@staticmethod
|
|
|
- def _convert_to_bms(data, mode=0):
|
|
|
+ def _convert_to_dataframe_bms(data, mode=0):
|
|
|
CellU = []
|
|
|
CellT = []
|
|
|
OtherT = []
|
|
@@ -127,7 +127,7 @@ class DBManager():
|
|
|
return data_block,CellU_Num,CellT_Num,OtherT_Num
|
|
|
|
|
|
@staticmethod
|
|
|
- def _convert_to_dataframe_Gps(data, mode=0):
|
|
|
+ def _convert_to_dataframe_gps(data, mode=0):
|
|
|
if mode == 0:
|
|
|
if data['info']['subType'] == 1:
|
|
|
data_block = np.array([data['info']['obdTime'],data['ffGps']['locationType'], data['ffGps']['satellites'],
|
|
@@ -144,6 +144,44 @@ class DBManager():
|
|
|
df = pd.DataFrame(
|
|
|
columns=['时间戳','纬度','经度','速度[km/h]','有效位'],data=data_block)
|
|
|
return df
|
|
|
+
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def _convert_to_dataframe_system(data, mode=0):
|
|
|
+ if mode == 0:
|
|
|
+
|
|
|
+ data_block = np.array([data['info']['obdTime'],data['ffSystemInfo']['heatTargetTemp'], data['ffSystemInfo']['heatTimeout'],
|
|
|
+ time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(data['ffSystemInfo']['rentalStartTime'])/1000)),
|
|
|
+ data['ffSystemInfo']['rentalPeriodDays'],data['ffSystemInfo']['bmsInterval'],
|
|
|
+ data['ffSystemInfo']['gpsInterval']]).reshape(1,7)
|
|
|
+ df = pd.DataFrame(
|
|
|
+ columns=['时间戳','加热目标温度', '加热超时','租赁开始时间','租赁天数','bms上传周期','gps上传周期'],data=data_block)
|
|
|
+
|
|
|
+ if mode == 1:
|
|
|
+ data_block = np.array([data['info']['obdTime'],data['ffGps']['latitude'],data['ffGps']['longitude']
|
|
|
+ ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,5)
|
|
|
+ df = pd.DataFrame(
|
|
|
+ columns=['时间戳','纬度','经度','速度[km/h]','有效位'],data=data_block)
|
|
|
+ return df
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def _convert_to_dataframe_accum(data, mode=0):
|
|
|
+ if mode == 0:
|
|
|
+
|
|
|
+ data_block = np.array([data['info']['obdTime'],data['ffBatteryAccum']['SOH_AlgUnexTime'], data['ffBatteryAccum']['CHG_AHaccum'],
|
|
|
+ data['ffBatteryAccum']['CHG_PHaccum'], data['ffBatteryAccum']['DSG_AHaccum'],
|
|
|
+ data['ffBatteryAccum']['DSG_PHaccum'],data['ffBatteryAccum']['OverTemp_CHG_AHaccum'],
|
|
|
+ data['ffBatteryAccum']['OverTemp_CHG_PHaccum']]).reshape(1,8)
|
|
|
+ df = pd.DataFrame(
|
|
|
+ columns=['时间戳','SOH未标定时间', '累计充电电量','累计充电能量','累计放电电量','累计放电能量',
|
|
|
+ '累计高温充电电量', '累计高温充电能量'],data=data_block)
|
|
|
+
|
|
|
+ if mode == 1:
|
|
|
+ data_block = np.array([data['info']['obdTime'],data['ffGps']['latitude'],data['ffGps']['longitude']
|
|
|
+ ,data['ffGps']['speed'], data['ffGps']['isValid']]).reshape(1,5)
|
|
|
+ df = pd.DataFrame(
|
|
|
+ columns=['时间戳','纬度','经度','速度[km/h]','有效位'],data=data_block)
|
|
|
+ return df
|
|
|
|
|
|
@staticmethod
|
|
|
def _get_data(urls,type_name,mode=0):
|
|
@@ -161,11 +199,11 @@ class DBManager():
|
|
|
for line in DBManager._download_json_data(urls):
|
|
|
et = time.time()
|
|
|
if i==0:
|
|
|
- data_blocks,CellUNum,CellTNum,OtherTNumm = DBManager._convert_to_bms(line, mode)
|
|
|
+ data_blocks,CellUNum,CellTNum,OtherTNumm = DBManager._convert_to_dataframe_bms(line, mode)
|
|
|
i+=1
|
|
|
continue
|
|
|
try:
|
|
|
- data_block,CellUNum,CellTNum,OtherTNumm = DBManager._convert_to_bms(line, mode)
|
|
|
+ data_block,CellUNum,CellTNum,OtherTNumm = DBManager._convert_to_dataframe_bms(line, mode)
|
|
|
except:
|
|
|
continue
|
|
|
data_blocks = np.concatenate((data_blocks,data_block),axis=0)
|
|
@@ -188,11 +226,32 @@ class DBManager():
|
|
|
elif mode == 1:
|
|
|
df_all = pd.DataFrame(columns=['时间戳','纬度','经度','速度[km/h]','有效位'])
|
|
|
for line in DBManager._download_json_data(urls):
|
|
|
- df_add = DBManager._convert_to_dataframe_Gps(line, mode)
|
|
|
+ df_add = DBManager._convert_to_dataframe_gps(line, mode)
|
|
|
+ df_all = df_all.append(df_add,ignore_index=True)
|
|
|
+ df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
|
|
|
+ return df_all
|
|
|
+ elif type_name =='system':
|
|
|
+ if mode == 0:
|
|
|
+ df_all = pd.DataFrame(columns=['时间戳','加热目标温度', '加热超时','租赁开始时间','租赁天数','bms上传周期','gps上传周期'])
|
|
|
+ elif mode == 1:
|
|
|
+ df_all = pd.DataFrame(columns=['时间戳','纬度','经度','速度[km/h]','有效位'])
|
|
|
+ for line in DBManager._download_json_data(urls):
|
|
|
+ df_add = DBManager._convert_to_dataframe_system(line, mode)
|
|
|
+ df_all = df_all.append(df_add,ignore_index=True)
|
|
|
+ df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
|
|
|
+ return df_all
|
|
|
+
|
|
|
+ elif type_name =='accum':
|
|
|
+ if mode == 0:
|
|
|
+ df_all = pd.DataFrame(columns=['时间戳','SOH未标定时间', '累计充电电量','累计充电能量','累计放电电量','累计放电能量',
|
|
|
+ '累计高温充电电量', '累计高温充电能量'])
|
|
|
+ elif mode == 1:
|
|
|
+ df_all = pd.DataFrame(columns=['时间戳','纬度','经度','速度[km/h]','有效位'])
|
|
|
+ for line in DBManager._download_json_data(urls):
|
|
|
+ df_add = DBManager._convert_to_dataframe_accum(line, mode)
|
|
|
df_all = df_all.append(df_add,ignore_index=True)
|
|
|
df_all.loc[:,'时间戳'] = df_all.loc[:,'时间戳'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(x)/1000)))
|
|
|
return df_all
|
|
|
-
|
|
|
def get_data(self, url='http://172.16.126.13/store/load?dataType={}&limit=0&sn={}', sn='', start_time='', end_time='',
|
|
|
data_groups=['bms', 'gps']):
|
|
|
'''
|