From b8ca77ed2dff9a368af373f0c172ab96279cbb5a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?COMMANDR=C3=89=20Benjamin?= <benjamin.commandre@irstea.fr>
Date: Mon, 4 Jun 2018 15:07:55 +0200
Subject: [PATCH] Upgrade to Python3

---
 Archive.py                     |  52 ++--
 PHYMOBAT.py                    | 150 ++++++------
 Precision_moba.py              |   4 +-
 Processing.py                  |   2 +-
 RasterSat_by_date.py           |  20 +-
 Seath.py                       |   8 +-
 Toolbox.py                     |   4 +-
 Vector.py                      |   5 +-
 Vhrs.py                        |   4 +-
 ui_A_propos_PHYMOBAT_window.py |  32 +--
 ui_PHYMOBATe_tab.py            | 213 ++++++++--------
 ui_PHYMOBATs_tab.py            | 428 ++++++++++++++++-----------------
 ui_Proxy_window.py             |  54 ++---
 ui_Warming_forgetting.py       |  32 +--
 ui_Warming_study_area.py       |  32 +--
 15 files changed, 497 insertions(+), 543 deletions(-)

diff --git a/Archive.py b/Archive.py
index a57e752..04d2425 100644
--- a/Archive.py
+++ b/Archive.py
@@ -18,7 +18,7 @@
 # along with PHYMOBAT 3.0.  If not, see <http://www.gnu.org/licenses/>.
 
 import os, sys, glob, re, shutil, time
-import math, subprocess, json, urllib2
+import math, subprocess, json, urllib # urllib2
 import tarfile, zipfile
 
 try :
@@ -26,10 +26,10 @@ try :
 except :
     from osgeo import ogr
 
-import UserDict
+# import UserDict
 import numpy as np
 from lxml import etree
-from collections import defaultdict
+from collections import defaultdict, UserDict
 
 from RasterSat_by_date import RasterSat_by_date
 
@@ -104,7 +104,7 @@ class Archive():
         _few_list_archive = np.array(few_list_archive)
         # Verify list informations
         if _few_list_archive.ndim < 2: 
-            print 'Few information in the list'
+            print ('Few information in the list')
         else:
             self.list_archive = few_list_archive
         
@@ -208,7 +208,7 @@ class Archive():
         data_source = driver.Open(utm_outfile, 0)
         
         if data_source is None:
-            print 'Could not open file'
+            print ('Could not open file')
             sys.exit(1)
         
         shp_ogr = data_source.GetLayer()
@@ -235,21 +235,21 @@ class Archive():
         """
         
         # Loop on the years
-        print "Images availables"
+        print ("Images availables")
         for year in self._list_year:
             
             first_date = year.split(',')[0]
             # Tricks to put whether a year or a date (year-month-day)
             try:
                 end_date = year.split(',')[1]
-                print "=============== " + str(first_date) + " to " + str(end_date) + " ==============="
+                print ("=============== " + str(first_date) + " to " + str(end_date) + " ===============")
                 self.url = self.server + '/' + self.resto + '/api/collections/' + self._captor + '/search.json?lang=fr&_pretty=true&completionDate=' + str(end_date) + '&box=' + self.coord_box_dd() + '&maxRecord=500&startDate=' + str(first_date)
 
             except IndexError:
-                print "=============== " + str(first_date) + " ==============="
+                print ("=============== " + str(first_date) + " ===============" )
                 self.url = self.server + '/' + self.resto + '/api/collections/' + self._captor + '/search.json?lang=fr&_pretty=true&q=' + str(year) + '&box=' + self.coord_box_dd() + '&maxRecord=500'
 
-            print self.url
+            print (self.url)
             # Link to connect in the database JSON of the Theia plateform
 #             self.url = r'https://theia.cnes.fr/resto/api/collections/' + self._captor + '/search.json?lang=fr&_pretty=true&q=' + str(year) + '&box=' + self.coord_box_dd() + '&maxRecord=500'
             # Temporary link
@@ -270,8 +270,8 @@ class Archive():
                 
                 try :
                     request_headers = {"User-Agent": "Firefox/48.0"}
-                    req = urllib2.Request(str(self.url), headers = request_headers) # Connexion in the database
-                    data = urllib2.urlopen(req).read() # Read in the database
+                    req = urllib.Request(str(self.url), headers = request_headers) # Connexion in the database
+                    data = urllib.urlopen(req).read() # Read in the database
                     
                     new_data = re.sub("null", "'null'", data) # Remove "null" because Python don't like
                     new_data = re.sub("false", "False", new_data) # Remove "false" and replace by False (Python know False with a capital letter F)
@@ -296,10 +296,10 @@ class Archive():
                     else:
                         next_ = 0
                 except:
-                    print "Error connexion or error variable !"
+                    print ("Error connexion or error variable !")
                     sys.exit(1)
 
-        print "There is " + str(len(self.list_archive)) + " images to download !"
+        print ("There is " + str(len(self.list_archive)) + " images to download !")
 
     def download_auto(self, user_theia, password_theia):
         """
@@ -343,7 +343,7 @@ class Archive():
                 elif self.token_type=="text":
                     token=data_file.readline()
             except :
-                print "Authentification is probably wrong"
+                print ("Authentification is probably wrong")
                 sys.exit(-1)
 
         #====================
@@ -354,24 +354,24 @@ class Archive():
             # Download if not exist
             if not os.path.exists(self.list_archive[d][1]):
                  
-                print str(round(100*float(d)/len(self.list_archive),2)) + "%" # Print loading bar
-                print os.path.split(str(self.list_archive[d][1]))[1]
+                print (str(round(100*float(d)/len(self.list_archive),2)) + "%") # Print loading bar
+                print (os.path.split(str(self.list_archive[d][1]))[1])
                 
 #                 get_product='curl -o %s -k -H "Authorization: Bearer %s" https://theia.cnes.fr/resto/collections/Landsat/%s/download/?issuerId=theia'%(curl_proxy,self.list_archive[d][1], token, self.list_archive[d][2])
                 get_product='curl %s -o %s -k -H "Authorization: Bearer %s" %s/%s/collections/%s/%s/download/?issuerId=theia'%(curl_proxy, self.list_archive[d][1], token, self.server, self.resto, self._captor, self.list_archive[d][2])
-                print get_product
+                print (get_product)
                 os.system(get_product)
                 
         os.remove('token.json')
-        print "100%"
-        print "END OF DOWNLOAD !"   
+        print ("100%")
+        print ("END OF DOWNLOAD !"   )
         
     def decompress(self):
         """
         Function to unpack archives and store informations of the images (date, path, ...)
         """
         
-        print "Unpack archives"
+        print ("Unpack archives")
         
         for annee in self._list_year:
             
@@ -379,15 +379,15 @@ class Archive():
             # Tricks to put whether a year or a date (year-month-day)
             try:
                 end_date = annee.split(',')[1]
-                print "=============== " + str(first_date) + " to " + str(end_date) + " ==============="
+                print ("=============== " + str(first_date) + " to " + str(end_date) + " ===============")
             except IndexError:
-                print "=============== " + str(first_date) + " ==============="
+                print ("=============== " + str(first_date) + " ===============")
             
             img_in_glob = []
             img_in_glob = glob.glob(str(self._folder) + '/'+ str(self._repertory) + '/*gz')
             
             if img_in_glob == []:
-                print "There isn't tgzfile in the folder"
+                print ("There isn't tgzfile in the folder")
                 sys.exit()
             else:
                 # Create a folder "Unpack"
@@ -406,7 +406,7 @@ class Archive():
                     if self._captor == 'Landsat':
                         out_folder_unpack = folder_unpack + '/' + os.path.split(img)[1][:len(os.path.split(img)[1])-4]
                         if not os.path.exists(out_folder_unpack):
-                            print 'Unpack :'+os.path.split(img)[1]   
+                            print ('Unpack :'+os.path.split(img)[1])   
                             tfile = tarfile.open(img, 'r:gz')
                             tfile.extractall(str(folder_unpack))
                     
@@ -432,7 +432,7 @@ class Archive():
                         zip_folder = zip_img[0].split('/')[0]
                         out_folder_unpack = folder_unpack + '/' + zip_folder
                         
-                        print 'Unpack :' + os.path.split(zip_folder)[1]
+                        print ('Unpack :' + os.path.split(zip_folder)[1])
                         extraction_img = []
                         for e in extent_img:
                             z_out = [f for f in zip_img if e in f][0]
@@ -464,5 +464,5 @@ class Archive():
                     if not di in self.single_date:
                         self.single_date.append(di)
     
-        print "End of unpack archives"
+        print ("End of unpack archives")
     
diff --git a/PHYMOBAT.py b/PHYMOBAT.py
index cd183e9..aa72225 100644
--- a/PHYMOBAT.py
+++ b/PHYMOBAT.py
@@ -31,9 +31,7 @@ __date__ = "Mars 2016"
 """
 
 import os, sys, time
-from PyQt5.QtWidgets import * 
-from PyQt5.QtCore import *
-from PyQt5.QtGui import *
+from PyQt5 import QtWidgets, QtCore
 
 from _collections import defaultdict
 
@@ -42,16 +40,9 @@ try :
 except :
     from osgeo import ogr
 
-# try:
-#     _fromUtf8 = QString.fromUtf8
-# except AttributeError:
-def _fromUtf8(s):
-    return s
-    
 import webbrowser
 import lxml.etree as ET
 import os.path
-print os.path.abspath(ET.__file__)
 
 from ui_A_propos_PHYMOBAT_window import Ui_About
 from ui_Warming_study_area import Ui_Warming_study_area
@@ -59,7 +50,7 @@ from ui_Warming_forgetting import Ui_Warming_forgetting
 from ui_Proxy_window import Ui_Proxy_window
 from Processing import Processing
 
-class PHYMOBAT(QMainWindow, Processing):
+class PHYMOBAT(QtWidgets.QMainWindow, Processing):
     """
     Interface main class. It makes to link ``ui_PHYMOBAT_tab`` and ``Processing``.
     """
@@ -78,11 +69,11 @@ class PHYMOBAT(QMainWindow, Processing):
         
         # To select interface's parameters        
         if self.mode == 1:
-            print "Expert"
+            print ("Expert")
             global Ui_PHYMOBAT, _translate
             from ui_PHYMOBATe_tab import Ui_PHYMOBAT, _translate
         elif self.mode == 0:
-            print "Simple"
+            print ("Simple")
             global Ui_PHYMOBAT, _translate
             from ui_PHYMOBATs_tab import Ui_PHYMOBAT, _translate
             
@@ -121,7 +112,6 @@ class PHYMOBAT(QMainWindow, Processing):
         ##########################################
         # Main folder path
         self.ui.lineEdit_principal_folder.clear()
-        # self.connect(self.ui.pushButton_browser_principal_folder, SIGNAL('clicked()'), self.f_path_folder_dpt)
         self.ui.pushButton_browser_principal_folder.clicked.connect(self.f_path_folder_dpt)
         
         # Block other function if SpotWorldHeritage is chose
@@ -132,26 +122,21 @@ class PHYMOBAT(QMainWindow, Processing):
         
         # VHRS image path
         self.ui.lineEdit_VHRS.clear()
-        # self.connect(self.ui.pushButton_browser_VHRS, SIGNAL('clicked()'), self.f_path_ortho)
         self.ui.pushButton_browser_VHRS.clicked.connect(self.f_path_ortho)
         
         # Study area shapefile path
         self.ui.lineEdit_area_path.clear()
-        # self.connect(self.ui.pushButton_browser_area_path, SIGNAL('clicked()'), self.f_path_area)
         self.ui.pushButton_browser_area_path.clicked.connect(self.f_path_area)
         
         # Proxy
-        # self.connect(self.ui.proxy, SIGNAL('clicked()'), self.f_proxy)
         self.ui.proxy.clicked.connect(self.f_proxy)
         
         # Segmentation shapefile path
         self.ui.lineEdit_segmentation.clear()
-        # self.connect(self.ui.pushButton_browser_segmentation, SIGNAL('clicked()'), self.f_path_segm)
         self.ui.pushButton_browser_segmentation.clicked.connect(self.f_path_segm)
         
         # MNT image path
         self.ui.lineEdit_MNT.clear()
-        # self.connect(self.ui.pushButton_browser_MNT, SIGNAL('clicked()'), self.f_path_mnt)
         self.ui.pushButton_browser_MNT.clicked.connect(self.f_path_mnt)
         
         # Output classification shapefile path
@@ -173,26 +158,26 @@ class PHYMOBAT(QMainWindow, Processing):
             
         # Image path  for samples if the first processing image hasn't been launched
         try:
-            self.connect(self.ui.pushButton_img_sample, SIGNAL('clicked()'), self.img_sample_name)
+            self.ui.pushButton_img_sample.clicked.connect(self.img_sample_name)
         except AttributeError:
             pass # Simple mode
         ##########################################
 
         # Connect button to add sample in the memory list
         try:
-            self.connect(self.ui.pushButton_add_sample, SIGNAL('clicked()'), self.add_sample)
+            self.ui.pushButton_add_sample.clicked.connect(self.add_sample)
         except AttributeError:
             pass # Simple mode
         
         # Connect button to clear sample record. Clear in the interface and in the memory list
         try:
-            self.connect(self.ui.pushButton_clear_sample, SIGNAL('clicked()'), self.clear_sample)
+            self.ui.pushButton_clear_sample.clicked.connect(self.clear_sample)
         except AttributeError:
             pass # Simple mode
         
         # Connect close|ok button
-        self.ui.buttonBox.button(QDialogButtonBox.Close).clicked.connect(self.close_button)
-        self.ui.buttonBox.button(QDialogButtonBox.Ok).clicked.connect(self.ok_button)
+        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Close).clicked.connect(self.close_button)
+        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).clicked.connect(self.ok_button)
         
         # Connect Menu bar
         self.ui.actionOuvrir.triggered.connect(self.open_backup) # Open backup
@@ -335,7 +320,7 @@ class PHYMOBAT(QMainWindow, Processing):
         """
         Open a input browser box to select the main folder path by line edit.
         """
-        infoldername = QFileDialog.getExistingDirectory(self, "Principal folder path", os.getcwd(), QFileDialog.ShowDirsOnly)
+        infoldername = QtWidgets.QFileDialog.getExistingDirectory(self, "Principal folder path", os.getcwd(), QtWidgets.QFileDialog.ShowDirsOnly)
         self.ui.lineEdit_principal_folder.setText(str(infoldername).replace('[','').replace(']','').replace(' ',''))
     
     def block_for_swh(self):
@@ -369,21 +354,21 @@ class PHYMOBAT(QMainWindow, Processing):
         """
         Open a input browser box to select the VHRS image path by line edit.
         """
-        orthofilename = QFileDialog.getOpenFileName(self, "THRS image", self.ui.lineEdit_principal_folder.text(), '*.TIF *.tif')
+        orthofilename = QtWidgets.QFileDialog.getOpenFileName(self, "THRS image", self.ui.lineEdit_principal_folder.text(), '*.TIF *.tif')
         self.ui.lineEdit_VHRS.setText(str(orthofilename).replace('[','').replace(']','').replace(' ',''))   
     
     def f_path_mnt(self):
         """
         Open a input browser box to select the MNT image path by line edit.
         """
-        mntfilename = QFileDialog.getOpenFileName(self, "MNT image", self.ui.lineEdit_principal_folder.text(), '*.TIF *.tif')
+        mntfilename = QtWidgets.QFileDialog.getOpenFileName(self, "MNT image", self.ui.lineEdit_principal_folder.text(), '*.TIF *.tif')
         self.ui.lineEdit_MNT.setText(str(mntfilename).replace('[','').replace(']','').replace(' ',''))  
         
     def f_path_area(self):
         """
         Open a input browser box to select the study area shapefile path by line edit.
         """        
-        areafilename = QFileDialog.getOpenFileName(self, "Area shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
+        areafilename = QtWidgets.QFileDialog.getOpenFileName(self, "Area shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
         self.ui.lineEdit_area_path.setText(str(areafilename).replace('[','').replace(']','').replace(' ',''))
         
     def f_proxy(self):   
@@ -398,14 +383,14 @@ class PHYMOBAT(QMainWindow, Processing):
         """
         Open a input browser box to select segmentation shapefile path path by line edit.
         """
-        segmfilename = QFileDialog.getOpenFileName(self, "Segmentation shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
+        segmfilename = QtWidgets.QFileDialog.getOpenFileName(self, "Segmentation shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
         self.ui.lineEdit_segmentation.setText(str(segmfilename).replace('[','').replace(']','').replace(' ',''))
     
     def f_output_name_moba(self):
         """
         Set the output classification shapefile path by line edit.
         """
-        outfilename = QFileDialog.getSaveFileName(self, "FB file", self.ui.lineEdit_principal_folder.text(), '*.shp')
+        outfilename = QtWidgets.QFileDialog.getSaveFileName(self, "FB file", self.ui.lineEdit_principal_folder.text(), '*.shp')
         # if the user has forgotten to put .shp at the end of the output shapefile
         if outfilename[-4:] != '.shp':
             outfilename = outfilename + '.shp'
@@ -416,7 +401,7 @@ class PHYMOBAT(QMainWindow, Processing):
         Open a input browser box to select the sample shapefile path by line edit. With :func:`add_sample` conditions for the expert mode.
         For the simply mode, this function is used for the RPG shapefile.
         """
