gpcervellera commited on
Commit
609c5aa
·
verified ·
1 Parent(s): 610f91c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +81 -3
app.py CHANGED
@@ -57,10 +57,88 @@ def telemetry():
57
  json_data = request.json
58
  data=json_data
59
  print(data)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  pic={}
61
- pic['testo_prima_domanda']='hh'
62
- pic['risultato']='hh'
63
- pic['tabelle']='jjj'
 
 
64
  response = jsonify(pic)
65
  return response
66
 
 
57
  json_data = request.json
58
  data=json_data
59
  print(data)
60
+
61
+ d = json_data
62
+ df_s = pd.DataFrame({
63
+ "deviceId": d["deviceId"],
64
+ "TELEMETRY_SEQ_GROUP_ID": d["TELEMETRY_SEQ_GROUP_ID"],
65
+ **{k: d[k] for k in d if isinstance(d[k], list)}
66
+ })
67
+ cols = [
68
+ 'OAT', 'IAS', 'ALPHAI', 'BETAI', 'TETA', 'PHI', 'HDG', 'P', 'Q',
69
+ 'R', 'NR', 'NP1', 'NG1', 'VZ', 'ZRS',
70
+ 'E1A_TM_TOT', 'E1A_TM_T1', 'NGR1', 'DP1'
71
+ ]
72
+ X = df_s[cols]
73
+ assert list(X.columns) == cols
74
+
75
+ X = df_s[cols]
76
+ X = sm.add_constant(X)
77
+ y_pred = res_loaded.predict(X)
78
+ y_pred_100 = y_pred * 100
79
+ df_s['y_pred_100']=y_pred_100
80
+ #print(len(y_pred_100))
81
+ df_s["clogging_LH_Predicted"] = np.take(values, np.searchsorted(bins, df_s["y_pred_100"], side="right"))
82
+ mean_clogging = df_s["clogging_LH_Predicted"].mean()
83
+ #creo la cartella se non esiste
84
+ device_id = d["deviceId"]
85
+ csv_path = os.path.join(device_id, "clogging_mean_by_group.csv")
86
+ group_id = d["TELEMETRY_SEQ_GROUP_ID"]
87
+ if group_id == 0:
88
+ if os.path.exists(device_id):
89
+ shutil.rmtree(device_id)
90
+ os.makedirs(device_id)
91
+ #dataframe da scrivere
92
+ row = pd.DataFrame([{
93
+ "TELEMETRY_SEQ_GROUP_ID": group_id,
94
+ "mean_clogging_LH_Predicted": mean_clogging
95
+ }])
96
+ row.to_csv(
97
+ csv_path,
98
+ mode="a",
99
+ header=not os.path.exists(csv_path),
100
+ index=False
101
+ )
102
+ #regressione
103
+ dtf=pd.read_csv(csv_path)
104
+ #print(dtf)
105
+ l=len(dtf)
106
+ if l>5:
107
+ X=dtf[['TELEMETRY_SEQ_GROUP_ID']]
108
+ y=dtf['mean_clogging_LH_Predicted']
109
+ model = LinearRegression()
110
+ model.fit(X, y)
111
+
112
+ a = model.coef_[0]
113
+ b = model.intercept_
114
+
115
+ x_at_100 = ((100 - b) / a) if a != 0 else np.nan
116
+ if a != 0:
117
+ x_at_100 =x_at_100 - int(group_id)
118
+ slope= a
119
+ intercept= b
120
+ r2= model.score(X, y)
121
+ n_points= l
122
+ else:
123
+ x_at_100 =np.nan
124
+ slope=np.nan
125
+ intercept= np.nan
126
+ r2= np.nan
127
+ n_points= l
128
+
129
+ else:
130
+ x_at_100 =np.nan
131
+ slope=np.nan
132
+ intercept= np.nan
133
+ r2= np.nan
134
+ n_points= l
135
+
136
  pic={}
137
+ pic['x_at_100']=x_at_100
138
+ pic['slope']=slope
139
+ pic['intercept']=intercept
140
+ pic['r2']=r2
141
+ pic['n_points']=l
142
  response = jsonify(pic)
143
  return response
144