@@ -1017,10 +1017,8 @@ def getQgsLayer(self, itvfiles):
1017
1017
# avancement = (((countline * 100) / total) * 0.9) + 10
1018
1018
# self.dlg.progress.setProperty("value", avancement)
1019
1019
1020
- # change style TODO JB, relative path to .qml in config, urbanD ?
1021
- path_file = os .path .join (Path (__file__ ).parent .parent .parent .parent , "config/base3_urbandrainage/lamiaITVimport/Anomalies ITV.qml" )
1020
+ path_file = os .path .join (os .path .dirname (Lamia .__file__ ), "config/base3_urbandrainage/lamiaITVimport/Anomalies_ITV.qml" )
1022
1021
temp_layer .loadNamedStyle (path_file )
1023
- # Sortir du mode édition
1024
1022
temp_layer .commitChanges ()
1025
1023
1026
1024
return temp_layer
@@ -1134,25 +1132,25 @@ def setQgsEgde(self, dataframe, itv_name):
1134
1132
indicators_list = []
1135
1133
# result_df = pd.DataFrame(index=dataframe.index, columns=["id_edge"])
1136
1134
for indicator in all_exfiltration_indicators .keys ():
1137
- indicators_list .append (indicator )
1135
+ indicators_list .append ('score_' + indicator )
1138
1136
indicators_list .append ('result_' + indicator )
1139
1137
# result_df[indicator] = np.nan
1140
1138
for indicator in all_infiltration_indicators :
1141
- indicators_list .append (indicator )
1139
+ indicators_list .append ('score_' + indicator )
1142
1140
indicators_list .append ('result_' + indicator )
1143
1141
# result_df[indicator] = np.nan
1144
1142
for indicator in all_ensablement_indicators :
1145
- indicators_list .append (indicator )
1143
+ indicators_list .append ('score_' + indicator )
1146
1144
indicators_list .append ('result_' + indicator )
1147
1145
# result_df[indicator] = np.nan
1148
1146
for indicator in all_red_cap_hyfraulique_indicators :
1149
- indicators_list .append (indicator )
1147
+ indicators_list .append ('score_' + indicator )
1150
1148
indicators_list .append ('result_' + indicator )
1151
1149
# result_df[indicator] = np.nan
1152
1150
1153
1151
# create qgis layer to put ITV result
1154
1152
temp_layer = qgis .core .QgsVectorLayer (
1155
- f"NoGeometry?crs=epsg:{ self .dbase .crsnumber } " , "result_" + itv_name , "memory"
1153
+ f"NoGeometry?crs=epsg:{ self .dbase .crsnumber } " , itv_name , "memory"
1156
1154
)
1157
1155
1158
1156
pr = temp_layer .dataProvider ()
@@ -1329,25 +1327,16 @@ def computeOneIndicator(self, result_df, indicator, alpha, P, dict_of_indictors)
1329
1327
result_df [indicator ][np .logical_and (under_limit <= result_df [indicator ].values , result_df [indicator ].values < treshold [0 ])] = result_df [indicator ][np .logical_and (under_limit <= result_df [indicator ].values , result_df [indicator ].values < treshold [0 ])].values + result_df [col ][np .logical_and (under_limit <= result_df [indicator ].values , result_df [indicator ].values < treshold [0 ])].values * (alpha ** treshold [1 ])
1330
1328
under_limit = treshold [0 ]
1331
1329
# we divide total score by total length of the edge
1332
- result_df [indicator ] = result_df [indicator ] / result_df ["length" ]
1333
- result_df ['result_' + indicator ] = result_df [indicator ]
1334
- # result_df[indicator] = result_df[indicator].fillna(np.inf)
1330
+ result_df ['score_' + indicator ] = result_df [indicator ] / result_df ["length" ]
1331
+ result_df ['result_' + indicator ] = result_df [indicator ] / result_df ["length" ]
1335
1332
threshold_result = [1. , 2. , 3. , 4. ]
1336
1333
if indicator in ["EXF4" , "INF4" ]:
1337
- # under_limit = 0.
1338
- for i , treshold in enumerate ([0.5 , 2. , 7. , np .inf ]):
1339
- result_df .loc [result_df ['result_' + indicator ] >= treshold , indicator ] = threshold_result [i ]
1340
- # if 0 < len(result_df[indicator][np.logical_and(under_limit <= result_df[indicator].values, result_df[indicator].values < treshold)]):
1341
- # result_df[indicator][np.logical_and(under_limit <= result_df[indicator].values, result_df[indicator].values < treshold)] = threshold_result[i]
1342
- # under_limit = treshold
1334
+ for i , treshold in enumerate ([0. , 0.5 , 2. , 7. ]):
1335
+ result_df .loc [result_df ['result_' + indicator ] >= treshold , 'score_' + indicator ] = threshold_result [i ]
1343
1336
elif indicator in ["HYD3" , "ENS4" ]:
1344
- # under_limit = 0.
1345
- for i , treshold in enumerate ([1. , 4. , 14. , np .inf ]):
1346
- result_df .loc [result_df ['result_' + indicator ] >= treshold , indicator ] = threshold_result [i ]
1347
- # if 0 < len(result_df[indicator][np.logical_and(under_limit <= result_df[indicator].values, result_df[indicator].values < treshold)]):
1348
- # result_df[indicator][np.logical_and(under_limit <= result_df[indicator].values, result_df[indicator].values < treshold)] = threshold_result[i]
1349
- # under_limit = treshold
1350
- # result_df[indicator][result_df[indicator] == np.inf] = None
1337
+ for i , treshold in enumerate ([0. , 1. , 4. , 14. ]):
1338
+ result_df .loc [result_df ['result_' + indicator ] >= treshold , 'score_' + indicator ] = threshold_result [i ]
1339
+ result_df .drop (indicator , axis = 'columns' , inplace = True )
1351
1340
return result_df
1352
1341
1353
1342
def computeIndicators (self , pks , alpha = 2 , P = 5 , itv_name = "ITV" ):
@@ -1365,7 +1354,6 @@ def computeIndicators(self, pks, alpha=2, P=5, itv_name="ITV"):
1365
1354
nodes = self .getAllPoints ()
1366
1355
# ETL for itv
1367
1356
dataframe = self .getUniquesValuesbyEdge (pks )
1368
- # dataframe["length"] = 0
1369
1357
dataframe ["k_reg_1" ] = ""
1370
1358
dataframe ["k_reg_2" ] = ""
1371
1359
dataframe ["X1" ] = np .nan
@@ -1396,5 +1384,4 @@ def computeIndicators(self, pks, alpha=2, P=5, itv_name="ITV"):
1396
1384
dataframe = self .computeOneIndicator (dataframe , indicator , alpha , P , all_ensablement_indicators )
1397
1385
for indicator in all_red_cap_hyfraulique_indicators :
1398
1386
dataframe = self .computeOneIndicator (dataframe , indicator , alpha , P , all_red_cap_hyfraulique_indicators )
1399
- self .getQgsLayer (pks )
1400
1387
return self .setQgsEgde (dataframe , itv_name )
0 commit comments