-        samplefilename = QFileDialog.getOpenFileName(self, "Sample shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
+        samplefilename = QtWidgets.QFileDialog.getOpenFileName(self, "Sample shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
         self.ui.lineEdit_sample_path.setText(str(samplefilename).replace('[','').replace(']','').replace(' ',''))
     
     def enter_sample_name_hl(self):
@@ -424,21 +409,21 @@ class PHYMOBAT(QMainWindow, Processing):
         Open a input browser box to select the grass and wooden sample shapefile path by line edit. With :func:`add_sample` conditions 
         for the simply mode.
         """
-        samplefilename_hl = QFileDialog.getOpenFileName(self, "Grass/Wooden sample shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
+        samplefilename_hl = QtWidgets.QFileDialog.getOpenFileName(self, "Grass/Wooden sample shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
         self.ui.lineEdit_sample_path_2.setText(str(samplefilename_hl).replace('[','').replace(']','').replace(' ',''))
         
     def enter_sample_name_ll(self):
         """
         Open a input browser box to select the wooden sample shapefile path by line edit. With :func:`add_sample` conditions for the simply mode.
         """
-        samplefilename_ll = QFileDialog.getOpenFileName(self, "Wooden sample shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
+        samplefilename_ll = QtWidgets.QFileDialog.getOpenFileName(self, "Wooden sample shapefile", self.ui.lineEdit_principal_folder.text(), '*.shp')
         self.ui.lineEdit_sample_path_3.setText(str(samplefilename_ll).replace('[','').replace(']','').replace(' ',''))
         
     def img_sample_name(self):
         """
         Open a input browser box to select the image for samples path by line edit. With :func:`add_sample` conditions.
         """
-        imgsamplefilename = QFileDialog.getOpenFileName(self, "Sample image", self.ui.lineEdit_principal_folder.text(), '*.TIF')
+        imgsamplefilename = QtWidgets.QFileDialog.getOpenFileName(self, "Sample image", self.ui.lineEdit_principal_folder.text(), '*.TIF')
         self.ui.lineEdit_img_sample.setText(str(imgsamplefilename).replace('[','').replace(']','').replace(' ',''))
         
     def add_sample(self):
@@ -586,8 +571,8 @@ class PHYMOBAT(QMainWindow, Processing):
         self.ui.lineEdit_img_sample.clear()
         self.ui.checkBox_img_sample.setChecked(False)
         self.ui.plainTextEdit_sample.clear()
-        self.ui.plainTextEdit_sample.insertPlainText(_fromUtf8("1 - Végétation non naturelle / Semi-naturelle\n"))
-        self.ui.plainTextEdit_sample.insertPlainText(_fromUtf8("2 - Herbacés / Ligneux\n"))
+        self.ui.plainTextEdit_sample.insertPlainText("1 - Végétation non naturelle / Semi-naturelle\n")
+        self.ui.plainTextEdit_sample.insertPlainText("2 - Herbacés / Ligneux\n")
         self.ui.plainTextEdit_sample.insertPlainText("3 - Lingeux mixtes / denses\n")
         self.ui.plainTextEdit_sample.insertPlainText("\n")
         self.ui.plainTextEdit_sample.insertPlainText("\n")
@@ -663,19 +648,19 @@ class PHYMOBAT(QMainWindow, Processing):
             
             # Display options filednames
             self.ui.label_chps_1 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_1.setObjectName(_fromUtf8("label_chps_1"))
+            self.ui.label_chps_1.setObjectName("label_chps_1")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_1, 10, 0, 2, 2)
             self.ui.label_chps_name_1 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_name_1.setObjectName(_fromUtf8("label_chps_name_1"))
+            self.ui.label_chps_name_1.setObjectName("label_chps_name_1")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_name_1, 10, 2, 1, 1)
             self.ui.label_chps_type_1 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_type_1.setObjectName(_fromUtf8("label_chps_type_1"))
+            self.ui.label_chps_type_1.setObjectName("label_chps_type_1")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_type_1, 11, 2, 1, 1)
             self.ui.lineEdit_fieldname_1 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_1.setObjectName(_fromUtf8("lineEdit_fieldname_1"))
+            self.ui.lineEdit_fieldname_1.setObjectName("lineEdit_fieldname_1")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_1, 10, 3, 1, 1)
             self.ui.comboBox_fieldname_1 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_1.setObjectName(_fromUtf8("comboBox_fieldname_1"))
+            self.ui.comboBox_fieldname_1.setObjectName("comboBox_fieldname_1")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_1, 11, 3, 1, 1)
     
             self.ui.lineEdit_fieldname_1.setText(_translate("PHYMOBAT", "NIVEAU_1", None))
@@ -709,25 +694,25 @@ class PHYMOBAT(QMainWindow, Processing):
             self.ui.checkBox_classifier_3.setChecked(False)
         
             self.ui.label_chps_2 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_2.setObjectName(_fromUtf8("label_chps_2"))
+            self.ui.label_chps_2.setObjectName("label_chps_2")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_2, 13, 0, 2, 2)
             self.ui.lineEdit_fieldname_12 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_12.setObjectName(_fromUtf8("lineEdit_fieldname_12"))
+            self.ui.lineEdit_fieldname_12.setObjectName("lineEdit_fieldname_12")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_12, 13, 3, 1, 1)
             self.ui.lineEdit_fieldname_2 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_2.setObjectName(_fromUtf8("lineEdit_fieldname_2"))
+            self.ui.lineEdit_fieldname_2.setObjectName("lineEdit_fieldname_2")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_2, 13, 4, 1, 1)    
             self.ui.label_chps_type_2 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_type_2.setObjectName(_fromUtf8("label_chps_type_2"))
+            self.ui.label_chps_type_2.setObjectName("label_chps_type_2")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_type_2, 14, 2, 1, 1)
             self.ui.comboBox_fieldname_12 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_12.setObjectName(_fromUtf8("comboBox_fieldname_12"))
+            self.ui.comboBox_fieldname_12.setObjectName("comboBox_fieldname_12")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_12, 14, 3, 1, 1)
             self.ui.comboBox_fieldname_2 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_2.setObjectName(_fromUtf8("comboBox_fieldname_2"))
+            self.ui.comboBox_fieldname_2.setObjectName("comboBox_fieldname_2")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_2, 14, 4, 1, 1)
             self.ui.label_chps_name_2 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_name_2.setObjectName(_fromUtf8("label_chps_name_2"))
+            self.ui.label_chps_name_2.setObjectName("label_chps_name_2")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_name_2, 13, 2, 1, 1)
             
             self.ui.lineEdit_fieldname_12.setText(_translate("PHYMOBAT", "NIVEAU_1", None))
@@ -766,37 +751,37 @@ class PHYMOBAT(QMainWindow, Processing):
             self.ui.checkBox_classifier_2.setChecked(False)
         
             self.ui.label_chps_name_3 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_name_3.setObjectName(_fromUtf8("label_chps_name_3"))
+            self.ui.label_chps_name_3.setObjectName("label_chps_name_3")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_name_3, 16, 2, 1, 1)
             self.ui.label_chps_3 = QLabel(self.ui.tab_3)    
-            self.ui.label_chps_3.setObjectName(_fromUtf8("label_chps_3"))
+            self.ui.label_chps_3.setObjectName("label_chps_3")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_3, 16, 0, 2, 2)
             self.ui.label_chps_type_3 = QLabel(self.ui.tab_3)
-            self.ui.label_chps_type_3.setObjectName(_fromUtf8("label_chps_type_3"))
+            self.ui.label_chps_type_3.setObjectName("label_chps_type_3")
             self.ui.gridLayout_2.addWidget(self.ui.label_chps_type_3, 17, 2, 1, 1)
             self.ui.lineEdit_fieldname_13 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_13.setObjectName(_fromUtf8("lineEdit_fieldname_13"))
+            self.ui.lineEdit_fieldname_13.setObjectName("lineEdit_fieldname_13")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_13, 16, 3, 1, 1)
             self.ui.lineEdit_fieldname_23 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_23.setObjectName(_fromUtf8("lineEdit_fieldname_23"))
+            self.ui.lineEdit_fieldname_23.setObjectName("lineEdit_fieldname_23")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_23, 16, 4, 1, 1)
             self.ui.lineEdit_fieldname_3 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_3.setObjectName(_fromUtf8("lineEdit_fieldname_3"))
+            self.ui.lineEdit_fieldname_3.setObjectName("lineEdit_fieldname_3")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_3, 16, 5, 1, 1)
             self.ui.lineEdit_fieldname_4 = QLineEdit(self.ui.tab_3)
-            self.ui.lineEdit_fieldname_4.setObjectName(_fromUtf8("lineEdit_fieldname_4"))
+            self.ui.lineEdit_fieldname_4.setObjectName("lineEdit_fieldname_4")
             self.ui.gridLayout_2.addWidget(self.ui.lineEdit_fieldname_4, 16, 6, 1, 1)
             self.ui.comboBox_fieldname_13 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_13.setObjectName(_fromUtf8("comboBox_fieldname_13"))
+            self.ui.comboBox_fieldname_13.setObjectName("comboBox_fieldname_13")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_13, 17, 3, 1, 1)
             self.ui.comboBox_fieldname_23 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_23.setObjectName(_fromUtf8("comboBox_fieldname_23"))
+            self.ui.comboBox_fieldname_23.setObjectName("comboBox_fieldname_23")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_23, 17, 4, 1, 1)
             self.ui.comboBox_fieldname_3 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_3.setObjectName(_fromUtf8("comboBox_fieldname_3"))
+            self.ui.comboBox_fieldname_3.setObjectName("comboBox_fieldname_3")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_3, 17, 5, 1, 1)
             self.ui.comboBox_fieldname_4 = QComboBox(self.ui.tab_3)
-            self.ui.comboBox_fieldname_4.setObjectName(_fromUtf8("comboBox_fieldname_4"))
+            self.ui.comboBox_fieldname_4.setObjectName("comboBox_fieldname_4")
             self.ui.gridLayout_2.addWidget(self.ui.comboBox_fieldname_4, 17, 6, 1, 1)
             
             self.ui.lineEdit_fieldname_13.setText(_translate("PHYMOBAT", "NIVEAU_1", None))
@@ -1015,18 +1000,19 @@ class PHYMOBAT(QMainWindow, Processing):
         
         # End of the processus
         endTime = time.time() # Tps : Terminé
-        print '...........' + ' Outputted to File in ' + str(endTime - startTime) + ' secondes'
+        print ('...........' + ' Outputted to File in ' + str(endTime - startTime) + ' secondes')
         nb_day_processing = int(time.strftime('%d', time.gmtime(endTime - startTime))) - 1
-        print "That is, " + str(nb_day_processing) + ' day(s) ' + time.strftime('%Hh %Mmin%S', time.gmtime(endTime - startTime))
+        print ("That is, " + str(nb_day_processing) + ' day(s) ' + time.strftime('%Hh %Mmin%S', time.gmtime(endTime - startTime)))
         
     def open_backup(self):
         """
         Function to load input text in every fields. The input file must be a XML file.
         """
         
-        in_backup = QFileDialog.getOpenFileName(self, "Open backup", os.getcwd(), '*.xml')
+        in_backup = QtWidgets.QFileDialog.getOpenFileName(self, "Open backup", os.getcwd(), '*.xml')
         
-        if in_backup != None and len(in_backup) > 0:
+        if in_backup != None and len(in_backup) > 0 :
+
             # Parse the xml file if the user choose a file
             tree = ET.parse(str(in_backup))
             
@@ -1215,7 +1201,10 @@ class PHYMOBAT(QMainWindow, Processing):
         Function to save input text in every fields. The output file must be a XML file.
         """
         
-        out_backup = QFileDialog.getSaveFileName(self, "Save backup", os.getcwd(), '*.xml')
+        out_backup = QtWidgets.QFileDialog.getSaveFileName(self, "Save backup", os.getcwd(), '*.xml')
+        
+        print(out_backup)
+
         # if the user has forgotten to put .shp at the end of the output xml
         if out_backup[-4:] != '.xml':
             out_backup = out_backup + '.xml'
@@ -1412,7 +1401,6 @@ class PHYMOBAT(QMainWindow, Processing):
         """
         Function to open html help
         """
-
         webbrowser.open('file://' + os.getcwd() + '/Documentation/methode_tuto.html#tutoriels-interface')
     
     def mode_simpli(self):
@@ -1420,7 +1408,7 @@ class PHYMOBAT(QMainWindow, Processing):
         Function to open a new window in simple mode "PHYMOBATs"
         """
         if self.simpli is None:
-            print "Simplify mode"
+            print ("Simplify mode")
             self.close()
             self.simpli = PHYMOBAT(mode = 0)
             
@@ -1431,7 +1419,7 @@ class PHYMOBAT(QMainWindow, Processing):
         Function to open a new window in expert mode "PHYMOBATe"
         """
         if self.expert is None:
-            print "Expert mode"
+            print ("Expert mode")
             self.close()
             self.expert = PHYMOBAT(mode = 1)
             
@@ -1459,17 +1447,17 @@ class PHYMOBAT(QMainWindow, Processing):
         """
         self.close()
 
-class MyPopup_about(QWidget):
+class MyPopup_about(QtWidgets.QWidget):
     """
     Popup to display "About PHYMOBAT". In this windows, it prints informations on the processing, license
     and version.
     """
     def __init__(self, parent=None):
-        QWidget.__init__(self, parent)
+        QtWidgets.QWidget.__init__(self, parent)
         self.prop = Ui_About()
         self.prop.setupUi(self)
         
-        self.connect(self.prop.close_newWindow, SIGNAL('clicked()'), self.close_window)
+        self.prop.close_newWindow.clicked.connect(self.close_window)
     
     def close_window(self):
         """
@@ -1477,16 +1465,16 @@ class MyPopup_about(QWidget):
         """
         self.close()
         
-class MyPopup_warming_study_area(QWidget):
+class MyPopup_warming_study_area(QtWidgets.QWidget):
     """
     Popup to display a message to say there isn't declared study area file.
     """
     def __init__(self, parent=None):
-        QWidget.__init__(self, parent)
+        QtWidgets.QWidget.__init__(self, parent)
         self.w_study_a = Ui_Warming_study_area()
         self.w_study_a.setupUi(self)
         
-        self.connect(self.w_study_a.pushButton_ok_window_warning_study_area, SIGNAL('clicked()'), self.close_window)
+        self.w_study_a.pushButton_ok_window_warning_study_area.clicked.connect(self.close_window)
     
     def close_window(self):
         """
@@ -1494,16 +1482,16 @@ class MyPopup_warming_study_area(QWidget):
         """
         self.close() 
         
-class MyPopup_warming_forgetting(QWidget):
+class MyPopup_warming_forgetting(QtWidgets.QWidget):
     """
     Popup to display a message to tell you if you fogotten to enter a raster or a sample.
     """
     def __init__(self, parent=None):
-        QWidget.__init__(self, parent)
+        QtWidgets.QWidget.__init__(self, parent)
         self.w_forget = Ui_Warming_forgetting()
         self.w_forget.setupUi(self)
         
-        self.connect(self.w_forget.pushButton_ok_forget, SIGNAL('clicked()'), self.close_window)
+        self.w_forget.pushButton_ok_forget.clicked.connect(self.close_window)
     
     def close_window(self):
         """
@@ -1511,12 +1499,12 @@ class MyPopup_warming_forgetting(QWidget):
         """
         self.close() 
         
-class MyPopup_proxy_window(QWidget):
+class MyPopup_proxy_window(QtWidgets.QWidget):
     """
     Popup to display a message to tell you if you fogotten to enter a raster or a sample.
     """
     def __init__(self, parent=None):
-        QWidget.__init__(self, parent)
+        QtWidgets.QWidget.__init__(self, parent)
         self.w_proxy = Ui_Proxy_window()
         self.w_proxy.setupUi(self)
         
@@ -1526,8 +1514,8 @@ class MyPopup_proxy_window(QWidget):
         self.password_proxy = ""
         
         # Connect Apply|Close button
-        self.w_proxy.buttonBox_proxy.button(QDialogButtonBox.Close).clicked.connect(self.close_window)
-        self.w_proxy.buttonBox_proxy.button(QDialogButtonBox.Apply).clicked.connect(self.id_proxy)
+        self.w_proxy.buttonBox_proxy.button(QtWidgets.QDialogButtonBox.Close).clicked.connect(self.close_window)
+        self.w_proxy.buttonBox_proxy.button(QtWidgets.QDialogButtonBox.Apply).clicked.connect(self.id_proxy)
     
     def id_proxy(self):
         """
@@ -1545,7 +1533,7 @@ class MyPopup_proxy_window(QWidget):
         
 if __name__ == "__main__":
     
-    app = QApplication(sys.argv)
+    app = QtWidgets.QApplication(sys.argv)
     myapp = PHYMOBAT()
     myapp.show()
         
diff --git a/Precision_moba.py b/Precision_moba.py
index 65b9644..244ab4e 100644
--- a/Precision_moba.py
+++ b/Precision_moba.py
@@ -156,10 +156,10 @@ class Precision_moba():
         print('')
         print('Accuracy : %f, Kappa : %f, Recall : %f, Precision : %f, F_score : %f' % (accur, kappa, recall, pr, f_scor))
         print('')
-        print all_pr
+        print (all_pr)
         print('')
         print('Confusion matrix :')
-        print cm
+        print (cm)
         
         f.close()
         
diff --git a/Processing.py b/Processing.py
index 640e7dd..5ffbbbf 100644
--- a/Processing.py
+++ b/Processing.py
@@ -490,7 +490,7 @@ class Processing():
                 i_s = i_s + 1
         # Method to stop the processus if there is not found a valid threshold
         if i_s != 20:
-            print 'Problem in the sample processing !!!'
+            print ('Problem in the sample processing !!!')
             sys.exit(1)
     
     def i_sample_rf(self):
diff --git a/RasterSat_by_date.py b/RasterSat_by_date.py
index a271068..ef9489f 100644
--- a/RasterSat_by_date.py
+++ b/RasterSat_by_date.py
@@ -53,7 +53,7 @@ class RasterSat_by_date():
         self._one_date = one_date        
         # Verify list of list of str
         if one_date == []:
-            print "Enter dates to mosaic images like [[str(year), str(month), str(day)], [str(year), str(month), str(day)], ...]"
+            print ("Enter dates to mosaic images like [[str(year), str(month), str(day)], [str(year), str(month), str(day)], ...]")
             sys.exit(1)
         else:
             self._one_date = one_date
@@ -101,10 +101,10 @@ class RasterSat_by_date():
         if vrt_translate == 'vrt':
             # Verify input data
             if type(src_data) is not np.ndarray and type(src_data) is not list:
-                print 'VRT file ! The data source should be composed of several data. A list minimal of 2 dimensions'
+                print ('VRT file ! The data source should be composed of several data. A list minimal of 2 dimensions')
                 sys.exit(1)
                 
-            print 'Build VRT file'
+            print ('Build VRT file')
             if not os.path.exists(dst_data):
                 process_tocall = ['gdalbuildvrt', '-srcnodata', '-10000', dst_data]
                 
@@ -117,10 +117,10 @@ class RasterSat_by_date():
             try :
                 src_data = str(src_data)
             except:# if type(src_data) is not str:
-                print 'Geotiff file ! The data source should be composed of path file. A character string !'
+                print ('Geotiff file ! The data source should be composed of path file. A character string !')
                 sys.exit(1)
                 
-            print 'Build Geotiff file'
+            print ('Build Geotiff file')
             if not os.path.exists(dst_data):
                 process_tocall = ['gdal_translate', '-a_nodata', '-10000', src_data, dst_data]
             
@@ -192,7 +192,7 @@ class RasterSat_by_date():
         gdal.AllRegister()
         
         # Loading input raster
-        print 'Loading input raster :', os.path.split(str(img))[1][:-4]
+        print ('Loading input raster :', os.path.split(str(img))[1][:-4])
         in_ds = gdal.Open(str(img), gdal.GA_ReadOnly)
         
         # if it doesn't exist
@@ -254,7 +254,7 @@ class RasterSat_by_date():
         mask_spec = np.in1d(data_spec[0], [-10000, math.isnan], invert=True) # ex : array([ True,  True,  True,  True, False,  True,  True,  True,  True], dtype=bool) -> False where there is -10000 ou NaN
         
         # Print area account of the pixel size 'info_spec.GetGeoTransform()'
-        print 'Area = ' + str(float((np.sum(mask_spec)  * info_spec.GetGeoTransform()[1] * abs(info_spec.GetGeoTransform()[-1]) )/10000)) + 'ha' 
+        print ('Area = ' + str(float((np.sum(mask_spec)  * info_spec.GetGeoTransform()[1] * abs(info_spec.GetGeoTransform()[-1]) )/10000)) + 'ha' )
         
         # Cloud mask
         mask_cloud = np.in1d(data_cloud, 0) # This is the same opposite False where there is 0
@@ -336,7 +336,7 @@ class RasterSat_by_date():
             # Create outfile
             self.out_ds = driver.Create(str(out_raster), in_ds.RasterXSize, in_ds.RasterYSize, nbband, gdal.GDT_Float32)
             if self.out_ds is None:
-                print 'Could not create ' + os.path.split(str(out_raster))[1]
+                print ('Could not create ' + os.path.split(str(out_raster))[1])
                 sys.exit(1)
                 
             # Get extent coordinates and raster resolution
@@ -363,7 +363,7 @@ class RasterSat_by_date():
             
         return nbband, e
     
-    def complete_raster(self, (nbband, e), data): 
+    def complete_raster(self, nbband, e, data): 
         """
         This function complete the function above :func:`create_raster()`. It 
         fills the raster table and close the layer.
@@ -386,7 +386,7 @@ class RasterSat_by_date():
                 #Incrementation
                 p = p + 1
             
-                print "Copy on the band ", p
+                print ("Copy on the band ", p)
       
                 # Loading spectral band of outfile
                 out_band = self.out_ds.GetRasterBand(p) 
diff --git a/Seath.py b/Seath.py
index 9cbe0e1..1894da8 100644
--- a/Seath.py
+++ b/Seath.py
@@ -100,8 +100,8 @@ class Seath():
             v[mark].append(np.var(C[mark]))
             p[mark].append(1 / float(len(C[mark])))
         
-        print "m : ", m
-        print "v : ", v
+        print ("m : ", m)
+        print ("v : ", v)
         
         # Mean, standard deviation and likelihood initialisation phase for 2 classes 
         m1 = m[0]
@@ -126,12 +126,12 @@ class Seath():
             # Optimal threshold
             # Logical condition depending on article figure 2
             if ( seuil1[i] > m2[i] and seuil1[i] < m1[i] ) or ( seuil1[i] > m1[i] and seuil1[i] < m2[i] ) :
-                print "Valid  threshold !"
+                print ("Valid  threshold !")
             else:
                 seuil1[i] = ""
             
             if ( seuil2[i] > m2[i] and seuil2[i] < m1[i] ) or ( seuil2[i] > m1[i] and seuil2[i] < m2[i] ) :
-                print "Valid  threshold !"
+                print ("Valid  threshold !")
             else:
                 seuil2[i] = ""
         
diff --git a/Toolbox.py b/Toolbox.py
index 703722d..7f675bb 100644
--- a/Toolbox.py
+++ b/Toolbox.py
@@ -53,7 +53,7 @@ class Toolbox():
         rm_rast = kwargs['rm_rast'] if kwargs.get('rm_rast') else 0
         outclip = os.path.split(str(self.imag))[0] + '/Clip_' + os.path.split(str(self.imag))[1]
         if not os.path.exists(outclip) or rm_rast == 1:
-            print 'Raster clip of ' + os.path.split(str(self.imag))[1]
+            print ('Raster clip of ' + os.path.split(str(self.imag))[1])
             # Command to clip a raster with a shapefile by Gdal
             process_tocall_clip = ['gdalwarp', '-overwrite', '-dstnodata', '-10000', '-q', '-cutline', self.vect, '-crop_to_cutline', '-of', 'GTiff', self.imag, outclip]
             # This is a trick to remove warning with the polygons that touch themselves
@@ -68,7 +68,7 @@ class Toolbox():
                 preprocess_tocall = 'ogr2ogr -overwrite ' + vect_2 + ' ' + self.vect + ' -dialect sqlite -sql "SELECT ST_Union(geometry), * FROM ' + \
                                         os.path.basename(self.vect)[:-4] +'"'
                 os.system(preprocess_tocall)
-                print 'Raster clip of ' + os.path.split(str(self.imag))[1]
+                print ('Raster clip of ' + os.path.split(str(self.imag))[1])
                 process_tocall_clip = ['gdalwarp', '-overwrite', '-dstnodata', '-10000', '-q', '-cutline', vect_2, '-crop_to_cutline', '-of', 'GTiff', self.imag, outclip]
                 subprocess.call(process_tocall_clip)
                 for rem in glob.glob(vect_2[:-4] + '*'):
diff --git a/Vector.py b/Vector.py
index 745e92c..737ea71 100644
--- a/Vector.py
+++ b/Vector.py
@@ -24,6 +24,7 @@ try :
     import ogr, gdal
 except :
     from osgeo import ogr, gdal
+    
 from rasterstats import *
 from collections import *
 
@@ -80,7 +81,7 @@ class Vector():
         
         outclip = os.path.split(self.vector_used)[0] + '/Clip_' + os.path.split(self.vector_used)[1]
         if not os.path.exists(outclip) or self.remove_shp == 1:
-            print 'Clip of ' + os.path.split(self.vector_used)[1]
+            print ('Clip of ' + os.path.split(self.vector_used)[1])
             # Command to clip a vector with a shapefile by OGR
             process_tocall_clip =  ['ogr2ogr', '-overwrite', '-skipfailures', outclip, self.vector_used, '-clipsrc', self.vector_cut]
             subprocess.call(process_tocall_clip)
@@ -114,7 +115,7 @@ class Vector():
         
         print('Shapefile closing : ' + self.data_source.GetLayer().GetName())
     
-    def zonal_stats(self, (inraster, band), **kwargs):
+    def zonal_stats(self, inraster, band, **kwargs):
         """
         Function to compute the average in every polygons for a raster
         because of package ``rasterstats`` in */usr/local/lib/python2.7/dist-packages/rasterstats-0.3.2-py2.7.egg/rasterstats/*
diff --git a/Vhrs.py b/Vhrs.py
index 9266bbd..b03c857 100644
--- a/Vhrs.py
+++ b/Vhrs.py
@@ -38,8 +38,8 @@ class Vhrs():
     """
     
     def __init__(self, imag, mp):
-        """Create a new 'Texture' instance
-        
+        """
+        	Create a new 'Texture' instance
         """
         
         self._imag = imag
diff --git a/ui_A_propos_PHYMOBAT_window.py b/ui_A_propos_PHYMOBAT_window.py
index 6f4ba82..22c4d5d 100644
--- a/ui_A_propos_PHYMOBAT_window.py
+++ b/ui_A_propos_PHYMOBAT_window.py
@@ -23,21 +23,15 @@
 # You should have received a copy of the GNU General Public License
 # along with PHYMOBAT 1.2.  If not, see <http://www.gnu.org/licenses/>.
 
-from PyQt5 import QtCore, QtGui
-
-# try:
-#     _fromUtf8 = QtCore.QString.fromUtf8
-# except AttributeError:
-def _fromUtf8(s):
-    return s
+from PyQt5 import QtCore, QtGui, QtWidgets
 
 try:
-    _encoding = QtGui.QApplication.UnicodeUTF8
+    _encoding = QtWidgets.QApplication.UnicodeUTF8
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+        return QtWidgets.QApplication.translate(context, text, disambig, _encoding)
 except AttributeError:
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig)
+        return QtWidgets.QApplication.translate(context, text, disambig)
 
 class Ui_About(object):
     """
@@ -46,19 +40,19 @@ class Ui_About(object):
     """
     
     def setupUi(self, Form):
-        Form.setObjectName(_fromUtf8("A propos de PHYMOBAT"))
+        Form.setObjectName("A propos de PHYMOBAT")
         Form.resize(507, 578)
-        self.gridLayout = QtGui.QGridLayout(Form)
-        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
-        self.label = QtGui.QLabel(Form)
-        self.label.setObjectName(_fromUtf8("label"))
+        self.gridLayout = QtWidgets.QGridLayout(Form)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(Form)
+        self.label.setObjectName("label")
         self.gridLayout.addWidget(self.label, 0, 0, 1, 3)
-        spacerItem = QtGui.QSpacerItem(193, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem = QtWidgets.QSpacerItem(193, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
-        self.close_newWindow = QtGui.QPushButton(Form)
-        self.close_newWindow.setObjectName(_fromUtf8("close_newWindow"))
+        self.close_newWindow = QtWidgets.QPushButton(Form)
+        self.close_newWindow.setObjectName("close_newWindow")
         self.gridLayout.addWidget(self.close_newWindow, 1, 1, 1, 1)
-        spacerItem1 = QtGui.QSpacerItem(193, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem1 = QtWidgets.QSpacerItem(193, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem1, 1, 2, 1, 1)
 
         self.retranslateUi(Form)
diff --git a/ui_PHYMOBATe_tab.py b/ui_PHYMOBATe_tab.py
index d85c1c5..e7bd230 100644
--- a/ui_PHYMOBATe_tab.py
+++ b/ui_PHYMOBATe_tab.py
@@ -7,21 +7,18 @@
 #
 # WARNING! All changes made in this file will be lost!
 
-from PyQt4 import QtCore, QtGui
+from PyQt5 import QtCore, QtGui, QtWidgets
 
-try:
-    _fromUtf8 = QtCore.QString.fromUtf8
-except AttributeError:
-    def _fromUtf8(s):
-        return s
+def _fromUtf8(s):
+    return s
 
 try:
-    _encoding = QtGui.QApplication.UnicodeUTF8
+    _encoding = QtWidgets.QApplication.UnicodeUTF8
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+        return QtWidgets.QApplication.translate(context, text, disambig, _encoding)
 except AttributeError:
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig)
+        return QtWidgets.QApplication.translate(context, text, disambig)
 
 class Ui_PHYMOBAT(object):
     
@@ -32,212 +29,212 @@ class Ui_PHYMOBAT(object):
     def setupUi(self, PHYMOBAT):
         PHYMOBAT.setObjectName(_fromUtf8("PHYMOBAT"))
         PHYMOBAT.resize(626, 658)
-        self.centralwidget = QtGui.QWidget(PHYMOBAT)
+        self.centralwidget = QtWidgets.QWidget(PHYMOBAT)
         self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
-        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
+        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
         self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
-        self.checkBox_multiprocess = QtGui.QCheckBox(self.centralwidget)
+        self.checkBox_multiprocess = QtWidgets.QCheckBox(self.centralwidget)
         self.checkBox_multiprocess.setCheckable(True)
         self.checkBox_multiprocess.setChecked(True)
         self.checkBox_multiprocess.setAutoRepeat(False)
         self.checkBox_multiprocess.setObjectName(_fromUtf8("checkBox_multiprocess"))
         self.gridLayout.addWidget(self.checkBox_multiprocess, 1, 0, 1, 1)
-        self.buttonBox = QtGui.QDialogButtonBox(self.centralwidget)
+        self.buttonBox = QtWidgets.QDialogButtonBox(self.centralwidget)
         self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
-        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Close|QtGui.QDialogButtonBox.Ok)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close|QtWidgets.QDialogButtonBox.Ok)
         self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
         self.gridLayout.addWidget(self.buttonBox, 1, 1, 1, 1)
-        self.tabWidget = QtGui.QTabWidget(self.centralwidget)
+        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
         self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
-        self.tab = QtGui.QWidget()
+        self.tab = QtWidgets.QWidget()
         self.tab.setObjectName(_fromUtf8("tab"))
-        self.gridLayout_3 = QtGui.QGridLayout(self.tab)
+        self.gridLayout_3 = QtWidgets.QGridLayout(self.tab)
         self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
-        self.label_principal_folder = QtGui.QLabel(self.tab)
+        self.label_principal_folder = QtWidgets.QLabel(self.tab)
         self.label_principal_folder.setObjectName(_fromUtf8("label_principal_folder"))
         self.gridLayout_3.addWidget(self.label_principal_folder, 0, 0, 1, 2)
-        self.label_area_path = QtGui.QLabel(self.tab)
+        self.label_area_path = QtWidgets.QLabel(self.tab)
         self.label_area_path.setObjectName(_fromUtf8("label_area_path"))
         self.gridLayout_3.addWidget(self.label_area_path, 4, 0, 1, 2)
-        self.checkBox_download = QtGui.QCheckBox(self.tab)
+        self.checkBox_download = QtWidgets.QCheckBox(self.tab)
         self.checkBox_download.setObjectName(_fromUtf8("checkBox_download"))
         self.gridLayout_3.addWidget(self.checkBox_download, 7, 0, 1, 2)
-        self.label_id_theia = QtGui.QLabel(self.tab)
+        self.label_id_theia = QtWidgets.QLabel(self.tab)
         self.label_id_theia.setObjectName(_fromUtf8("label_id_theia"))
         self.gridLayout_3.addWidget(self.label_id_theia, 8, 0, 1, 2)
-        self.label_password = QtGui.QLabel(self.tab)
+        self.label_password = QtWidgets.QLabel(self.tab)
         self.label_password.setObjectName(_fromUtf8("label_password"))
         self.gridLayout_3.addWidget(self.label_password, 9, 3, 1, 1)
-        self.lineEdit_user = QtGui.QLineEdit(self.tab)
+        self.lineEdit_user = QtWidgets.QLineEdit(self.tab)
         self.lineEdit_user.setObjectName(_fromUtf8("lineEdit_user"))
         self.gridLayout_3.addWidget(self.lineEdit_user, 9, 1, 1, 1)
-        self.label_user = QtGui.QLabel(self.tab)
+        self.label_user = QtWidgets.QLabel(self.tab)
         self.label_user.setObjectName(_fromUtf8("label_user"))
         self.gridLayout_3.addWidget(self.label_user, 9, 0, 1, 1)
-        self.checkBox_VHRS = QtGui.QCheckBox(self.tab)
+        self.checkBox_VHRS = QtWidgets.QCheckBox(self.tab)
         self.checkBox_VHRS.setObjectName(_fromUtf8("checkBox_VHRS"))
         self.gridLayout_3.addWidget(self.checkBox_VHRS, 13, 0, 1, 2)
-        self.checkBox_listing = QtGui.QCheckBox(self.tab)
+        self.checkBox_listing = QtWidgets.QCheckBox(self.tab)
         self.checkBox_listing.setObjectName(_fromUtf8("checkBox_listing"))
         self.gridLayout_3.addWidget(self.checkBox_listing, 6, 0, 1, 2)
-        self.checkBox_MNT = QtGui.QCheckBox(self.tab)
+        self.checkBox_MNT = QtWidgets.QCheckBox(self.tab)
         self.checkBox_MNT.setObjectName(_fromUtf8("checkBox_MNT"))
         self.gridLayout_3.addWidget(self.checkBox_MNT, 11, 0, 1, 1)
-        self.label_listing = QtGui.QLabel(self.tab)
+        self.label_listing = QtWidgets.QLabel(self.tab)
         self.label_listing.setObjectName(_fromUtf8("label_listing"))
         self.gridLayout_3.addWidget(self.label_listing, 6, 3, 1, 1)
-        self.checkBox_processing = QtGui.QCheckBox(self.tab)
+        self.checkBox_processing = QtWidgets.QCheckBox(self.tab)
         self.checkBox_processing.setObjectName(_fromUtf8("checkBox_processing"))
         self.gridLayout_3.addWidget(self.checkBox_processing, 10, 0, 1, 4)
-        self.proxy = QtGui.QPushButton(self.tab)
+        self.proxy = QtWidgets.QPushButton(self.tab)
         self.proxy.setObjectName(_fromUtf8("proxy"))
         self.gridLayout_3.addWidget(self.proxy, 9, 6, 1, 1)
-        self.pushButton_browser_principal_folder = QtGui.QPushButton(self.tab)
+        self.pushButton_browser_principal_folder = QtWidgets.QPushButton(self.tab)
         self.pushButton_browser_principal_folder.setObjectName(_fromUtf8("pushButton_browser_principal_folder"))
         self.gridLayout_3.addWidget(self.pushButton_browser_principal_folder, 1, 6, 1, 1)
-        self.lineEdit_principal_folder = QtGui.QLineEdit(self.tab)
+        self.lineEdit_principal_folder = QtWidgets.QLineEdit(self.tab)
         self.lineEdit_principal_folder.setObjectName(_fromUtf8("lineEdit_principal_folder"))
         self.gridLayout_3.addWidget(self.lineEdit_principal_folder, 1, 0, 1, 6)
-        self.pushButton_browser_area_path = QtGui.QPushButton(self.tab)
+        self.pushButton_browser_area_path = QtWidgets.QPushButton(self.tab)
         self.pushButton_browser_area_path.setObjectName(_fromUtf8("pushButton_browser_area_path"))
         self.gridLayout_3.addWidget(self.pushButton_browser_area_path, 5, 6, 1, 1)
-        self.lineEdit_area_path = QtGui.QLineEdit(self.tab)
+        self.lineEdit_area_path = QtWidgets.QLineEdit(self.tab)
         self.lineEdit_area_path.setObjectName(_fromUtf8("lineEdit_area_path"))
         self.gridLayout_3.addWidget(self.lineEdit_area_path, 5, 0, 1, 6)
-        self.lineEdit_password = QtGui.QLineEdit(self.tab)
-        self.lineEdit_password.setEchoMode(QtGui.QLineEdit.Password)
+        self.lineEdit_password = QtWidgets.QLineEdit(self.tab)
+        self.lineEdit_password.setEchoMode(QtWidgets.QLineEdit.Password)
         self.lineEdit_password.setObjectName(_fromUtf8("lineEdit_password"))
         self.gridLayout_3.addWidget(self.lineEdit_password, 9, 5, 1, 1)
-        self.pushButton_browser_MNT = QtGui.QPushButton(self.tab)
+        self.pushButton_browser_MNT = QtWidgets.QPushButton(self.tab)
         self.pushButton_browser_MNT.setObjectName(_fromUtf8("pushButton_browser_MNT"))
         self.gridLayout_3.addWidget(self.pushButton_browser_MNT, 12, 6, 1, 1)
-        self.pushButton_browser_VHRS = QtGui.QPushButton(self.tab)
+        self.pushButton_browser_VHRS = QtWidgets.QPushButton(self.tab)
         self.pushButton_browser_VHRS.setObjectName(_fromUtf8("pushButton_browser_VHRS"))
         self.gridLayout_3.addWidget(self.pushButton_browser_VHRS, 14, 6, 1, 1)
-        self.lineEdit_MNT = QtGui.QLineEdit(self.tab)
+        self.lineEdit_MNT = QtWidgets.QLineEdit(self.tab)
         self.lineEdit_MNT.setObjectName(_fromUtf8("lineEdit_MNT"))
         self.gridLayout_3.addWidget(self.lineEdit_MNT, 12, 0, 1, 6)
-        self.lineEdit_VHRS = QtGui.QLineEdit(self.tab)
+        self.lineEdit_VHRS = QtWidgets.QLineEdit(self.tab)
         self.lineEdit_VHRS.setObjectName(_fromUtf8("lineEdit_VHRS"))
         self.gridLayout_3.addWidget(self.lineEdit_VHRS, 14, 0, 1, 6)
-        self.label_ex_period = QtGui.QLabel(self.tab)
+        self.label_ex_period = QtWidgets.QLabel(self.tab)
         font = QtGui.QFont()
         font.setPointSize(6)
         font.setItalic(True)
         self.label_ex_period.setFont(font)
         self.label_ex_period.setObjectName(_fromUtf8("label_ex_period"))
         self.gridLayout_3.addWidget(self.label_ex_period, 3, 2, 1, 2)
-        self.lineEdit_year_images = QtGui.QLineEdit(self.tab)
+        self.lineEdit_year_images = QtWidgets.QLineEdit(self.tab)
         self.lineEdit_year_images.setObjectName(_fromUtf8("lineEdit_year_images"))
         self.gridLayout_3.addWidget(self.lineEdit_year_images, 3, 5, 1, 2)
-        self.comboBox_captor = QtGui.QComboBox(self.tab)
+        self.comboBox_captor = QtWidgets.QComboBox(self.tab)
         self.comboBox_captor.setObjectName(_fromUtf8("comboBox_captor"))
         self.comboBox_captor.addItem(_fromUtf8(""))
         self.comboBox_captor.addItem(_fromUtf8(""))
         self.comboBox_captor.addItem(_fromUtf8(""))
         self.gridLayout_3.addWidget(self.comboBox_captor, 2, 5, 1, 2)
-        self.label_year_images = QtGui.QLabel(self.tab)
+        self.label_year_images = QtWidgets.QLabel(self.tab)
         self.label_year_images.setObjectName(_fromUtf8("label_year_images"))
         self.gridLayout_3.addWidget(self.label_year_images, 3, 0, 1, 2)
-        self.label_captor = QtGui.QLabel(self.tab)
+        self.label_captor = QtWidgets.QLabel(self.tab)
         self.label_captor.setObjectName(_fromUtf8("label_captor"))
         self.gridLayout_3.addWidget(self.label_captor, 2, 0, 1, 3)
         self.tabWidget.addTab(self.tab, _fromUtf8(""))
-        self.tab_2 = QtGui.QWidget()
+        self.tab_2 = QtWidgets.QWidget()
         self.tab_2.setObjectName(_fromUtf8("tab_2"))
-        self.gridLayout_4 = QtGui.QGridLayout(self.tab_2)
+        self.gridLayout_4 = QtWidgets.QGridLayout(self.tab_2)
         self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
-        self.pushButton_img_sample = QtGui.QPushButton(self.tab_2)
+        self.pushButton_img_sample = QtWidgets.QPushButton(self.tab_2)
         self.pushButton_img_sample.setObjectName(_fromUtf8("pushButton_img_sample"))
         self.gridLayout_4.addWidget(self.pushButton_img_sample, 8, 4, 1, 1)
-        self.checkBox_RPG = QtGui.QCheckBox(self.tab_2)
+        self.checkBox_RPG = QtWidgets.QCheckBox(self.tab_2)
         self.checkBox_RPG.setObjectName(_fromUtf8("checkBox_RPG"))
         self.gridLayout_4.addWidget(self.checkBox_RPG, 9, 0, 1, 1)
-        spacerItem = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem = QtWidgets.QSpacerItem(49, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_4.addItem(spacerItem, 10, 1, 1, 1)
-        self.pushButton_clear_sample = QtGui.QPushButton(self.tab_2)
+        self.pushButton_clear_sample = QtWidgets.QPushButton(self.tab_2)
         self.pushButton_clear_sample.setObjectName(_fromUtf8("pushButton_clear_sample"))
         self.gridLayout_4.addWidget(self.pushButton_clear_sample, 10, 2, 1, 2)
-        self.checkBox_img_sample = QtGui.QCheckBox(self.tab_2)
+        self.checkBox_img_sample = QtWidgets.QCheckBox(self.tab_2)
         self.checkBox_img_sample.setObjectName(_fromUtf8("checkBox_img_sample"))
         self.gridLayout_4.addWidget(self.checkBox_img_sample, 7, 0, 1, 5)
-        self.lineEdit_select_sample_fieldname_1 = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_select_sample_fieldname_1 = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_select_sample_fieldname_1.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_1"))
         self.gridLayout_4.addWidget(self.lineEdit_select_sample_fieldname_1, 4, 3, 1, 1)
-        self.lineEdit_select_sample_fieldname_2 = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_select_sample_fieldname_2 = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_select_sample_fieldname_2.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_2"))
         self.gridLayout_4.addWidget(self.lineEdit_select_sample_fieldname_2, 4, 4, 1, 1)
-        self.lineEdit_img_sample = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_img_sample = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_img_sample.setObjectName(_fromUtf8("lineEdit_img_sample"))
         self.gridLayout_4.addWidget(self.lineEdit_img_sample, 8, 0, 1, 4)
-        spacerItem1 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem1 = QtWidgets.QSpacerItem(49, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_4.addItem(spacerItem1, 5, 1, 1, 1)
-        self.lineEdit_select_sample_class_2 = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_select_sample_class_2 = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_select_sample_class_2.setObjectName(_fromUtf8("lineEdit_select_sample_class_2"))
         self.gridLayout_4.addWidget(self.lineEdit_select_sample_class_2, 5, 4, 1, 1)
-        self.label_select_sample_fieldname = QtGui.QLabel(self.tab_2)
+        self.label_select_sample_fieldname = QtWidgets.QLabel(self.tab_2)
         self.label_select_sample_fieldname.setObjectName(_fromUtf8("label_select_sample_fieldname"))
         self.gridLayout_4.addWidget(self.label_select_sample_fieldname, 4, 0, 1, 1)
-        self.pushButton_add_sample = QtGui.QPushButton(self.tab_2)
+        self.pushButton_add_sample = QtWidgets.QPushButton(self.tab_2)
         self.pushButton_add_sample.setObjectName(_fromUtf8("pushButton_add_sample"))
         self.gridLayout_4.addWidget(self.pushButton_add_sample, 10, 4, 1, 1)
-        self.plainTextEdit_sample = QtGui.QPlainTextEdit(self.tab_2)
+        self.plainTextEdit_sample = QtWidgets.QPlainTextEdit(self.tab_2)
         self.plainTextEdit_sample.setObjectName(_fromUtf8("plainTextEdit_sample"))
         self.gridLayout_4.addWidget(self.plainTextEdit_sample, 11, 0, 1, 5)
-        self.lineEdit_select_sample_nb_poly = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_select_sample_nb_poly = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_select_sample_nb_poly.setObjectName(_fromUtf8("lineEdit_select_sample_nb_poly"))
         self.gridLayout_4.addWidget(self.lineEdit_select_sample_nb_poly, 6, 4, 1, 1)
-        self.label_sample_path = QtGui.QLabel(self.tab_2)
+        self.label_sample_path = QtWidgets.QLabel(self.tab_2)
         self.label_sample_path.setObjectName(_fromUtf8("label_sample_path"))
         self.gridLayout_4.addWidget(self.label_sample_path, 0, 0, 1, 1)
-        self.label_select_sample_nb_poly = QtGui.QLabel(self.tab_2)
+        self.label_select_sample_nb_poly = QtWidgets.QLabel(self.tab_2)
         self.label_select_sample_nb_poly.setObjectName(_fromUtf8("label_select_sample_nb_poly"))
         self.gridLayout_4.addWidget(self.label_select_sample_nb_poly, 6, 0, 1, 1)
-        spacerItem2 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem2 = QtWidgets.QSpacerItem(49, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_4.addItem(spacerItem2, 4, 1, 1, 1)
-        self.pushButton_browser_sample_path = QtGui.QPushButton(self.tab_2)
+        self.pushButton_browser_sample_path = QtWidgets.QPushButton(self.tab_2)
         self.pushButton_browser_sample_path.setObjectName(_fromUtf8("pushButton_browser_sample_path"))
         self.gridLayout_4.addWidget(self.pushButton_browser_sample_path, 1, 4, 1, 1)
-        self.label_select_sample_class = QtGui.QLabel(self.tab_2)
+        self.label_select_sample_class = QtWidgets.QLabel(self.tab_2)
         self.label_select_sample_class.setObjectName(_fromUtf8("label_select_sample_class"))
         self.gridLayout_4.addWidget(self.label_select_sample_class, 5, 0, 1, 1)
-        spacerItem3 = QtGui.QSpacerItem(106, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem3 = QtWidgets.QSpacerItem(106, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_4.addItem(spacerItem3, 6, 2, 1, 2)
-        self.label_select_sample_class_1 = QtGui.QLabel(self.tab_2)
+        self.label_select_sample_class_1 = QtWidgets.QLabel(self.tab_2)
         self.label_select_sample_class_1.setObjectName(_fromUtf8("label_select_sample_class_1"))
         self.gridLayout_4.addWidget(self.label_select_sample_class_1, 2, 2, 1, 2)
-        self.lineEdit_sample_path = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_sample_path = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_sample_path.setObjectName(_fromUtf8("lineEdit_sample_path"))
         self.gridLayout_4.addWidget(self.lineEdit_sample_path, 1, 0, 1, 4)
-        self.label_select_sample = QtGui.QLabel(self.tab_2)
+        self.label_select_sample = QtWidgets.QLabel(self.tab_2)
         self.label_select_sample.setObjectName(_fromUtf8("label_select_sample"))
         self.gridLayout_4.addWidget(self.label_select_sample, 2, 0, 1, 1)
-        spacerItem4 = QtGui.QSpacerItem(49, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem4 = QtWidgets.QSpacerItem(49, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_4.addItem(spacerItem4, 6, 1, 1, 1)
-        self.label_select_sample_class_2 = QtGui.QLabel(self.tab_2)
+        self.label_select_sample_class_2 = QtWidgets.QLabel(self.tab_2)
         self.label_select_sample_class_2.setObjectName(_fromUtf8("label_select_sample_class_2"))
         self.gridLayout_4.addWidget(self.label_select_sample_class_2, 2, 4, 1, 1)
-        self.checkBox_threshold = QtGui.QCheckBox(self.tab_2)
+        self.checkBox_threshold = QtWidgets.QCheckBox(self.tab_2)
         self.checkBox_threshold.setObjectName(_fromUtf8("checkBox_threshold"))
         self.gridLayout_4.addWidget(self.checkBox_threshold, 12, 0, 1, 3)
-        self.lineEdit_select_sample_class_1 = QtGui.QLineEdit(self.tab_2)
+        self.lineEdit_select_sample_class_1 = QtWidgets.QLineEdit(self.tab_2)
         self.lineEdit_select_sample_class_1.setObjectName(_fromUtf8("lineEdit_select_sample_class_1"))
         self.gridLayout_4.addWidget(self.lineEdit_select_sample_class_1, 5, 3, 1, 1)
         self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
-        self.tab_3 = QtGui.QWidget()
+        self.tab_3 = QtWidgets.QWidget()
         self.tab_3.setObjectName(_fromUtf8("tab_3"))
-        self.gridLayout_2 = QtGui.QGridLayout(self.tab_3)
+        self.gridLayout_2 = QtWidgets.QGridLayout(self.tab_3)
         self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
-        self.label_area_fieldtype = QtGui.QLabel(self.tab_3)
+        self.label_area_fieldtype = QtWidgets.QLabel(self.tab_3)
         self.label_area_fieldtype.setObjectName(_fromUtf8("label_area_fieldtype"))
         self.gridLayout_2.addWidget(self.label_area_fieldtype, 8, 3, 1, 1)
-        self.label_area_fieldname = QtGui.QLabel(self.tab_3)
+        self.label_area_fieldname = QtWidgets.QLabel(self.tab_3)
         self.label_area_fieldname.setObjectName(_fromUtf8("label_area_fieldname"))
         self.gridLayout_2.addWidget(self.label_area_fieldname, 7, 3, 1, 1)
-#         self.label_chps_type_2 = QtGui.QLabel(self.tab_3)
+#         self.label_chps_type_2 = QtWidgets.QLabel(self.tab_3)
 #         self.label_chps_type_2.setObjectName(_fromUtf8("label_chps_type_2"))
 #         self.gridLayout_2.addWidget(self.label_chps_type_2, 14, 2, 1, 1)
-        self.checkBox_classifier_2 = QtGui.QCheckBox(self.tab_3)
+        self.checkBox_classifier_2 = QtWidgets.QCheckBox(self.tab_3)
         self.checkBox_classifier_2.setObjectName(_fromUtf8("checkBox_classifier_2"))
         self.gridLayout_2.addWidget(self.checkBox_classifier_2, 12, 0, 1, 5)
 #         self.label_chps_type_3 = QtGui.QLabel(self.tab_3)
@@ -246,7 +243,7 @@ class Ui_PHYMOBAT(object):
 #         self.lineEdit_fieldname_23 = QtGui.QLineEdit(self.tab_3)
 #         self.lineEdit_fieldname_23.setObjectName(_fromUtf8("lineEdit_fieldname_23"))
 #         self.gridLayout_2.addWidget(self.lineEdit_fieldname_23, 16, 4, 1, 1)
-        self.label_ouput = QtGui.QLabel(self.tab_3)
+        self.label_ouput = QtWidgets.QLabel(self.tab_3)
         self.label_ouput.setObjectName(_fromUtf8("label_ouput"))
         self.gridLayout_2.addWidget(self.label_ouput, 4, 0, 1, 3)
 #         self.lineEdit_fieldname_13 = QtGui.QLineEdit(self.tab_3)
@@ -255,25 +252,25 @@ class Ui_PHYMOBAT(object):
 #         self.comboBox_fieldname_12 = QtGui.QComboBox(self.tab_3)
 #         self.comboBox_fieldname_12.setObjectName(_fromUtf8("comboBox_fieldname_12"))
 #         self.gridLayout_2.addWidget(self.comboBox_fieldname_12, 14, 3, 1, 1)
-        self.label_chps_name_0 = QtGui.QLabel(self.tab_3)
+        self.label_chps_name_0 = QtWidgets.QLabel(self.tab_3)
         self.label_chps_name_0.setObjectName(_fromUtf8("label_chps_name_0"))
         self.gridLayout_2.addWidget(self.label_chps_name_0, 7, 0, 1, 1)
-        self.label_segmentation = QtGui.QLabel(self.tab_3)
+        self.label_segmentation = QtWidgets.QLabel(self.tab_3)
         self.label_segmentation.setObjectName(_fromUtf8("label_segmentation"))
         self.gridLayout_2.addWidget(self.label_segmentation, 0, 0, 1, 2)
 #         self.comboBox_fieldname_3 = QtGui.QComboBox(self.tab_3)
 #         self.comboBox_fieldname_3.setObjectName(_fromUtf8("comboBox_fieldname_3"))
 #         self.gridLayout_2.addWidget(self.comboBox_fieldname_3, 17, 5, 1, 1)
-        self.lineEdit_output = QtGui.QLineEdit(self.tab_3)
+        self.lineEdit_output = QtWidgets.QLineEdit(self.tab_3)
         self.lineEdit_output.setObjectName(_fromUtf8("lineEdit_output"))
         self.gridLayout_2.addWidget(self.lineEdit_output, 5, 0, 1, 6)
 #         self.lineEdit_fieldname_3 = QtGui.QLineEdit(self.tab_3)
 #         self.lineEdit_fieldname_3.setObjectName(_fromUtf8("lineEdit_fieldname_3"))
 #         self.gridLayout_2.addWidget(self.lineEdit_fieldname_3, 16, 5, 1, 1)
-        self.label_id_fieldtype = QtGui.QLabel(self.tab_3)
+        self.label_id_fieldtype = QtWidgets.QLabel(self.tab_3)
         self.label_id_fieldtype.setObjectName(_fromUtf8("label_id_fieldtype"))
         self.gridLayout_2.addWidget(self.label_id_fieldtype, 8, 1, 1, 1)
-        self.checkBox_classifier_3 = QtGui.QCheckBox(self.tab_3)
+        self.checkBox_classifier_3 = QtWidgets.QCheckBox(self.tab_3)
         self.checkBox_classifier_3.setObjectName(_fromUtf8("checkBox_classifier_3"))
         self.gridLayout_2.addWidget(self.checkBox_classifier_3, 15, 0, 1, 5)
 #         self.label_chps_name_2 = QtGui.QLabel(self.tab_3)
@@ -285,22 +282,22 @@ class Ui_PHYMOBAT(object):
 #         self.lineEdit_fieldname_12 = QtGui.QLineEdit(self.tab_3)
 #         self.lineEdit_fieldname_12.setObjectName(_fromUtf8("lineEdit_fieldname_12"))
 #         self.gridLayout_2.addWidget(self.lineEdit_fieldname_12, 13, 3, 1, 1)
-        self.radioButton_s = QtGui.QRadioButton(self.tab_3)
+        self.radioButton_s = QtWidgets.QRadioButton(self.tab_3)
         self.radioButton_s.setObjectName(_fromUtf8("radioButton_s"))
         self.gridLayout_2.addWidget(self.radioButton_s, 3, 3, 1, 3)
-        self.pushButton_browser_output = QtGui.QPushButton(self.tab_3)
+        self.pushButton_browser_output = QtWidgets.QPushButton(self.tab_3)
         self.pushButton_browser_output.setObjectName(_fromUtf8("pushButton_browser_output"))
         self.gridLayout_2.addWidget(self.pushButton_browser_output, 5, 6, 1, 1)
-        self.lineEdit_segmentation = QtGui.QLineEdit(self.tab_3)
+        self.lineEdit_segmentation = QtWidgets.QLineEdit(self.tab_3)
         self.lineEdit_segmentation.setObjectName(_fromUtf8("lineEdit_segmentation"))
         self.gridLayout_2.addWidget(self.lineEdit_segmentation, 1, 0, 1, 6)
 #         self.label_chps_name_1 = QtGui.QLabel(self.tab_3)
 #         self.label_chps_name_1.setObjectName(_fromUtf8("label_chps_name_1"))
 #         self.gridLayout_2.addWidget(self.label_chps_name_1, 10, 2, 1, 1)
-        self.label_classification_method = QtGui.QLabel(self.tab_3)
+        self.label_classification_method = QtWidgets.QLabel(self.tab_3)
         self.label_classification_method.setObjectName(_fromUtf8("label_classification_method"))
         self.gridLayout_2.addWidget(self.label_classification_method, 2, 0, 1, 3)
-        self.radioButton_rf = QtGui.QRadioButton(self.tab_3)
+        self.radioButton_rf = QtWidgets.QRadioButton(self.tab_3)
         self.radioButton_rf.setEnabled(True)
         self.radioButton_rf.setMouseTracking(True)
         self.radioButton_rf.setChecked(True)
@@ -312,10 +309,10 @@ class Ui_PHYMOBAT(object):
 #         self.lineEdit_fieldname_1 = QtGui.QLineEdit(self.tab_3)
 #         self.lineEdit_fieldname_1.setObjectName(_fromUtf8("lineEdit_fieldname_1"))
 #         self.gridLayout_2.addWidget(self.lineEdit_fieldname_1, 10, 3, 1, 1)
-        self.pushButton_browser_segmentation = QtGui.QPushButton(self.tab_3)
+        self.pushButton_browser_segmentation = QtWidgets.QPushButton(self.tab_3)
         self.pushButton_browser_segmentation.setObjectName(_fromUtf8("pushButton_browser_segmentation"))
         self.gridLayout_2.addWidget(self.pushButton_browser_segmentation, 1, 6, 1, 1)
-        self.label_chps_type_0 = QtGui.QLabel(self.tab_3)
+        self.label_chps_type_0 = QtWidgets.QLabel(self.tab_3)
         self.label_chps_type_0.setObjectName(_fromUtf8("label_chps_type_0"))
         self.gridLayout_2.addWidget(self.label_chps_type_0, 8, 0, 1, 1)
 #         self.label_chps_2 = QtGui.QLabel(self.tab_3)
@@ -327,13 +324,13 @@ class Ui_PHYMOBAT(object):
 #         self.comboBox_fieldname_13 = QtGui.QComboBox(self.tab_3)
 #         self.comboBox_fieldname_13.setObjectName(_fromUtf8("comboBox_fieldname_13"))
 #         self.gridLayout_2.addWidget(self.comboBox_fieldname_13, 17, 3, 1, 1)
-        self.label_ouput_fieldname = QtGui.QLabel(self.tab_3)
+        self.label_ouput_fieldname = QtWidgets.QLabel(self.tab_3)
         self.label_ouput_fieldname.setObjectName(_fromUtf8("label_ouput_fieldname"))
         self.gridLayout_2.addWidget(self.label_ouput_fieldname, 6, 0, 1, 4)
 #         self.comboBox_fieldname_4 = QtGui.QComboBox(self.tab_3)
 #         self.comboBox_fieldname_4.setObjectName(_fromUtf8("comboBox_fieldname_4"))
 #         self.gridLayout_2.addWidget(self.comboBox_fieldname_4, 17, 6, 1, 1)
-        self.label_id_fieldname = QtGui.QLabel(self.tab_3)
+        self.label_id_fieldname = QtWidgets.QLabel(self.tab_3)
         self.label_id_fieldname.setObjectName(_fromUtf8("label_id_fieldname"))
         self.gridLayout_2.addWidget(self.label_id_fieldname, 7, 1, 1, 1)
 #         self.lineEdit_fieldname_2 = QtGui.QLineEdit(self.tab_3)
@@ -342,7 +339,7 @@ class Ui_PHYMOBAT(object):
 #         self.comboBox_fieldname_2 = QtGui.QComboBox(self.tab_3)
 #         self.comboBox_fieldname_2.setObjectName(_fromUtf8("comboBox_fieldname_2"))
 #         self.gridLayout_2.addWidget(self.comboBox_fieldname_2, 14, 4, 1, 1)
-        self.checkBox_classifier_1 = QtGui.QCheckBox(self.tab_3)
+        self.checkBox_classifier_1 = QtWidgets.QCheckBox(self.tab_3)
 #         self.checkBox_classifier_1.setEnabled(True)
 #         self.checkBox_classifier_1.setCheckable(True)
 #         self.checkBox_classifier_1.setChecked(False)
@@ -363,35 +360,35 @@ class Ui_PHYMOBAT(object):
         self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
         self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 2)
         PHYMOBAT.setCentralWidget(self.centralwidget)
-        self.menubar = QtGui.QMenuBar(PHYMOBAT)
+        self.menubar = QtWidgets.QMenuBar(PHYMOBAT)
         self.menubar.setEnabled(True)
         self.menubar.setGeometry(QtCore.QRect(0, 0, 626, 25))
         self.menubar.setDefaultUp(True)
         self.menubar.setObjectName(_fromUtf8("menubar"))
-        self.menuMenu = QtGui.QMenu(self.menubar)
+        self.menuMenu = QtWidgets.QMenu(self.menubar)
         self.menuMenu.setTearOffEnabled(True)
         self.menuMenu.setObjectName(_fromUtf8("menuMenu"))
-        self.menuAide = QtGui.QMenu(self.menubar)
+        self.menuAide = QtWidgets.QMenu(self.menubar)
         self.menuAide.setObjectName(_fromUtf8("menuAide"))
-        self.menuMode = QtGui.QMenu(self.menubar)
+        self.menuMode = QtWidgets.QMenu(self.menubar)
         self.menuMode.setObjectName(_fromUtf8("menuMode"))
         PHYMOBAT.setMenuBar(self.menubar)
-        self.statusbar = QtGui.QStatusBar(PHYMOBAT)
+        self.statusbar = QtWidgets.QStatusBar(PHYMOBAT)
         self.statusbar.setObjectName(_fromUtf8("statusbar"))
         PHYMOBAT.setStatusBar(self.statusbar)
-        self.actionOuvrir = QtGui.QAction(PHYMOBAT)
+        self.actionOuvrir = QtWidgets.QAction(PHYMOBAT)
         self.actionOuvrir.setObjectName(_fromUtf8("actionOuvrir"))
-        self.actionSauver = QtGui.QAction(PHYMOBAT)
+        self.actionSauver = QtWidgets.QAction(PHYMOBAT)
         self.actionSauver.setObjectName(_fromUtf8("actionSauver"))
-        self.actionQuiter = QtGui.QAction(PHYMOBAT)
+        self.actionQuiter = QtWidgets.QAction(PHYMOBAT)
         self.actionQuiter.setObjectName(_fromUtf8("actionQuiter"))
-        self.actionAide_de_PHYMOBAT = QtGui.QAction(PHYMOBAT)
+        self.actionAide_de_PHYMOBAT = QtWidgets.QAction(PHYMOBAT)
         self.actionAide_de_PHYMOBAT.setObjectName(_fromUtf8("actionAide_de_PHYMOBAT"))
-        self.actionA_propos_de_PHYMOBAT = QtGui.QAction(PHYMOBAT)
+        self.actionA_propos_de_PHYMOBAT = QtWidgets.QAction(PHYMOBAT)
         self.actionA_propos_de_PHYMOBAT.setObjectName(_fromUtf8("actionA_propos_de_PHYMOBAT"))
-        self.actionMode_Simplifi = QtGui.QAction(PHYMOBAT)
+        self.actionMode_Simplifi = QtWidgets.QAction(PHYMOBAT)
         self.actionMode_Simplifi.setObjectName(_fromUtf8("actionMode_Simplifi"))
-        self.actionMode_expert = QtGui.QAction(PHYMOBAT)
+        self.actionMode_expert = QtWidgets.QAction(PHYMOBAT)
         self.actionMode_expert.setObjectName(_fromUtf8("actionMode_expert"))
         self.menuMenu.addAction(self.actionOuvrir)
         self.menuMenu.addAction(self.actionSauver)
diff --git a/ui_PHYMOBATs_tab.py b/ui_PHYMOBATs_tab.py
index 1e029c1..9c512b1 100644
--- a/ui_PHYMOBATs_tab.py
+++ b/ui_PHYMOBATs_tab.py
@@ -7,336 +7,328 @@
 #
 # WARNING! All changes made in this file will be lost!
 
-from PyQt5 import QtCore, QtGui
-from PyQt5.QtWidgets import * 
-
-# try:
-#     _fromUtf8 = QtCore.QString.fromUtf8
-# except AttributeError:
-def _fromUtf8(s):
-    return s
+from PyQt5 import QtCore, QtGui, QtWidgets
 
 try:
-    _encoding = QApplication.UnicodeUTF8
+    _encoding = QtWidgets.QApplication.UnicodeUTF8
     def _translate(context, text, disambig):
-        return QApplication.translate(context, text, disambig, _encoding)
+        return QtWidgets.QApplication.translate(context, text, disambig, _encoding)
 except AttributeError:
     def _translate(context, text, disambig):
-        return QApplication.translate(context, text, disambig)
+        return QtWidgets.QApplication.translate(context, text, disambig)
 
 class Ui_PHYMOBAT(object):
-    
     """
     Class to display “Simplify PHYMOBAT window”.
     """
     
     def setupUi(self, PHYMOBAT):
-        PHYMOBAT.setObjectName(_fromUtf8("PHYMOBAT"))
+        PHYMOBAT.setObjectName("PHYMOBAT")
         PHYMOBAT.resize(726, 1052)
-        self.centralwidget = QWidget(PHYMOBAT)
-        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
-        self.gridLayout_4 = QGridLayout(self.centralwidget)
-        self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
-        self.buttonBox = QDialogButtonBox(self.centralwidget)
+        self.centralwidget = QtWidgets.QWidget(PHYMOBAT)
+        self.centralwidget.setObjectName("centralwidget")
+        self.gridLayout_4 = QtWidgets.QGridLayout(self.centralwidget)
+        self.gridLayout_4.setObjectName("gridLayout_4")
+        self.buttonBox = QtWidgets.QDialogButtonBox(self.centralwidget)
         self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
-        self.buttonBox.setStandardButtons(QDialogButtonBox.Close|QDialogButtonBox.Ok)
-        self.buttonBox.setObjectName(_fromUtf8("buttonBox"))
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close|QtWidgets.QDialogButtonBox.Ok)
+        self.buttonBox.setObjectName("buttonBox")
         self.gridLayout_4.addWidget(self.buttonBox, 5, 1, 1, 1)
-        self.checkBox_multiprocess = QCheckBox(self.centralwidget)
+        self.checkBox_multiprocess = QtWidgets.QCheckBox(self.centralwidget)
         self.checkBox_multiprocess.setCheckable(True)
         self.checkBox_multiprocess.setChecked(True)
         self.checkBox_multiprocess.setAutoRepeat(False)
-        self.checkBox_multiprocess.setObjectName(_fromUtf8("checkBox_multiprocess"))
+        self.checkBox_multiprocess.setObjectName("checkBox_multiprocess")
         self.gridLayout_4.addWidget(self.checkBox_multiprocess, 5, 0, 1, 1)
-        self.frame_2 = QFrame(self.centralwidget)
-        self.frame_2.setFrameShape(QFrame.StyledPanel)
-        self.frame_2.setFrameShadow(QFrame.Raised)
-        self.frame_2.setObjectName(_fromUtf8("frame_2"))
-        self.gridLayout_3 = QGridLayout(self.frame_2)
-        self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
-        self.label_select_sample_nb_poly_3 = QLabel(self.frame_2)
-        self.label_select_sample_nb_poly_3.setObjectName(_fromUtf8("label_select_sample_nb_poly_3"))
+        self.frame_2 = QtWidgets.QFrame(self.centralwidget)
+        self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
+        self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
+        self.frame_2.setObjectName("frame_2")
+        self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_2)
+        self.gridLayout_3.setObjectName("gridLayout_3")
+        self.label_select_sample_nb_poly_3 = QtWidgets.QLabel(self.frame_2)
+        self.label_select_sample_nb_poly_3.setObjectName("label_select_sample_nb_poly_3")
         self.gridLayout_3.addWidget(self.label_select_sample_nb_poly_3, 5, 5, 1, 1)
-        self.label_select_sample_class_6 = QLabel(self.frame_2)
-        self.label_select_sample_class_6.setObjectName(_fromUtf8("label_select_sample_class_6"))
+        self.label_select_sample_class_6 = QtWidgets.QLabel(self.frame_2)
+        self.label_select_sample_class_6.setObjectName("label_select_sample_class_6")
         self.gridLayout_3.addWidget(self.label_select_sample_class_6, 5, 0, 1, 1)
-        self.label_select_sample_class_7 = QLabel(self.frame_2)
-        self.label_select_sample_class_7.setObjectName(_fromUtf8("label_select_sample_class_7"))
+        self.label_select_sample_class_7 = QtWidgets.QLabel(self.frame_2)
+        self.label_select_sample_class_7.setObjectName("label_select_sample_class_7")
         self.gridLayout_3.addWidget(self.label_select_sample_class_7, 3, 2, 1, 1)
-        self.lineEdit_select_sample_nb_poly_3 = QLineEdit(self.frame_2)
-        self.lineEdit_select_sample_nb_poly_3.setObjectName(_fromUtf8("lineEdit_select_sample_nb_poly_3"))
+        self.lineEdit_select_sample_nb_poly_3 = QtWidgets.QLineEdit(self.frame_2)
+        self.lineEdit_select_sample_nb_poly_3.setObjectName("lineEdit_select_sample_nb_poly_3")
         self.gridLayout_3.addWidget(self.lineEdit_select_sample_nb_poly_3, 5, 6, 1, 1)
-        self.lineEdit_select_sample_fieldname_5 = QLineEdit(self.frame_2)
-        self.lineEdit_select_sample_fieldname_5.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_5"))
+        self.lineEdit_select_sample_fieldname_5 = QtWidgets.QLineEdit(self.frame_2)
+        self.lineEdit_select_sample_fieldname_5.setObjectName("lineEdit_select_sample_fieldname_5")
         self.gridLayout_3.addWidget(self.lineEdit_select_sample_fieldname_5, 4, 2, 1, 2)
-        self.pushButton_browser_sample_path_3 = QPushButton(self.frame_2)
-        self.pushButton_browser_sample_path_3.setObjectName(_fromUtf8("pushButton_browser_sample_path_3"))
+        self.pushButton_browser_sample_path_3 = QtWidgets.QPushButton(self.frame_2)
+        self.pushButton_browser_sample_path_3.setObjectName("pushButton_browser_sample_path_3")
         self.gridLayout_3.addWidget(self.pushButton_browser_sample_path_3, 1, 7, 2, 1)
-        spacerItem = QSpacerItem(79, 24, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem = QtWidgets.QSpacerItem(79, 24, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_3.addItem(spacerItem, 4, 1, 1, 1)
-        self.lineEdit_select_sample_class_6 = QLineEdit(self.frame_2)
-        self.lineEdit_select_sample_class_6.setObjectName(_fromUtf8("lineEdit_select_sample_class_6"))
+        self.lineEdit_select_sample_class_6 = QtWidgets.QLineEdit(self.frame_2)
+        self.lineEdit_select_sample_class_6.setObjectName("lineEdit_select_sample_class_6")
         self.gridLayout_3.addWidget(self.lineEdit_select_sample_class_6, 5, 4, 1, 1)
-        spacerItem1 = QSpacerItem(79, 13, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem1 = QtWidgets.QSpacerItem(79, 13, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_3.addItem(spacerItem1, 5, 1, 1, 1)
-        self.label_select_sample_fieldname_3 = QLabel(self.frame_2)
-        self.label_select_sample_fieldname_3.setObjectName(_fromUtf8("label_select_sample_fieldname_3"))
+        self.label_select_sample_fieldname_3 = QtWidgets.QLabel(self.frame_2)
+        self.label_select_sample_fieldname_3.setObjectName("label_select_sample_fieldname_3")
         self.gridLayout_3.addWidget(self.label_select_sample_fieldname_3, 4, 0, 1, 1)
-        self.label_sample_path_3 = QLabel(self.frame_2)
-        self.label_sample_path_3.setObjectName(_fromUtf8("label_sample_path_3"))
+        self.label_sample_path_3 = QtWidgets.QLabel(self.frame_2)
+        self.label_sample_path_3.setObjectName("label_sample_path_3")
         self.gridLayout_3.addWidget(self.label_sample_path_3, 0, 0, 1, 4)
-        self.label_select_sample_class_8 = QLabel(self.frame_2)
-        self.label_select_sample_class_8.setObjectName(_fromUtf8("label_select_sample_class_8"))
+        self.label_select_sample_class_8 = QtWidgets.QLabel(self.frame_2)
+        self.label_select_sample_class_8.setObjectName("label_select_sample_class_8")
         self.gridLayout_3.addWidget(self.label_select_sample_class_8, 3, 4, 1, 1)
-        self.lineEdit_sample_path_3 = QLineEdit(self.frame_2)
-        self.lineEdit_sample_path_3.setObjectName(_fromUtf8("lineEdit_sample_path_3"))
+        self.lineEdit_sample_path_3 = QtWidgets.QLineEdit(self.frame_2)
+        self.lineEdit_sample_path_3.setObjectName("lineEdit_sample_path_3")
         self.gridLayout_3.addWidget(self.lineEdit_sample_path_3, 1, 0, 2, 7)
-        self.lineEdit_select_sample_fieldname_6 = QLineEdit(self.frame_2)
-        self.lineEdit_select_sample_fieldname_6.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_6"))
+        self.lineEdit_select_sample_fieldname_6 = QtWidgets.QLineEdit(self.frame_2)
+        self.lineEdit_select_sample_fieldname_6.setObjectName("lineEdit_select_sample_fieldname_6")
         self.gridLayout_3.addWidget(self.lineEdit_select_sample_fieldname_6, 4, 4, 1, 1)
-        self.lineEdit_select_sample_class_5 = QLineEdit(self.frame_2)
-        self.lineEdit_select_sample_class_5.setObjectName(_fromUtf8("lineEdit_select_sample_class_5"))
+        self.lineEdit_select_sample_class_5 = QtWidgets.QLineEdit(self.frame_2)
+        self.lineEdit_select_sample_class_5.setObjectName("lineEdit_select_sample_class_5")
         self.gridLayout_3.addWidget(self.lineEdit_select_sample_class_5, 5, 2, 1, 2)
         self.gridLayout_4.addWidget(self.frame_2, 3, 0, 1, 2)
-        self.frame_3 = QFrame(self.centralwidget)
-        self.frame_3.setFrameShape(QFrame.StyledPanel)
-        self.frame_3.setFrameShadow(QFrame.Raised)
-        self.frame_3.setObjectName(_fromUtf8("frame_3"))
-        self.gridLayout_2 = QGridLayout(self.frame_3)
-        self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
-        self.label_ouput = QLabel(self.frame_3)
-        self.label_ouput.setObjectName(_fromUtf8("label_ouput"))
+        self.frame_3 = QtWidgets.QFrame(self.centralwidget)
+        self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
+        self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
+        self.frame_3.setObjectName("frame_3")
+        self.gridLayout_2 = QtWidgets.QGridLayout(self.frame_3)
+        self.gridLayout_2.setObjectName("gridLayout_2")
+        self.label_ouput = QtWidgets.QLabel(self.frame_3)
+        self.label_ouput.setObjectName("label_ouput")
         self.gridLayout_2.addWidget(self.label_ouput, 0, 0, 1, 1)
-        self.lineEdit_output = QLineEdit(self.frame_3)
-        self.lineEdit_output.setObjectName(_fromUtf8("lineEdit_output"))
+        self.lineEdit_output = QtWidgets.QLineEdit(self.frame_3)
+        self.lineEdit_output.setObjectName("lineEdit_output")
         self.gridLayout_2.addWidget(self.lineEdit_output, 1, 0, 1, 1)
-        self.pushButton_browser_output = QPushButton(self.frame_3)
-        self.pushButton_browser_output.setObjectName(_fromUtf8("pushButton_browser_output"))
+        self.pushButton_browser_output = QtWidgets.QPushButton(self.frame_3)
+        self.pushButton_browser_output.setObjectName("pushButton_browser_output")
         self.gridLayout_2.addWidget(self.pushButton_browser_output, 1, 1, 1, 1)
         self.gridLayout_4.addWidget(self.frame_3, 4, 0, 1, 2)
-        self.frame_4 = QFrame(self.centralwidget)
-        self.frame_4.setFrameShape(QFrame.StyledPanel)
-        self.frame_4.setFrameShadow(QFrame.Raised)
-        self.frame_4.setObjectName(_fromUtf8("frame_4"))
-        self.gridLayout_5 = QGridLayout(self.frame_4)
-        self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
-        spacerItem2 = QSpacerItem(90, 12, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        self.frame_4 = QtWidgets.QFrame(self.centralwidget)
+        self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
+        self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
+        self.frame_4.setObjectName("frame_4")
+        self.gridLayout_5 = QtWidgets.QGridLayout(self.frame_4)
+        self.gridLayout_5.setObjectName("gridLayout_5")
+        spacerItem2 = QtWidgets.QSpacerItem(90, 12, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_5.addItem(spacerItem2, 4, 1, 1, 1)
-        self.pushButton_browser_sample_path = QPushButton(self.frame_4)
-        self.pushButton_browser_sample_path.setObjectName(_fromUtf8("pushButton_browser_sample_path"))
+        self.pushButton_browser_sample_path = QtWidgets.QPushButton(self.frame_4)
+        self.pushButton_browser_sample_path.setObjectName("pushButton_browser_sample_path")
         self.gridLayout_5.addWidget(self.pushButton_browser_sample_path, 1, 6, 1, 1)
-        spacerItem3 = QSpacerItem(82, 15, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem3 = QtWidgets.QSpacerItem(82, 15, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_5.addItem(spacerItem3, 4, 6, 1, 1)
-        self.lineEdit_select_sample_nb_poly = QLineEdit(self.frame_4)
-        self.lineEdit_select_sample_nb_poly.setObjectName(_fromUtf8("lineEdit_select_sample_nb_poly"))
+        self.lineEdit_select_sample_nb_poly = QtWidgets.QLineEdit(self.frame_4)
+        self.lineEdit_select_sample_nb_poly.setObjectName("lineEdit_select_sample_nb_poly")
         self.gridLayout_5.addWidget(self.lineEdit_select_sample_nb_poly, 4, 5, 1, 1)
-        self.label_select_sample_class_1 = QLabel(self.frame_4)
-        self.label_select_sample_class_1.setObjectName(_fromUtf8("label_select_sample_class_1"))
+        self.label_select_sample_class_1 = QtWidgets.QLabel(self.frame_4)
+        self.label_select_sample_class_1.setObjectName("label_select_sample_class_1")
         self.gridLayout_5.addWidget(self.label_select_sample_class_1, 2, 2, 1, 1)
-        self.label_select_sample_class_2 = QLabel(self.frame_4)
-        self.label_select_sample_class_2.setObjectName(_fromUtf8("label_select_sample_class_2"))
+        self.label_select_sample_class_2 = QtWidgets.QLabel(self.frame_4)
+        self.label_select_sample_class_2.setObjectName("label_select_sample_class_2")
         self.gridLayout_5.addWidget(self.label_select_sample_class_2, 2, 3, 1, 1)
-        self.label_select_sample_fieldname = QLabel(self.frame_4)
-        self.label_select_sample_fieldname.setObjectName(_fromUtf8("label_select_sample_fieldname"))
+        self.label_select_sample_fieldname = QtWidgets.QLabel(self.frame_4)
+        self.label_select_sample_fieldname.setObjectName("label_select_sample_fieldname")
         self.gridLayout_5.addWidget(self.label_select_sample_fieldname, 3, 0, 1, 1)
-        spacerItem4 = QSpacerItem(90, 12, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem4 = QtWidgets.QSpacerItem(90, 12, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_5.addItem(spacerItem4, 3, 1, 1, 1)
-        self.label_select_sample_nb_poly = QLabel(self.frame_4)
-        self.label_select_sample_nb_poly.setObjectName(_fromUtf8("label_select_sample_nb_poly"))
+        self.label_select_sample_nb_poly = QtWidgets.QLabel(self.frame_4)
+        self.label_select_sample_nb_poly.setObjectName("label_select_sample_nb_poly")
         self.gridLayout_5.addWidget(self.label_select_sample_nb_poly, 4, 4, 1, 1)
-        self.lineEdit_select_sample_class_2 = QLineEdit(self.frame_4)
-        self.lineEdit_select_sample_class_2.setObjectName(_fromUtf8("lineEdit_select_sample_class_2"))
+        self.lineEdit_select_sample_class_2 = QtWidgets.QLineEdit(self.frame_4)
+        self.lineEdit_select_sample_class_2.setObjectName("lineEdit_select_sample_class_2")
         self.gridLayout_5.addWidget(self.lineEdit_select_sample_class_2, 4, 3, 1, 1)
-        self.lineEdit_select_sample_fieldname_1 = QLineEdit(self.frame_4)
-        self.lineEdit_select_sample_fieldname_1.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_1"))
+        self.lineEdit_select_sample_fieldname_1 = QtWidgets.QLineEdit(self.frame_4)
+        self.lineEdit_select_sample_fieldname_1.setObjectName("lineEdit_select_sample_fieldname_1")
         self.gridLayout_5.addWidget(self.lineEdit_select_sample_fieldname_1, 3, 2, 1, 1)
-        self.label_sample_path = QLabel(self.frame_4)
-        self.label_sample_path.setObjectName(_fromUtf8("label_sample_path"))
+        self.label_sample_path = QtWidgets.QLabel(self.frame_4)
+        self.label_sample_path.setObjectName("label_sample_path")
         self.gridLayout_5.addWidget(self.label_sample_path, 0, 0, 1, 4)
-        self.lineEdit_select_sample_fieldname_2 = QLineEdit(self.frame_4)
-        self.lineEdit_select_sample_fieldname_2.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_2"))
+        self.lineEdit_select_sample_fieldname_2 = QtWidgets.QLineEdit(self.frame_4)
+        self.lineEdit_select_sample_fieldname_2.setObjectName("lineEdit_select_sample_fieldname_2")
         self.gridLayout_5.addWidget(self.lineEdit_select_sample_fieldname_2, 3, 3, 1, 1)
-        self.lineEdit_sample_path = QLineEdit(self.frame_4)
-        self.lineEdit_sample_path.setObjectName(_fromUtf8("lineEdit_sample_path"))
+        self.lineEdit_sample_path = QtWidgets.QLineEdit(self.frame_4)
+        self.lineEdit_sample_path.setObjectName("lineEdit_sample_path")
         self.gridLayout_5.addWidget(self.lineEdit_sample_path, 1, 0, 1, 6)
-        self.lineEdit_select_sample_class_1 = QLineEdit(self.frame_4)
-        self.lineEdit_select_sample_class_1.setObjectName(_fromUtf8("lineEdit_select_sample_class_1"))
+        self.lineEdit_select_sample_class_1 = QtWidgets.QLineEdit(self.frame_4)
+        self.lineEdit_select_sample_class_1.setObjectName("lineEdit_select_sample_class_1")
         self.gridLayout_5.addWidget(self.lineEdit_select_sample_class_1, 4, 2, 1, 1)
-        self.label_select_sample_class = QLabel(self.frame_4)
-        self.label_select_sample_class.setObjectName(_fromUtf8("label_select_sample_class"))
+        self.label_select_sample_class = QtWidgets.QLabel(self.frame_4)
+        self.label_select_sample_class.setObjectName("label_select_sample_class")
         self.gridLayout_5.addWidget(self.label_select_sample_class, 4, 0, 1, 1)
         self.gridLayout_4.addWidget(self.frame_4, 1, 0, 1, 2)
-        self.frame_5 = QFrame(self.centralwidget)
-        self.frame_5.setFrameShape(QFrame.StyledPanel)
-        self.frame_5.setFrameShadow(QFrame.Raised)
-        self.frame_5.setObjectName(_fromUtf8("frame_5"))
-        self.gridLayout_6 = QGridLayout(self.frame_5)
-        self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
-        self.label_select_sample_class_4 = QLabel(self.frame_5)
-        self.label_select_sample_class_4.setObjectName(_fromUtf8("label_select_sample_class_4"))
+        self.frame_5 = QtWidgets.QFrame(self.centralwidget)
+        self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
+        self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
+        self.frame_5.setObjectName("frame_5")
+        self.gridLayout_6 = QtWidgets.QGridLayout(self.frame_5)
+        self.gridLayout_6.setObjectName("gridLayout_6")
+        self.label_select_sample_class_4 = QtWidgets.QLabel(self.frame_5)
+        self.label_select_sample_class_4.setObjectName("label_select_sample_class_4")
         self.gridLayout_6.addWidget(self.label_select_sample_class_4, 4, 0, 1, 1)
-        self.lineEdit_sample_path_2 = QLineEdit(self.frame_5)
-        self.lineEdit_sample_path_2.setObjectName(_fromUtf8("lineEdit_sample_path_2"))
+        self.lineEdit_sample_path_2 = QtWidgets.QLineEdit(self.frame_5)
+        self.lineEdit_sample_path_2.setObjectName("lineEdit_sample_path_2")
         self.gridLayout_6.addWidget(self.lineEdit_sample_path_2, 1, 0, 1, 6)
-        self.label_select_sample_fieldname_2 = QLabel(self.frame_5)
-        self.label_select_sample_fieldname_2.setObjectName(_fromUtf8("label_select_sample_fieldname_2"))
+        self.label_select_sample_fieldname_2 = QtWidgets.QLabel(self.frame_5)
+        self.label_select_sample_fieldname_2.setObjectName("label_select_sample_fieldname_2")
         self.gridLayout_6.addWidget(self.label_select_sample_fieldname_2, 3, 0, 1, 1)
-        self.lineEdit_select_sample_class_4 = QLineEdit(self.frame_5)
-        self.lineEdit_select_sample_class_4.setObjectName(_fromUtf8("lineEdit_select_sample_class_4"))
+        self.lineEdit_select_sample_class_4 = QtWidgets.QLineEdit(self.frame_5)
+        self.lineEdit_select_sample_class_4.setObjectName("lineEdit_select_sample_class_4")
         self.gridLayout_6.addWidget(self.lineEdit_select_sample_class_4, 4, 3, 1, 1)
-        self.label_select_sample_nb_poly_2 = QLabel(self.frame_5)
-        self.label_select_sample_nb_poly_2.setObjectName(_fromUtf8("label_select_sample_nb_poly_2"))
+        self.label_select_sample_nb_poly_2 = QtWidgets.QLabel(self.frame_5)
+        self.label_select_sample_nb_poly_2.setObjectName("label_select_sample_nb_poly_2")
         self.gridLayout_6.addWidget(self.label_select_sample_nb_poly_2, 4, 4, 1, 1)
-        self.label_select_sample_class_3 = QLabel(self.frame_5)
-        self.label_select_sample_class_3.setObjectName(_fromUtf8("label_select_sample_class_3"))
+        self.label_select_sample_class_3 = QtWidgets.QLabel(self.frame_5)
+        self.label_select_sample_class_3.setObjectName("label_select_sample_class_3")
         self.gridLayout_6.addWidget(self.label_select_sample_class_3, 2, 2, 1, 1)
-        spacerItem5 = QSpacerItem(76, 24, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem5 = QtWidgets.QSpacerItem(76, 24, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_6.addItem(spacerItem5, 4, 1, 1, 1)
-        self.lineEdit_select_sample_fieldname_3 = QLineEdit(self.frame_5)
-        self.lineEdit_select_sample_fieldname_3.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_3"))
+        self.lineEdit_select_sample_fieldname_3 = QtWidgets.QLineEdit(self.frame_5)
+        self.lineEdit_select_sample_fieldname_3.setObjectName("lineEdit_select_sample_fieldname_3")
         self.gridLayout_6.addWidget(self.lineEdit_select_sample_fieldname_3, 3, 2, 1, 1)
-        self.pushButton_browser_sample_path_2 = QPushButton(self.frame_5)
-        self.pushButton_browser_sample_path_2.setObjectName(_fromUtf8("pushButton_browser_sample_path_2"))
+        self.pushButton_browser_sample_path_2 = QtWidgets.QPushButton(self.frame_5)
+        self.pushButton_browser_sample_path_2.setObjectName("pushButton_browser_sample_path_2")
         self.gridLayout_6.addWidget(self.pushButton_browser_sample_path_2, 1, 6, 1, 1)
-        self.lineEdit_select_sample_fieldname_4 = QLineEdit(self.frame_5)
-        self.lineEdit_select_sample_fieldname_4.setObjectName(_fromUtf8("lineEdit_select_sample_fieldname_4"))
+        self.lineEdit_select_sample_fieldname_4 = QtWidgets.QLineEdit(self.frame_5)
+        self.lineEdit_select_sample_fieldname_4.setObjectName("lineEdit_select_sample_fieldname_4")
         self.gridLayout_6.addWidget(self.lineEdit_select_sample_fieldname_4, 3, 3, 1, 1)
-        spacerItem6 = QSpacerItem(76, 24, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem6 = QtWidgets.QSpacerItem(76, 24, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout_6.addItem(spacerItem6, 3, 1, 1, 1)
-        self.label_sample_path_2 = QLabel(self.frame_5)
-        self.label_sample_path_2.setObjectName(_fromUtf8("label_sample_path_2"))
+        self.label_sample_path_2 = QtWidgets.QLabel(self.frame_5)
+        self.label_sample_path_2.setObjectName("label_sample_path_2")
         self.gridLayout_6.addWidget(self.label_sample_path_2, 0, 0, 1, 3)
-        self.lineEdit_select_sample_nb_poly_2 = QLineEdit(self.frame_5)
-        self.lineEdit_select_sample_nb_poly_2.setObjectName(_fromUtf8("lineEdit_select_sample_nb_poly_2"))
+        self.lineEdit_select_sample_nb_poly_2 = QtWidgets.QLineEdit(self.frame_5)
+        self.lineEdit_select_sample_nb_poly_2.setObjectName("lineEdit_select_sample_nb_poly_2")
         self.gridLayout_6.addWidget(self.lineEdit_select_sample_nb_poly_2, 4, 5, 1, 1)
-        self.lineEdit_select_sample_class_3 = QLineEdit(self.frame_5)
-        self.lineEdit_select_sample_class_3.setObjectName(_fromUtf8("lineEdit_select_sample_class_3"))
+        self.lineEdit_select_sample_class_3 = QtWidgets.QLineEdit(self.frame_5)
+        self.lineEdit_select_sample_class_3.setObjectName("lineEdit_select_sample_class_3")
         self.gridLayout_6.addWidget(self.lineEdit_select_sample_class_3, 4, 2, 1, 1)
-        self.label_select_sample_class_5 = QLabel(self.frame_5)
-        self.label_select_sample_class_5.setObjectName(_fromUtf8("label_select_sample_class_5"))
+        self.label_select_sample_class_5 = QtWidgets.QLabel(self.frame_5)
+        self.label_select_sample_class_5.setObjectName("label_select_sample_class_5")
         self.gridLayout_6.addWidget(self.label_select_sample_class_5, 2, 3, 1, 1)
         self.gridLayout_4.addWidget(self.frame_5, 2, 0, 1, 2)
-        self.frame = QFrame(self.centralwidget)
-        self.frame.setFrameShape(QFrame.StyledPanel)
-        self.frame.setFrameShadow(QFrame.Raised)
-        self.frame.setObjectName(_fromUtf8("frame"))
-        self.gridLayout = QGridLayout(self.frame)
-        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
-        self.label_principal_folder = QLabel(self.frame)
-        self.label_principal_folder.setObjectName(_fromUtf8("label_principal_folder"))
+        self.frame = QtWidgets.QFrame(self.centralwidget)
+        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
+        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
+        self.frame.setObjectName("frame")
+        self.gridLayout = QtWidgets.QGridLayout(self.frame)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label_principal_folder = QtWidgets.QLabel(self.frame)
+        self.label_principal_folder.setObjectName("label_principal_folder")
         self.gridLayout.addWidget(self.label_principal_folder, 0, 0, 1, 2)
-        self.lineEdit_principal_folder = QLineEdit(self.frame)
-        self.lineEdit_principal_folder.setObjectName(_fromUtf8("lineEdit_principal_folder"))
+        self.lineEdit_principal_folder = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_principal_folder.setObjectName("lineEdit_principal_folder")
         self.gridLayout.addWidget(self.lineEdit_principal_folder, 1, 0, 1, 5)
-        self.pushButton_browser_principal_folder = QPushButton(self.frame)
-        self.pushButton_browser_principal_folder.setObjectName(_fromUtf8("pushButton_browser_principal_folder"))
+        self.pushButton_browser_principal_folder = QtWidgets.QPushButton(self.frame)
+        self.pushButton_browser_principal_folder.setObjectName("pushButton_browser_principal_folder")
         self.gridLayout.addWidget(self.pushButton_browser_principal_folder, 1, 5, 1, 1)
-        self.label_year_images = QLabel(self.frame)
-        self.label_year_images.setObjectName(_fromUtf8("label_year_images"))
+        self.label_year_images = QtWidgets.QLabel(self.frame)
+        self.label_year_images.setObjectName("label_year_images")
         self.gridLayout.addWidget(self.label_year_images, 2, 0, 1, 1)
-        self.lineEdit_year_images = QLineEdit(self.frame)
-        self.lineEdit_year_images.setObjectName(_fromUtf8("lineEdit_year_images"))
+        self.lineEdit_year_images = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_year_images.setObjectName("lineEdit_year_images")
         self.gridLayout.addWidget(self.lineEdit_year_images, 2, 1, 1, 2)
-        self.label_ex_period = QLabel(self.frame)
+        self.label_ex_period = QtWidgets.QLabel(self.frame)
         font = QtGui.QFont()
         font.setPointSize(8)
         font.setItalic(True)
         self.label_ex_period.setFont(font)
-        self.label_ex_period.setObjectName(_fromUtf8("label_ex_period"))
+        self.label_ex_period.setObjectName("label_ex_period")
         self.gridLayout.addWidget(self.label_ex_period, 2, 3, 1, 3)        
-        self.label_area_path = QLabel(self.frame)
-        self.label_area_path.setObjectName(_fromUtf8("label_area_path"))
+        self.label_area_path = QtWidgets.QLabel(self.frame)
+        self.label_area_path.setObjectName("label_area_path")
         self.gridLayout.addWidget(self.label_area_path, 3, 0, 1, 2)
-        self.lineEdit_area_path = QLineEdit(self.frame)
-        self.lineEdit_area_path.setObjectName(_fromUtf8("lineEdit_area_path"))
+        self.lineEdit_area_path = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_area_path.setObjectName("lineEdit_area_path")
         self.gridLayout.addWidget(self.lineEdit_area_path, 4, 0, 1, 5)
-        self.pushButton_browser_area_path = QPushButton(self.frame)
-        self.pushButton_browser_area_path.setObjectName(_fromUtf8("pushButton_browser_area_path"))
+        self.pushButton_browser_area_path = QtWidgets.QPushButton(self.frame)
+        self.pushButton_browser_area_path.setObjectName("pushButton_browser_area_path")
         self.gridLayout.addWidget(self.pushButton_browser_area_path, 4, 5, 1, 1)
-        self.label_id_theia = QLabel(self.frame)
-        self.label_id_theia.setObjectName(_fromUtf8("label_id_theia"))
+        self.label_id_theia = QtWidgets.QLabel(self.frame)
+        self.label_id_theia.setObjectName("label_id_theia")
         self.gridLayout.addWidget(self.label_id_theia, 5, 0, 1, 1)
-        self.label_user = QLabel(self.frame)
-        self.label_user.setObjectName(_fromUtf8("label_user"))
+        self.label_user = QtWidgets.QLabel(self.frame)
+        self.label_user.setObjectName("label_user")
         self.gridLayout.addWidget(self.label_user, 6, 0, 1, 1)
-        self.lineEdit_user = QLineEdit(self.frame)
-        self.lineEdit_user.setObjectName(_fromUtf8("lineEdit_user"))
+        self.lineEdit_user = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_user.setObjectName("lineEdit_user")
         self.gridLayout.addWidget(self.lineEdit_user, 6, 1, 1, 1)
-        spacerItem7 = QSpacerItem(73, 13, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem7 = QtWidgets.QSpacerItem(73, 13, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem7, 6, 2, 1, 1)
-        self.label_password = QLabel(self.frame)
-        self.label_password.setObjectName(_fromUtf8("label_password"))
+        self.label_password = QtWidgets.QLabel(self.frame)
+        self.label_password.setObjectName("label_password")
         self.gridLayout.addWidget(self.label_password, 6, 3, 1, 1)
-        self.lineEdit_password = QLineEdit(self.frame)
-        self.lineEdit_password.setEchoMode(QLineEdit.Password)
-        self.lineEdit_password.setObjectName(_fromUtf8("lineEdit_password"))
+        self.lineEdit_password = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_password.setEchoMode(QtWidgets.QLineEdit.Password)
+        self.lineEdit_password.setObjectName("lineEdit_password")
         self.gridLayout.addWidget(self.lineEdit_password, 6, 4, 1, 1)
-        spacerItem8 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+        spacerItem8 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem8, 6, 5, 1, 1)
-        self.checkBox_MNT = QLabel(self.frame)
-        self.checkBox_MNT.setObjectName(_fromUtf8("checkBox_MNT"))
+        self.checkBox_MNT = QtWidgets.QLabel(self.frame)
+        self.checkBox_MNT.setObjectName("checkBox_MNT")
         self.gridLayout.addWidget(self.checkBox_MNT, 7, 0, 1, 1)
-        self.lineEdit_MNT = QLineEdit(self.frame)
-        self.lineEdit_MNT.setObjectName(_fromUtf8("lineEdit_MNT"))
+        self.lineEdit_MNT = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_MNT.setObjectName("lineEdit_MNT")
 #         self.lineEdit_MNT.setEnabled(False)
         self.gridLayout.addWidget(self.lineEdit_MNT, 8, 0, 1, 5)
-        self.pushButton_browser_MNT = QPushButton(self.frame)
-        self.pushButton_browser_MNT.setObjectName(_fromUtf8("pushButton_browser_MNT"))
+        self.pushButton_browser_MNT = QtWidgets.QPushButton(self.frame)
+        self.pushButton_browser_MNT.setObjectName("pushButton_browser_MNT")
 #         self.pushButton_browser_MNT.setEnabled(False)
         self.gridLayout.addWidget(self.pushButton_browser_MNT, 8, 5, 1, 1)
-        self.checkBox_VHRS = QLabel(self.frame)
-        self.checkBox_VHRS.setObjectName(_fromUtf8("checkBox_VHRS"))
+        self.checkBox_VHRS = QtWidgets.QLabel(self.frame)
+        self.checkBox_VHRS.setObjectName("checkBox_VHRS")
         self.gridLayout.addWidget(self.checkBox_VHRS, 9, 0, 1, 1)
-        self.lineEdit_VHRS = QLineEdit(self.frame)
-        self.lineEdit_VHRS.setObjectName(_fromUtf8("lineEdit_VHRS"))
+        self.lineEdit_VHRS = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_VHRS.setObjectName("lineEdit_VHRS")
         self.gridLayout.addWidget(self.lineEdit_VHRS, 10, 0, 1, 5)
-        self.pushButton_browser_VHRS = QPushButton(self.frame)
-        self.pushButton_browser_VHRS.setObjectName(_fromUtf8("pushButton_browser_VHRS"))
+        self.pushButton_browser_VHRS = QtWidgets.QPushButton(self.frame)
+        self.pushButton_browser_VHRS.setObjectName("pushButton_browser_VHRS")
         self.gridLayout.addWidget(self.pushButton_browser_VHRS, 10, 5, 1, 1)
-        self.label_segmentation = QLabel(self.frame)
-        self.label_segmentation.setObjectName(_fromUtf8("label_segmentation"))
+        self.label_segmentation = QtWidgets.QLabel(self.frame)
+        self.label_segmentation.setObjectName("label_segmentation")
         self.gridLayout.addWidget(self.label_segmentation, 11, 0, 1, 2)
-        self.lineEdit_segmentation = QLineEdit(self.frame)
-        self.lineEdit_segmentation.setObjectName(_fromUtf8("lineEdit_segmentation"))
+        self.lineEdit_segmentation = QtWidgets.QLineEdit(self.frame)
+        self.lineEdit_segmentation.setObjectName("lineEdit_segmentation")
         self.gridLayout.addWidget(self.lineEdit_segmentation, 12, 0, 1, 5)
-        self.pushButton_browser_segmentation = QPushButton(self.frame)
-        self.pushButton_browser_segmentation.setObjectName(_fromUtf8("pushButton_browser_segmentation"))
+        self.pushButton_browser_segmentation = QtWidgets.QPushButton(self.frame)
+        self.pushButton_browser_segmentation.setObjectName("pushButton_browser_segmentation")
         self.gridLayout.addWidget(self.pushButton_browser_segmentation, 12, 5, 1, 1)
-        self.proxy = QPushButton(self.frame)
-        self.proxy.setObjectName(_fromUtf8("proxy"))
+        self.proxy = QtWidgets.QPushButton(self.frame)
+        self.proxy.setObjectName("proxy")
         self.gridLayout.addWidget(self.proxy, 6, 5, 1, 1)
         self.gridLayout_4.addWidget(self.frame, 0, 0, 1, 2)
         PHYMOBAT.setCentralWidget(self.centralwidget)
-        self.menubar = QMenuBar(PHYMOBAT)
+        self.menubar = QtWidgets.QMenuBar(PHYMOBAT)
         self.menubar.setEnabled(True)
         self.menubar.setGeometry(QtCore.QRect(0, 0, 726, 25))
         self.menubar.setDefaultUp(True)
-        self.menubar.setObjectName(_fromUtf8("menubar"))
-        self.menuMenu = QMenu(self.menubar)
+        self.menubar.setObjectName("menubar")
+        self.menuMenu = QtWidgets.QMenu(self.menubar)
         self.menuMenu.setTearOffEnabled(True)
-        self.menuMenu.setObjectName(_fromUtf8("menuMenu"))
-        self.menuAide = QMenu(self.menubar)
-        self.menuAide.setObjectName(_fromUtf8("menuAide"))
-        self.menuMode = QMenu(self.menubar)
-        self.menuMode.setObjectName(_fromUtf8("menuMode"))
+        self.menuMenu.setObjectName("menuMenu")
+        self.menuAide = QtWidgets.QMenu(self.menubar)
+        self.menuAide.setObjectName("menuAide")
+        self.menuMode = QtWidgets.QMenu(self.menubar)
+        self.menuMode.setObjectName("menuMode")
         PHYMOBAT.setMenuBar(self.menubar)
-        self.statusbar = QStatusBar(PHYMOBAT)
-        self.statusbar.setObjectName(_fromUtf8("statusbar"))
+        self.statusbar = QtWidgets.QStatusBar(PHYMOBAT)
+        self.statusbar.setObjectName("statusbar")
         PHYMOBAT.setStatusBar(self.statusbar)
-        self.actionOuvrir = QAction(PHYMOBAT)
-        self.actionOuvrir.setObjectName(_fromUtf8("actionOuvrir"))
-        self.actionSauver = QAction(PHYMOBAT)
-        self.actionSauver.setObjectName(_fromUtf8("actionSauver"))
-        self.actionQuiter = QAction(PHYMOBAT)
-        self.actionQuiter.setObjectName(_fromUtf8("actionQuiter"))
-        self.actionAide_de_PHYMOBAT = QAction(PHYMOBAT)
-        self.actionAide_de_PHYMOBAT.setObjectName(_fromUtf8("actionAide_de_PHYMOBAT"))
-        self.actionA_propos_de_PHYMOBAT = QAction(PHYMOBAT)
-        self.actionA_propos_de_PHYMOBAT.setObjectName(_fromUtf8("actionA_propos_de_PHYMOBAT"))
-        self.actionMode_Simplifi = QAction(PHYMOBAT)
-        self.actionMode_Simplifi.setObjectName(_fromUtf8("actionMode_Simplifi"))
-        self.actionMode_expert = QAction(PHYMOBAT)
-        self.actionMode_expert.setObjectName(_fromUtf8("actionMode_expert"))
+        self.actionOuvrir = QtWidgets.QAction(PHYMOBAT)
+        self.actionOuvrir.setObjectName("actionOuvrir")
+        self.actionSauver = QtWidgets.QAction(PHYMOBAT)
+        self.actionSauver.setObjectName("actionSauver")
+        self.actionQuiter = QtWidgets.QAction(PHYMOBAT)
+        self.actionQuiter.setObjectName("actionQuiter")
+        self.actionAide_de_PHYMOBAT = QtWidgets.QAction(PHYMOBAT)
+        self.actionAide_de_PHYMOBAT.setObjectName("actionAide_de_PHYMOBAT")
+        self.actionA_propos_de_PHYMOBAT = QtWidgets.QAction(PHYMOBAT)
+        self.actionA_propos_de_PHYMOBAT.setObjectName("actionA_propos_de_PHYMOBAT")
+        self.actionMode_Simplifi = QtWidgets.QAction(PHYMOBAT)
+        self.actionMode_Simplifi.setObjectName("actionMode_Simplifi")
+        self.actionMode_expert = QtWidgets.QAction(PHYMOBAT)
+        self.actionMode_expert.setObjectName("actionMode_expert")
         self.menuMenu.addAction(self.actionOuvrir)
         self.menuMenu.addAction(self.actionSauver)
         self.menuMenu.addAction(self.actionQuiter)
diff --git a/ui_Proxy_window.py b/ui_Proxy_window.py
index 2116cde..8bf4749 100644
--- a/ui_Proxy_window.py
+++ b/ui_Proxy_window.py
@@ -7,21 +7,15 @@
 #
 # WARNING! All changes made in this file will be lost!
 
-from PyQt5 import QtCore, QtGui
-
-# try:
-#     _fromUtf8 = QtCore.QString.fromUtf8
-# except AttributeError:
-def _fromUtf8(s):
-    return s
+from PyQt5 import QtCore, QtWidgets
 
 try:
-    _encoding = QtGui.QApplication.UnicodeUTF8
+    _encoding = QtWidgets.QApplication.UnicodeUTF8
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+        return QtWidgets.QApplication.translate(context, text, disambig, _encoding)
 except AttributeError:
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig)
+        return QtWidgets.QApplication.translate(context, text, disambig)
 
 class Ui_Proxy_window(object):
     
@@ -30,36 +24,36 @@ class Ui_Proxy_window(object):
     """
     
     def setupUi(self, Proxy_window):
-        Proxy_window.setObjectName(_fromUtf8("Proxy_window"))
+        Proxy_window.setObjectName("Proxy_window")
         Proxy_window.resize(344, 144)
         Proxy_window.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
-        self.gridLayout = QtGui.QGridLayout(Proxy_window)
-        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
-        self.label_proxy = QtGui.QLabel(Proxy_window)
-        self.label_proxy.setObjectName(_fromUtf8("label_proxy"))
+        self.gridLayout = QtWidgets.QGridLayout(Proxy_window)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label_proxy = QtWidgets.QLabel(Proxy_window)
+        self.label_proxy.setObjectName("label_proxy")
         self.gridLayout.addWidget(self.label_proxy, 0, 0, 1, 1)
-        self.lineEdit_proxy = QtGui.QLineEdit(Proxy_window)
-        self.lineEdit_proxy.setInputMask(_fromUtf8(""))
-        self.lineEdit_proxy.setText(_fromUtf8(""))
+        self.lineEdit_proxy = QtWidgets.QLineEdit(Proxy_window)
+        self.lineEdit_proxy.setInputMask("")
+        self.lineEdit_proxy.setText("")
         self.lineEdit_proxy.setFrame(True)
-        self.lineEdit_proxy.setObjectName(_fromUtf8("lineEdit_proxy"))
+        self.lineEdit_proxy.setObjectName("lineEdit_proxy")
         self.gridLayout.addWidget(self.lineEdit_proxy, 0, 2, 1, 1)
-        self.label_login_proxy = QtGui.QLabel(Proxy_window)
-        self.label_login_proxy.setObjectName(_fromUtf8("label_login_proxy"))
+        self.label_login_proxy = QtWidgets.QLabel(Proxy_window)
+        self.label_login_proxy.setObjectName("label_login_proxy")
         self.gridLayout.addWidget(self.label_login_proxy, 1, 0, 1, 2)
-        self.lineEdit_login_proxy = QtGui.QLineEdit(Proxy_window)
-        self.lineEdit_login_proxy.setObjectName(_fromUtf8("lineEdit_login_proxy"))
+        self.lineEdit_login_proxy = QtWidgets.QLineEdit(Proxy_window)
+        self.lineEdit_login_proxy.setObjectName("lineEdit_login_proxy")
         self.gridLayout.addWidget(self.lineEdit_login_proxy, 1, 2, 1, 1)
-        self.label_password_proxy = QtGui.QLabel(Proxy_window)
-        self.label_password_proxy.setObjectName(_fromUtf8("label_password_proxy"))
+        self.label_password_proxy = QtWidgets.QLabel(Proxy_window)
+        self.label_password_proxy.setObjectName("label_password_proxy")
         self.gridLayout.addWidget(self.label_password_proxy, 2, 0, 1, 2)
-        self.lineEdit_password_proxy = QtGui.QLineEdit(Proxy_window)
-        self.lineEdit_password_proxy.setObjectName(_fromUtf8("lineEdit_password_proxy"))
+        self.lineEdit_password_proxy = QtWidgets.QLineEdit(Proxy_window)
+        self.lineEdit_password_proxy.setObjectName("lineEdit_password_proxy")
         self.gridLayout.addWidget(self.lineEdit_password_proxy, 2, 2, 1, 1)
-        self.buttonBox_proxy = QtGui.QDialogButtonBox(Proxy_window)
-        self.buttonBox_proxy.setStandardButtons(QtGui.QDialogButtonBox.Apply|QtGui.QDialogButtonBox.Close)
+        self.buttonBox_proxy = QtWidgets.QDialogButtonBox(Proxy_window)
+        self.buttonBox_proxy.setStandardButtons(QtWidgets.QDialogButtonBox.Apply|QtWidgets.QDialogButtonBox.Close)
         self.buttonBox_proxy.setCenterButtons(False)
-        self.buttonBox_proxy.setObjectName(_fromUtf8("buttonBox_proxy"))
+        self.buttonBox_proxy.setObjectName("buttonBox_proxy")
         self.gridLayout.addWidget(self.buttonBox_proxy, 3, 1, 1, 2)
 
         self.retranslateUi(Proxy_window)
diff --git a/ui_Warming_forgetting.py b/ui_Warming_forgetting.py
index 9e6e236..87d3989 100644
--- a/ui_Warming_forgetting.py
+++ b/ui_Warming_forgetting.py
@@ -23,21 +23,15 @@
 # You should have received a copy of the GNU General Public License
 # along with PHYMOBAT 1.2.  If not, see <http://www.gnu.org/licenses/>.
 
-from PyQt5 import QtCore, QtGui
-
-# try:
-#     _fromUtf8 = QtCore.QString.fromUtf8
-# except AttributeError:
-def _fromUtf8(s):
-    return s
+from PyQt5 import QtCore, QtWidgets
 
 try:
-    _encoding = QtGui.QApplication.UnicodeUTF8
+    _encoding = QtWidgets.QApplication.UnicodeUTF8
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+        return QtWidgets.QApplication.translate(context, text, disambig, _encoding)
 except AttributeError:
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig)
+        return QtWidgets.QApplication.translate(context, text, disambig)
 
 class Ui_Warming_forgetting(object):
     """
@@ -45,19 +39,19 @@ class Ui_Warming_forgetting(object):
     """
     
     def setupUi(self, Form):
-        Form.setObjectName(_fromUtf8("Form"))
+        Form.setObjectName("Form")
         Form.resize(332, 102)
-        self.gridLayout = QtGui.QGridLayout(Form)
-        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
-        self.label_forget = QtGui.QLabel(Form)
-        self.label_forget.setObjectName(_fromUtf8("label_forget"))
+        self.gridLayout = QtWidgets.QGridLayout(Form)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label_forget = QtWidgets.QLabel(Form)
+        self.label_forget.setObjectName("label_forget")
         self.gridLayout.addWidget(self.label_forget, 0, 0, 1, 3)
-        spacerItem = QtGui.QSpacerItem(93, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem = QtWidgets.QSpacerItem(93, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
-        self.pushButton_ok_forget = QtGui.QPushButton(Form)
-        self.pushButton_ok_forget.setObjectName(_fromUtf8("pushButton_ok_forget"))
+        self.pushButton_ok_forget = QtWidgets.QPushButton(Form)
+        self.pushButton_ok_forget.setObjectName("pushButton_ok_forget")
         self.gridLayout.addWidget(self.pushButton_ok_forget, 1, 1, 1, 1)
-        spacerItem1 = QtGui.QSpacerItem(104, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem1 = QtWidgets.QSpacerItem(104, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem1, 1, 2, 1, 1)
 
         self.retranslateUi(Form)
diff --git a/ui_Warming_study_area.py b/ui_Warming_study_area.py
index 01cca0a..31da8eb 100644
--- a/ui_Warming_study_area.py
+++ b/ui_Warming_study_area.py
@@ -23,21 +23,15 @@
 # You should have received a copy of the GNU General Public License
 # along with PHYMOBAT 1.2.  If not, see <http://www.gnu.org/licenses/>.
 
-from PyQt5 import QtCore, QtGui
-
-# try:
-#     _fromUtf8 = QtCore.QString.fromUtf8
-# except AttributeError:
-def _fromUtf8(s):
-    return s
+from PyQt5 import QtCore, QtWidgets
 
 try:
-    _encoding = QtGui.QApplication.UnicodeUTF8
+    _encoding = QtWidgets.QApplication.UnicodeUTF8
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig, _encoding)
+        return QtWidgets.QApplication.translate(context, text, disambig, _encoding)
 except AttributeError:
     def _translate(context, text, disambig):
-        return QtGui.QApplication.translate(context, text, disambig)
+        return QtWidgets.QApplication.translate(context, text, disambig)
 
 class Ui_Warming_study_area(object):
     """
@@ -45,19 +39,19 @@ class Ui_Warming_study_area(object):
     """
     
     def setupUi(self, Form):
-        Form.setObjectName(_fromUtf8("Form"))
+        Form.setObjectName("Form")
         Form.resize(318, 88)
-        self.gridLayout = QtGui.QGridLayout(Form)
-        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
-        self.label = QtGui.QLabel(Form)
-        self.label.setObjectName(_fromUtf8("label"))
+        self.gridLayout = QtWidgets.QGridLayout(Form)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(Form)
+        self.label.setObjectName("label")
         self.gridLayout.addWidget(self.label, 0, 0, 1, 3)
-        spacerItem = QtGui.QSpacerItem(93, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem = QtWidgets.QSpacerItem(93, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
-        self.pushButton_ok_window_warning_study_area = QtGui.QPushButton(Form)
-        self.pushButton_ok_window_warning_study_area.setObjectName(_fromUtf8("pushButton_ok_window_warning_study_area"))
+        self.pushButton_ok_window_warning_study_area = QtWidgets.QPushButton(Form)
+        self.pushButton_ok_window_warning_study_area.setObjectName("pushButton_ok_window_warning_study_area")
         self.gridLayout.addWidget(self.pushButton_ok_window_warning_study_area, 1, 1, 1, 1)
-        spacerItem1 = QtGui.QSpacerItem(104, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
+        spacerItem1 = QtWidgets.QSpacerItem(104, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
         self.gridLayout.addItem(spacerItem1, 1, 2, 1, 1)
 
         self.retranslateUi(Form)
-- 
GitLab