diff --git a/UI/FigDischargeDistribution.py b/UI/FigDischargeDistribution.py
index 6c3b8b5ec1baad0aece26fd1437bbb99ef528ddd..9616d3a028ca6fcb27a280c4a75dedc3e899187d 100644
--- a/UI/FigDischargeDistribution.py
+++ b/UI/FigDischargeDistribution.py
@@ -129,7 +129,7 @@ class FigDischargeDistribution(object):
             grouped_meas = pd.concat([grouped_meas, grouped_sort], axis=1)
             grouped_meas = grouped_meas.sort_values('column_sorted', ascending=ascending)
         else:
-            grouped_meas = selected_transects.groupby([col_group_by]).agg({'tr_q_total': list})
+            # grouped_meas = selected_transects.groupby([col_group_by]).agg({'tr_q_total': list})
             grouped_meas = grouped_meas.sort_values([col_group_by], ascending=ascending)
         grouped_meas.tr_q_total = [[x for x in y if not np.isnan(x)] for y in grouped_meas.tr_q_total]
 
@@ -154,8 +154,27 @@ class FigDischargeDistribution(object):
 
         data = [[self.units['Q'] * i for i in inner] for inner in grouped_meas['tr_q_total']]
         nanmean = [np.nanmean(i) for i in data]
-        legends.append(mpatches.Patch(facecolor='darkorange', edgecolor="k", linewidth=1))##36ed00
-        score_color = False
+
+        # Select color
+        colors = []
+        if score_color:
+            # score = np.abs(300 * (nanmean - discharge_ref) / (discharge_ref * deviation))
+            for name in list(grouped_meas.index):
+                score = mean_selected_meas.loc[name, 'score']
+                if not score:
+                    colors.append('darkorange')
+                elif score <= 2:
+                    colors.append('#36ed00')
+                elif score <= 3:
+                    colors.append('#ffcc00')
+                else:
+                    colors.append('#ff004d')
+        else:
+            colors = ['darkorange'] * len(nanmean)
+
+        # Add boxplot to legend
+        legends.append(mpatches.Patch(facecolor=colors[0], edgecolor="k", linewidth=1))##36ed00
+
         # Plot boxplot/violinplot
         if len(data) > 0:
             if violin:
@@ -163,38 +182,23 @@ class FigDischargeDistribution(object):
                                                      showmedians=False, showextrema=False
                                                      )
 
-                if score_color:
-                    score = np.abs(300 * (nanmean - discharge_ref) / (discharge_ref * deviation))
-                    color = []
-                    for i in score:
-                        if i <= 2:
-                            color.append('#36ed00')
-                        elif i <= 3:
-                            color.append('#ffcc00')
-                        else:
-                            color.append('#ff004d')
-                    j = -1
-                    for violin in violin_plot['bodies']:
-                        j += 1
-                        violin.set_facecolor(color[j])
-                        violin.set_edgecolor('black')
-                        violin.set_alpha(1)
-                else:
-                    for violin in violin_plot['bodies']:
-                        violin.set_facecolor('darkorange')
-                        violin.set_edgecolor('black')
-                        violin.set_alpha(1)
+                for violin, color in zip(violin_plot['bodies'], colors):
+                    violin.set_facecolor(color)
+                    violin.set_edgecolor('black')
+                    violin.set_alpha(1)
 
                 p5 = self.fig.ax.scatter(np.arange(len_meas), nanmean, marker='o', color='k', s=30, zorder=3)
                 legends.append(p5)
                 label_txt.append(self._translate("Main", 'Mean value'))
             else:
-                self.fig.ax.boxplot(data, positions=np.arange(len_meas),
+                bp = self.fig.ax.boxplot(data, positions=np.arange(len_meas),
                                     whis=[0, 100], patch_artist=True,
-                                    boxprops=dict(facecolor='darkorange', edgecolor='k'),
+                                    boxprops=dict(edgecolor='k'),
                                     medianprops=dict(color='k'), whiskerprops=dict(color='k', linewidth=1),
                                     capprops=dict(color='k', linewidth=1),
                                     )
+                for patch, color in zip(bp['boxes'], colors):
+                    patch.set_facecolor(color)
         # Show number of transects
         if show_nb_transects:
             for i in range(len_meas):
diff --git a/UI/main.py b/UI/main.py
index e24ddb4591d4a651bbc9e0ec6f8c64359d27e381..b20e317a02713287e03e069c8e51f9e086952517 100644
--- a/UI/main.py
+++ b/UI/main.py
@@ -246,6 +246,8 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
         Plot distribution graph errorbox as violin
     q_distribution_nb_transects: bool
         Plot distribution graph number of transects per measurement
+    q_distribution_color_score: bool
+        Plot distribution graph with color based on the z score
 
     canvases: list
         List of canvases
@@ -430,6 +432,7 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
         # Distribution Figure
         self.q_distribution_violin = False
         self.q_distribution_nb_transects = False
+        self.q_distribution_color_score = False
 
         self.canvases = None
         self.figs = None
@@ -490,6 +493,8 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
         self.cb_violin.clicked.connect(lambda: self.update_param(self.cb_violin, 'q_distribution_violin', [3]))
         self.cb_nb_transect.clicked.connect(lambda: self.update_param(self.cb_nb_transect,
                                                                       'q_distribution_nb_transects', [3]))
+        self.cb_color_score.clicked.connect(lambda: self.update_param(self.cb_color_score,
+                                                                      'q_distribution_color_score', [3]))
 
         # Toolbar
         self.actionOpen.triggered.connect(self.open_data)
@@ -722,6 +727,8 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
                 # Remove same name rows
                 self.results_import_df = self.results_import_df[
                     ~self.results_import_df['meas_name'].isin(new_meas_names)]
+                self.transects_df = self.transects_df[
+                    ~self.transects_df['meas_name'].isin(new_meas_names)]
                 # Add new data
                 self.results_import_df = self.results_import_df.append(measurements_csv)
             self.results_import_df = self.results_import_df.reset_index(drop=True)
@@ -3083,7 +3090,8 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
                                                column_sorted=self.column_sorted,
                                                ascending=self.ascending,
                                                violin=self.q_distribution_violin,
-                                               show_nb_transects=self.q_distribution_nb_transects, )
+                                               show_nb_transects=self.q_distribution_nb_transects,
+                                               score_color=self.q_distribution_color_score)
         # Draw canvas
         self.discharge_distribution_canvas.draw()
 
diff --git a/UI/main_window.py b/UI/main_window.py
index 8147899f8c3835b8a95879efcea85ca9216ef7a0..f22a028327391fe6b9b309320266886c969640e2 100644
--- a/UI/main_window.py
+++ b/UI/main_window.py
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-# Form implementation generated from reading ui file 'main_window.ui'
+# Form implementation generated from reading ui file 'UI\main_window.ui'
 #
 # Created by: PyQt5 UI code generator 5.15.9
 #
@@ -98,6 +98,9 @@ class Ui_MainWindow(object):
         self.cb_nb_transect = QtWidgets.QCheckBox(self.tab_q_distribution)
         self.cb_nb_transect.setObjectName("cb_nb_transect")
         self.verticalLayout_2.addWidget(self.cb_nb_transect)
+        self.cb_color_score = QtWidgets.QCheckBox(self.tab_q_distribution)
+        self.cb_color_score.setObjectName("cb_color_score")
+        self.verticalLayout_2.addWidget(self.cb_color_score)
         spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
         self.verticalLayout_2.addItem(spacerItem)
         self.horizontalLayout_2.addLayout(self.verticalLayout_2)
@@ -214,6 +217,11 @@ class Ui_MainWindow(object):
         self.actionAddMeasurement.setIcon(icon8)
         self.actionAddMeasurement.setIconText("AddMeasurement")
         self.actionAddMeasurement.setObjectName("actionAddMeasurement")
+        self.actionKML = QtWidgets.QAction(MainWindow)
+        icon9 = QtGui.QIcon()
+        icon9.addPixmap(QtGui.QPixmap(":/images/images/Globe.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
+        self.actionKML.setIcon(icon9)
+        self.actionKML.setObjectName("actionKML")
         self.menuOpen.addAction(self.actionOpen_data)
         self.menuOpen.addAction(self.actionOpen_results)
         self.menuFile.addAction(self.menuOpen.menuAction())
@@ -234,6 +242,8 @@ class Ui_MainWindow(object):
         self.toolbar.addAction(self.actionHomeGraph)
         self.toolbar.addAction(self.actionZoomGraph)
         self.toolbar.addAction(self.actionPanGraph)
+        self.toolbar.addSeparator()
+        self.toolbar.addAction(self.actionKML)
 
         self.retranslateUi(MainWindow)
         self.tab_all.setCurrentIndex(0)
@@ -247,6 +257,7 @@ class Ui_MainWindow(object):
         self.tab_all.setTabText(self.tab_all.indexOf(self.tab_u_sources), _translate("MainWindow", "Uncertainty sources"))
         self.cb_violin.setText(_translate("MainWindow", "Violin"))
         self.cb_nb_transect.setText(_translate("MainWindow", "# Transects"))
+        self.cb_color_score.setText(_translate("MainWindow", "Color score"))
         self.tab_all.setTabText(self.tab_all.indexOf(self.tab_q_distribution), _translate("MainWindow", "Discharge distribution"))
         self.tab_all.setTabText(self.tab_all.indexOf(self.tab_q_correction), _translate("MainWindow", "Discharge correction"))
         self.menuFile.setTitle(_translate("MainWindow", "File"))
@@ -280,6 +291,8 @@ class Ui_MainWindow(object):
         self.actionAddMeasurement.setText(_translate("MainWindow", "AddMeasurement"))
         self.actionAddMeasurement.setToolTip(_translate("MainWindow", "Add measurement"))
         self.actionAddMeasurement.setShortcut(_translate("MainWindow", "Ctrl+F"))
+        self.actionKML.setText(_translate("MainWindow", "KML"))
+        self.actionKML.setToolTip(_translate("MainWindow", "Export as KML"))
 import resources_rc
 
 
diff --git a/UI/main_window.ui b/UI/main_window.ui
index 26e103ba7a1f953abba3ebfd019a143dba3ac064..43eebd10358ee0890917c3664654e779a0ec5eda 100644
--- a/UI/main_window.ui
+++ b/UI/main_window.ui
@@ -131,6 +131,13 @@
                 </property>
                </widget>
               </item>
+              <item>
+               <widget class="QCheckBox" name="cb_color_score">
+                <property name="text">
+                 <string>Color score</string>
+                </property>
+               </widget>
+              </item>
               <item>
                <spacer name="verticalSpacer">
                 <property name="orientation">