Пример #1
0
def main(gui=False):

    parser = argparse.ArgumentParser(prog="CalculSeuilImage", description=" \
    Info : Creating files containing the threshold automatically calculated (fisher algorith) for each input NDVI image. \n\
    Objectif : Calcul du seuil automatique pour les images NDVI d'une liste en entrée. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/CalculSeuilImage.py \n\
                            -i /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/image1.tif /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/image2.tif \n\
                            -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/Result2")

    parser.add_argument('-i','--input_ndvi_im_list', default="", nargs="+", help="List of NDVI images to process.", type=str, required=True)
    parser.add_argument('-outd','--output_dir', default="",help="Output directory.", type=str, required=True)
    parser.add_argument('-log','--path_time_log',default=os.getcwd()+ os.sep + "log.txt",help="Option : Name of log. By default : log.txt", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Option : Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Option : Overwrite files with same names. By default : True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # Récupération des images ndvi à traiter
    if args.input_ndvi_im_list != None :
        input_ndvi_im_list = args.input_ndvi_im_list

    # Récupération du dossier des fichiers en sortie
    if args.output_dir != None :
        output_dir = args.output_dir

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "CalculSeuilImage : " + endC + "input_ndvi_im_list : " + str(input_ndvi_im_list) + endC)
        print(cyan + "CalculSeuilImage : " + endC + "output_dir : " + str(output_dir) + endC)
        print(cyan + "CalculSeuilImage : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "CalculSeuilImage : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "CalculSeuilImage : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "CalculSeuilImage : " + endC + "debug : " + str(debug) + endC)

    # Fonction générale
    calculSeuilImage(input_ndvi_im_list, output_dir, path_time_log, save_results_intermediate, overwrite)
def main(gui=False):
    parser = argparse.ArgumentParser(prog = "Preparation des donnees pour le calcul des indicateurs LCZ",
    description = """Preparation des donnees pour le calcul des indicateurs LCZ :
    Exemple : python /home/scgsi/Documents/ChaineTraitement/ScriptsLCZ/DataPreparation.py
                        -emp  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/ZoneTest.shp
                        -in   /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/FR016L2_NANCY_UA2012.shp
                        -bil  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/N_BATI_INDIFFERENCIE_BDT_054.SHP
                              /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/N_BATI_INDUSTRIEL_BDT_054.SHP
                              /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/N_BATI_REMARQUABLE_BDT_054.SHP
                              /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/N_CONSTRUCTION_LEGERE_BDT_054.SHP
                              /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/N_RESERVOIR_BDT_054.SHP
                        -ri   /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/N_TRONCON_ROUTE_BDT_054.SHP
                        -clai /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/ClassificationPleiadesOCS.tif
                        -mnsi /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/MNS_cleaned.tif
                        -mnhi /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/source_data/MNH_cleaned.tif
                        -out  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/UrbanAtlas.shp
                        -uac  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/UrbanAtlas_cleaned.shp
                        -bo   /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/bati.shp
                        -ro   /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/routes.shp
                        -clao /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/classif.tif
                        -mnso /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/MNS.tif
                        -mnho /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/destination_data/MNH.tif""")

    parser.add_argument('-emp', '--emprise_file', default="", help="Fichier d'emprise de la zone d'etude (vecteur).", type=str, required=True)
    parser.add_argument('-in', '--grid_input', default="", help="Fichier Urban Atlas d'origine (vecteur).", type=str, required=True)
    parser.add_argument('-bil', '--built_input_list', nargs="+", default=[], help="Liste des fichiers built de la BD TOPO a assembler (vecteurs).", type=str, required=True)
    parser.add_argument('-ril', '--roads_input_list', nargs="+", default=[], help="Liste des fichiers routes de la BD TOPO a traiter (vecteurs).", type=str, required=True)
    parser.add_argument('-clai', '--classif_input', default="", help="Classification OCS en entree (raster).", type=str, required=True)
    parser.add_argument('-mnsi', '--mns_input', default="", help="Modele numerique de surface en entree (raster).", type=str, required=True)
    parser.add_argument('-mnhi', '--mnh_input', default="", help="Modele numerique de hauteur en entree (raster).", type=str, required=True)
    parser.add_argument('-out', '--grid_output', default="", help="Fichier Urban Atlas prepare pour le calcul des indicateurs, complet (vecteur).", type=str, required=True)
    parser.add_argument('-uac', '--grid_output_cleaned', default="", help="Fichier Urban Atlas prepare pour le calcul des indicateurs, nettoye des polygones axes de communications et eau (vecteur).", type=str, required=True)
    parser.add_argument('-bo', '--built_output', default="", help="Fichier built prepare pour le calcul des indicateurs (vecteur).", type=str, required=True)
    parser.add_argument('-ro', '--roads_output', default="", help="Fichier routes prepare pour le calcul des indicateurs (vecteur).", type=str, required=True)
    parser.add_argument('-clao', '--classif_output', default="", help="Classification OCS decoupee (raster).", type=str, required=True)
    parser.add_argument('-mnso', '--mns_output', default="", help="Modele numerique de surface decoupe (raster).", type=str, required=True)
    parser.add_argument('-mnho', '--mnh_output', default="", help="Modele numerique de hauteur decoupe (raster).", type=str, required=True)
    parser.add_argument('-code', '--col_code_ua', default="CODE201", help="Nom de la colonne 'code' du fichier Urban Atlas.", type=str, required=False)
    parser.add_argument('-item', '--col_item_ua', default="ITEM201", help="Nom de la colonne 'item' du fichier Urban Atlas.", type=str, required=False)
    parser.add_argument('-epsg','--epsg', default=2154, help="Option : Type output image projection (EPSG),by default the same projection as the input images", type=int, required=False)
    parser.add_argument('-ndv','--no_data_value', default=-1, help="Option : Value of the pixel no data. By default : -1", type=int, required=False)
    parser.add_argument('-raf','--format_raster', default="GTiff", help="Option : Format output image, by default : GTiff (GTiff, HFA...)", type=str, required=False)
    parser.add_argument('-vef','--format_vector', default="ESRI Shapefile",help="Format of the output file.", type=str, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-vee','--extension_vector',default=".shp",help="Option : Extension file for vector. By default : '.shp'", type=str, required=False)
    parser.add_argument('-log', '--path_time_log', default="", help="Name of log", type=str, required=False)
    parser.add_argument('-sav', '--save_results_intermediate', default=False, action='store_true', help="Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now', '--overwrite', action='store_false', default=True, help="Overwrite files with same names. By default, True", required=False)
    parser.add_argument('-debug', '--debug', default=3, help="Option : Value of level debug trace, default : 3", type=int, required=False)
    args = displayIHM(gui, parser)

    if args.emprise_file!= None:
        emprise_file = args.emprise_file

    if args.grid_input!= None:
        grid_input = args.grid_input

    if args.built_input_list!= None:
        built_input_list = args.built_input_list
    if args.roads_input_list!= None:
        roads_input_list = args.roads_input_list

    if args.classif_input!= None:
        classif_input = args.classif_input
    if args.mns_input!= None:
        mns_input = args.mns_input
    if args.mnh_input!= None:
        mnh_input = args.mnh_input

    if args.grid_output!= None:
        grid_output = args.grid_output
    if args.grid_output_cleaned!= None:
        grid_output_cleaned = args.grid_output_cleaned

    if args.built_output!= None:
        built_output = args.built_output
    if args.roads_output!= None:
        roads_output = args.roads_output

    if args.classif_output!= None:
        classif_output = args.classif_output
    if args.mns_output!= None:
        mns_output = args.mns_output
    if args.mnh_output!= None:
        mnh_output = args.mnh_output

    if args.col_code_ua!= None:
        col_code_ua = args.col_code_ua
    if args.col_item_ua!= None:
        col_item_ua = args.col_item_ua

    # Paramètre valeur de la projection des images de sorties
    if args.epsg != None:
        epsg = args.epsg

    # Parametres de valeur du nodata des fichiers de sortie
    if args.no_data_value!= None:
        no_data_value = args.no_data_value

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du format du fichier de sortie
    if args.format_vector != None :
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    # Récupération de l'option de sauvegarde des fichiers intermédiaires
    if args.save_results_intermediate != None:
        save_results_intermediate = args.save_results_intermediate

    # Récupération de l'option écrasement
    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "Calcul du pourcentage de surface bâtie :" + endC)
        print(cyan + "DataPreparation : " + endC + "emprise_file : " + str(emprise_file) + endC)
        print(cyan + "DataPreparation : " + endC + "grid_input : " + str(grid_input) + endC)
        print(cyan + "DataPreparation : " + endC + "built_input_list : " + str(built_input_list) + endC)
        print(cyan + "DataPreparation : " + endC + "roads_input_list : " + str(roads_input_list) + endC)
        print(cyan + "DataPreparation : " + endC + "classif_input : " + str(classif_input) + endC)
        print(cyan + "DataPreparation : " + endC + "mns_input : " + str(mns_input) + endC)
        print(cyan + "DataPreparation : " + endC + "mnh_input : " + str(mnh_input) + endC)
        print(cyan + "DataPreparation : " + endC + "grid_output : " + str(grid_output) + endC)
        print(cyan + "DataPreparation : " + endC + "grid_output_cleaned : " + str(grid_output_cleaned) + endC)
        print(cyan + "DataPreparation : " + endC + "built_output : " + str(built_output) + endC)
        print(cyan + "DataPreparation : " + endC + "roads_output : " + str(roads_output) + endC)
        print(cyan + "DataPreparation : " + endC + "classif_output : " + str(classif_output) + endC)
        print(cyan + "DataPreparation : " + endC + "mns_output : " + str(mns_output) + endC)
        print(cyan + "DataPreparation : " + endC + "mnh_output : " + str(mnh_output) + endC)
        print(cyan + "DataPreparation : " + endC + "col_code_ua : " + str(col_code_ua) + endC)
        print(cyan + "DataPreparation : " + endC + "col_item_ua : " + str(col_item_ua) + endC)
        print(cyan + "DataPreparation : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "DataPreparation : " + endC + "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "DataPreparation : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "DataPreparation : " + endC + "format_raster : " + str(format_raster) + endC)
        print(cyan + "DataPreparation : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "DataPreparation : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "DataPreparation : " + endC + "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "DataPreparation : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "DataPreparation : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "DataPreparation : " + endC + "debug : " + str(debug) + endC)

    if not os.path.exists(os.path.dirname(grid_output)):
        os.makedirs(os.path.dirname(grid_output))
    if not os.path.exists(os.path.dirname(grid_output_cleaned)):
        os.makedirs(os.path.dirname(grid_output_cleaned))
    if not os.path.exists(os.path.dirname(built_output)):
        os.makedirs(os.path.dirname(built_output))
    if not os.path.exists(os.path.dirname(roads_output)):
        os.makedirs(os.path.dirname(roads_output))
    if not os.path.exists(os.path.dirname(classif_output)):
        os.makedirs(os.path.dirname(classif_output))
    if not os.path.exists(os.path.dirname(mns_output)):
        os.makedirs(os.path.dirname(mns_output))
    if not os.path.exists(os.path.dirname(mnh_output)):
        os.makedirs(os.path.dirname(mnh_output))

    vectorsPreparation(emprise_file, classif_input, grid_input, built_input_list, roads_input_list, grid_output, grid_output_cleaned, built_output, roads_output, col_code_ua, col_item_ua, epsg, path_time_log, format_vector, extension_vector, save_results_intermediate, overwrite)
    rastersPreparation(emprise_file, classif_input, mns_input, mnh_input, classif_output, mns_output, mnh_output, epsg, no_data_value, path_time_log, format_raster, format_vector, extension_raster, extension_vector, save_results_intermediate, overwrite)
def main(gui=False):

    # Définition des différents paramètres du parser
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="MacroSamplesCutting",
        description="\
    Info : Cutting macro sample mack with hold vector file. \n\
    Objectif : Découper des fichiers raster. \n\
    Example : python MacroSamplesCutting.py -i /mnt/hgfs/Data_Image_Saturn/CUB_zone_test_NE_1/Macro/CUB_zone_test_NE_Bati.tif \n\
                                     -o /mnt/hgfs/Data_Image_Saturn/CUB_zone_test_NE_1/Macro/CUB_zone_test_NE_Bati_mask.tif \n\
                                     -v /mnt/Data/gilles.fouvet/RA/Rhone/Global/Preparation/Landscapes_Boundaries/Paysage_01.shp \n\
                                     -spos \n\
                                     -r mnt/Data/gilles.fouvet/RA/Rhone/Global/Images/Paysages_dep69_01_buf1Km/Paysages_dep69_01_buf1Km_20110502.tif \n\
                                     -log /mnt/hgfs/Data_Image_Saturn/CUB_zone_test_NE_1/fichierTestLog.txt"
    )

    parser.add_argument('-i',
                        '--image_input',
                        default="",
                        help="Image input to cut",
                        type=str,
                        required=True)
    parser.add_argument(
        '-v',
        '--vector_input',
        default="",
        help="Vector input contain the vector to cut image output.",
        type=str,
        required=True)
    parser.add_argument('-o',
                        '--image_output',
                        default="",
                        help="Mask raster image output.",
                        type=str,
                        required=True)
    parser.add_argument(
        '-spos',
        '--superposition',
        action='store_true',
        default=False,
        help=
        "If asks superpose image output to reference image (reference_image must be filled). By default, False",
        required=False)
    parser.add_argument('-r',
                        '--reference_image',
                        default="",
                        help="Refence raster image.",
                        type=str,
                        required=False)
    parser.add_argument(
        "-epsg",
        '--epsg',
        default=0,
        help=
        "Option : Projection parameter of data if 0 used projection of raster file",
        type=int,
        required=False)
    parser.add_argument(
        "-ndv",
        '--no_data_value',
        default=0,
        help="Option pixel value for raster file to no data, default : 0 ",
        type=int,
        required=False)
    parser.add_argument(
        '-raf',
        '--format_raster',
        default="GTiff",
        help="Option : Format output image, by default : GTiff (GTiff, HFA...)",
        type=str,
        required=False)
    parser.add_argument('-vef',
                        '--format_vector',
                        default="ESRI Shapefile",
                        help="Format of the output file.",
                        type=str,
                        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError(cyan + "MacroSamplesCutting : " + bold + red +
                            "File %s not existe!" % (image_input) + endC)

    # Récupération du vecteur
    if args.vector_input != None:
        vector_input = args.vector_input
        if not os.path.isfile(vector_input):
            raise NameError(cyan + "MacroSamplesCutting : " + bold + red +
                            "File %s not existe!" % (vector_input) + endC)

    # Récupération du fichier de sortie
    if args.image_output != None:
        image_output = args.image_output

    # Paramettre de projection
    if args.epsg != None:
        epsg = args.epsg

    # Paramettre des no data
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # option de superposition avec l'image de référence
    if args.superposition != None:
        superposition = args.superposition

    # Récupération du fichier de référence
    if args.reference_image != None:
        reference_image = args.reference_image
        if reference_image != "" and not os.path.isfile(reference_image):
            raise NameError(cyan + "MacroSamplesCutting : " + bold + red +
                            "File %s not existe!" % (reference_image) + endC)

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du format des vecteurs de sortie
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option écrasement
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "MacroSamplesCutting : Variables dans le parser" +
              endC)
        print(cyan + "MacroSamplesCutting : " + endC + "image_input : " +
              str(image_input) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "vector_input : " +
              str(vector_input) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "image_output : " +
              str(image_output) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "superposition : " +
              str(superposition) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "reference_image : " +
              str(reference_image) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "epsg : " + str(epsg) +
              endC)
        print(cyan + "MacroSamplesCutting : " + endC + "no_data_value : " +
              str(no_data_value) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "extension_raster : " +
              str(extension_raster) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "MacroSamplesCutting : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "MacroSamplesCutting : " + endC + "debug : " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existent pas, on le crée
    repertory_output = os.path.dirname(image_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # execution de la fonction pour une image
    cutRasterSamples(image_input, vector_input, image_output, reference_image,
                     epsg, no_data_value, path_time_log, superposition,
                     format_raster, format_vector, extension_raster,
                     save_results_intermediate, overwrite)
Пример #4
0
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="QualityIndicatorComputation",
        description="\
    Info : To create a quality indicator file. \n\
    Objectif : Generer une matrice de confusion et analyser la matrice. \n\
    Example : python QualityIndicatorComputation.py -i ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw.tif \n\
                                                    -v ../ImagesTestChaine/APTV_05/Micro/APTV_05_cleaned.shp \n\
                                                    -ocm ../ImagesTestChaine/APTV_05/Micro/APTV_05_confusion_matrix.txt \n\
                                                    -oqi ../ImagesTestChaine/APTV_05/Micro/APTV_05_quality_indicators.csv \n\
                                                    -id id \n\
                                                    -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt"
    )

    # Paramètres
    parser.add_argument('-i',
                        '--image_input',
                        default="",
                        help="Image input result classification",
                        type=str,
                        required=True)
    parser.add_argument('-v',
                        '--vector_input',
                        default=None,
                        help="Vector input contain the validation samples",
                        type=str,
                        required=False)
    parser.add_argument('-s',
                        '--sample_input',
                        default=None,
                        help="Raster input contain the validation samples",
                        type=str,
                        required=False)
    parser.add_argument('-ocm',
                        '--conf_matrix_output',
                        default="",
                        help="File output confusion matrix file",
                        type=str,
                        required=True)
    parser.add_argument('-oqi',
                        '--quality_indic_output',
                        default="",
                        help="File output quality indicators file",
                        type=str,
                        required=True)
    parser.add_argument('-id',
                        '--validation_id',
                        default="id",
                        help="Label to identify the class",
                        type=str,
                        required=False)
    parser.add_argument(
        '-text',
        '--textures_list',
        nargs="+",
        default=None,
        help=
        "List of textures to use or calculate, (format : texture,channel,radius), ex. HaralickCorrelation,PIR,2",
        type=str,
        required=False)
    parser.add_argument(
        '-ndv',
        '--no_data_value',
        default=0,
        help=
        "Option in option optimize_emprise_nodata  : Value of the pixel no data. By default : 0",
        type=int,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError(cyan + "QualityIndicatorComputation : " + bold +
                            red + "File %s not existe!" % (image_input) + endC)

    # Récupération du fichier vecteur d'entrée d'echantillons de référence
    vector_input = None
    if args.vector_input != None:
        vector_input = args.vector_input
        if not os.path.isfile(vector_input):
            raise NameError(cyan + "QualityIndicatorComputation : " + bold +
                            red + "File %s not existe!" % (vector_input) +
                            endC)

    # Récupération du fichier raster d'entrée d'echantillons de référence
    sample_input = None
    if args.sample_input != None:
        sample_input = args.sample_input
        if vector_input != "" and not os.path.isfile(sample_input):
            raise NameError(cyan + "QualityIndicatorComputation : " + bold +
                            red + "File %s not existe!" % (sample_input) +
                            endC)

    if (vector_input == None or vector_input
            == "") and (sample_input == None or sample_input == ""):
        raise NameError(
            cyan + "QualityIndicatorComputation : " + bold + red +
            "Parameters 'vector_input' is emply and 'sample_input' is emply" +
            endC)

    # Récupération du fichier de sortie matrice de confusion
    if args.conf_matrix_output != None:
        conf_matrix_output = args.conf_matrix_output

    # Récupération du fichier de sortie indicateur de qualité
    if args.quality_indic_output != None:
        quality_indic_output = args.quality_indic_output

    # Récupération des arguments donnés
    if args.validation_id != None:
        validation_id_field = args.validation_id

    # Les listes textures
    if args.textures_list != None:
        tmp_text_list = args.textures_list
        textures_list = []
        for tmp_txt in tmp_text_list:
            info_text = []
            for text in tmp_txt.split(','):
                info_text.append(text)
            textures_list.append(info_text)
    else:
        textures_list = None

    # Récupération du parametre no_data_value
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "image_input : " + str(image_input) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "vector_input : " + str(vector_input) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "sample_input : " + str(sample_input) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "conf_matrix_output : " + str(conf_matrix_output) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "quality_indic_output : " + str(quality_indic_output) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "validation_id : " + str(validation_id_field) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "textures_list : " + str(textures_list) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "QualityIndicatorComputation : " + endC + "debug : " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si les dossier de sorties n'existent pas, on les crées
    repertory_output = os.path.dirname(conf_matrix_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    repertory_output = os.path.dirname(quality_indic_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # Execution du calcul des indicateurs pour une image
    computeQualityIndicator(image_input, vector_input, sample_input,
                            conf_matrix_output, quality_indic_output,
                            validation_id_field, textures_list, no_data_value,
                            path_time_log, overwrite)
Пример #5
0
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="DataBaseSuperposition",
        description="\
    Info : Add BD exo to classification. \n\
    Objectif : Permet d'enrichir le resultat de la classification avec une superposition d'element provement de BD Exogenes a fin d'ameliorer le resultat final. \n\
    Example : python DataBaseSuperposition.py -i ../ImagesTestChaine/APTV_06/Resultats/APTV_06_classif.tif \n\
                                              -o ../ImagesTestChaine/APTV_06/Resultats/APTV_06_classif_final.tif \n\
                                              -classBd 11000:../ImagesTestChaine/APTV_06/BD/ROUTE_74.shp:../ImagesTestChaine/APTV_06/BD/BATI_INDIFFERENCIE_74.shp \n\
                                                       12200:../ImagesTestChaine/APTV_06/BD/SURFACE_EAU_74.shp \n\
                                              -log ../ImagesTestChaine/APTV_06/fichierTestLog.txt"
    )

    # Paramètres généraux
    parser.add_argument('-i',
                        '--image_input',
                        default="",
                        help="Image classification input to add data",
                        type=str,
                        required=True)
    parser.add_argument(
        '-o',
        '--image_output',
        default="",
        help="Image classification output result additional bd data",
        type=str,
        required=True)
    parser.add_argument(
        '-classBd',
        '--class_file_dico',
        default="",
        nargs="+",
        help=
        "Dictionary of class containt bd, (format : classeLabel:[BDfile][..]), ex. 11000:../ImagesTestChaine/APTV_06/BD/ROUTE_74.shp,../ImagesTestChaine/APTV_06/BD/BATI_INDIFFERENCIE_74.shp 12200:../ImagesTestChaine/APTV_06/BD/SURFACE_EAU_74.shp",
        type=str,
        required=True)
    parser.add_argument(
        '-classBuf',
        '--class_buffer_dico',
        default="",
        nargs="+",
        help=
        "Dictionary of class containt buffer, (format : classeLabel:[sizeBuffer][..]), ex. 11000:3,5.0,,7 12200:0,",
        type=str,
        required=False)
    parser.add_argument(
        '-classSql',
        '--class_sql_dico',
        default="",
        nargs="+",
        help=
        "Dictionary of class containt sql request, (format : classeLabel:[SqlRequest][..]), ex. 11000:NATURE ='Autoroute' OR NATURE ='Route 2 Chausses',NATURE ='Route 2 Chausses' 12200:NATURE = 'Lac naturel'",
        type=str,
        required=False)
    parser.add_argument(
        '-simp',
        '--simple_param_vector',
        default=10.0,
        help="Parameter of polygons simplification. By default : 10.0",
        type=float,
        required=False)
    parser.add_argument('-vef',
                        '--format_vector',
                        default="ESRI Shapefile",
                        help="Format of the output file.",
                        type=str,
                        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        help="Option : Extension file for vector. By default : '.shp'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError(cyan + "DataBaseSuperposition : " + bold + red +
                            "File %s not existe!" % (image_input) + endC)

    # Récupération de l'image de sortie
    if args.image_output != None:
        image_output = args.image_output

    # Creation de dictionaire table macro class contenant les fichiers dela BD
    class_file_dico = {}
    if args.class_file_dico != None:
        class_file_dico_tmp = extractDico(args.class_file_dico)
        for ident_class in class_file_dico_tmp:
            class_file_dico[ident_class] = class_file_dico_tmp[ident_class][0]

    # Creation de dictionaire table macro class contenant les buffers
    class_buffer_dico = {}
    if args.class_buffer_dico != None:
        class_buffer_dico_tmp = extractDico(args.class_buffer_dico)
        for ident_class in class_buffer_dico_tmp:
            class_buffer_dico[ident_class] = class_buffer_dico_tmp[
                ident_class][0]

    # Creation de dictionaire table macro class contenant les requettes SQL
    if args.class_sql_dico != None:
        class_sql_dico_str = ""
        for str_dico in args.class_sql_dico:
            class_sql_dico_str += str_dico + " "
        class_sql_dico_list = class_sql_dico_str.split(":")
        class_sql_dico = {}
        idex_elem = 0
        while idex_elem < len(class_sql_dico_list):
            class_sql_dico[class_sql_dico_list[idex_elem]] = cleanSpaceText(
                class_sql_dico_list[idex_elem + 1]).split(",")
            idex_elem += 2

    # Simplifie_param param
    if args.simple_param_vector != None:
        simplifie_param = args.simple_param_vector

    # Récupération du format des vecteurs de sortie
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "image_input : " +
              str(image_input) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "image_output : " +
              str(image_output) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "class_file_dico : " +
              str(class_file_dico) + endC)
        print(cyan + "DataBaseSuperposition : " + endC +
              "class_buffer_dico : " + str(class_buffer_dico) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "class_sql_dico : " +
              str(class_sql_dico) + endC)
        print(cyan + "DataBaseSuperposition : " + endC +
              "simple_param_vector : " + str(simplifie_param) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "DataBaseSuperposition : " + endC +
              "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "DataBaseSuperposition : " + endC +
              "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "DataBaseSuperposition : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "overwrite: " +
              str(overwrite) + endC)
        print(cyan + "DataBaseSuperposition : " + endC + "debug: " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existe pas, on le crée
    repertory_output = os.path.dirname(image_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # Execution de la fonction pour une image
    addDataBaseExo(image_input, image_output, class_file_dico,
                   class_buffer_dico, class_sql_dico, path_time_log,
                   format_vector, extension_raster, extension_vector,
                   save_results_intermediate, overwrite, simplifie_param)
Пример #6
0
def main(gui=False):

    parser = argparse.ArgumentParser(prog="TDCKmeans",
                                     description=" \
    Info : Creating an shapefile (.shp) containing the coastline extracted from a satellite image, by kmeans method.\n\
    Objectif   : Extrait le trait de côte par la méthode des k-means à partir d'une image satellite et de l'identification des polygones mer. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/TDCKmeans.py \n\
                    -pathi /mnt/Donnees_Etudes/20_Etudes/Mediterranee/2Miseenforme/Images_Paysages/Images_individuelles_ass/emprise_image_opti_0824_ass_20140222.tif \n\
                    -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Tests/Tests_TDCKmeans_0824 \n\
                    -mer /mnt/Donnees_Etudes/20_Etudes/Mediterranee/2Miseenforme/Mer.shp \n\
                    -nbc 6 \n\
                    -d /mnt/Donnees_Etudes/20_Etudes/Mediterranee/2Miseenforme/decoupe_zone_interet.shp"
                                     )

    parser.add_argument('-pathi',
                        '--input_images',
                        default="",
                        nargs="+",
                        help="List of raw images for the treatment (.tif).",
                        type=str,
                        required=True)
    parser.add_argument('-outd',
                        '--output_dir',
                        default="",
                        help="Output directory.",
                        type=str,
                        required=True)
    parser.add_argument(
        '-mer',
        '--input_sea_points',
        default="",
        help="Input vector file containing points in the sea (.shp).",
        type=str,
        required=True)
    parser.add_argument(
        '-d',
        '--input_cut_vector',
        default="",
        help="Vector file containing shape of the area to keep (.shp).",
        type=str,
        required=True)
    parser.add_argument(
        '-nbc',
        '--nb_classes',
        default=5,
        help="Nombre de classes pour la classification k-means.",
        type=int,
        required=False)
    parser.add_argument(
        '-ndv',
        '--no_data_value',
        default=0,
        help="Option : Value of the pixel no data. By default : 0",
        type=int,
        required=False)
    parser.add_argument('-epsg',
                        '--epsg',
                        default=2154,
                        help="EPSG code projection.",
                        type=int,
                        required=False)
    parser.add_argument(
        '-raf',
        '--format_raster',
        default="GTiff",
        help=
        "Option : Format output image raster. By default : GTiff (GTiff, HFA...)",
        type=str,
        required=False)
    parser.add_argument(
        '-vef',
        '--format_vector',
        default="ESRI Shapefile",
        help="Option : Vector format. By default : ESRI Shapefile",
        type=str,
        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        help="Option : Extension file for vector. By default : '.shp'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Option : Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Option : Overwrite files with same names. By default : True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # Récupération de la liste des images à traiter
    if args.input_images != None:
        input_images = args.input_images

    # Récupération du dossier des traitements en sortie
    if args.output_dir != None:
        output_dir = args.output_dir

    # Récupération de la couche points mer
    if args.input_sea_points != None:
        input_sea_points = args.input_sea_points

    # Récupération du shapefile de découpe
    if args.input_cut_vector != None:
        input_cut_vector = args.input_cut_vector

    # Récupération du nombre de classes
    if args.nb_classes != None:
        nb_classes = args.nb_classes

    # Récupération du parametre no_data_value
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    # Récupération du code EPSG de la projection du shapefile trait de côte
    if args.epsg != None:
        epsg = args.epsg

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "TDCKmeans : " + endC + "input_images : " +
              str(input_images) + endC)
        print(cyan + "TDCKmeans : " + endC + "output_dir : " +
              str(output_dir) + endC)
        print(cyan + "TDCKmeans : " + endC + "input_sea_points : " +
              str(input_sea_points) + endC)
        print(cyan + "TDCKmeans : " + endC + "input_cut_vector : " +
              str(input_cut_vector) + endC)
        print(cyan + "TDCKmeans : " + endC + "nb_classes : " +
              str(nb_classes) + endC)
        print(cyan + "TDCKmeans : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "TDCKmeans : " + endC + "no_data_value : " +
              str(no_data_value) + endC)
        print(cyan + "TDCKmeans : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "TDCKmeans : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "TDCKmeans : " + endC + "extension_raster : " +
              str(extension_raster) + endC)
        print(cyan + "TDCKmeans : " + endC + "extension_vector : " +
              str(extension_vector) + endC)
        print(cyan + "TDCKmeans : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "TDCKmeans : " + endC + "save_results_intermediate : " +
              str(save_results_intermediate) + endC)
        print(cyan + "TDCKmeans : " + endC + "overwrite : " + str(overwrite) +
              endC)
        print(cyan + "TDCKmeans : " + endC + "debug : " + str(debug) + endC)

    # Fonction générale
    runTDCKmeans(input_images, output_dir, input_sea_points, input_cut_vector,
                 no_data_value, path_time_log, nb_classes, epsg, format_raster,
                 format_vector, extension_raster, extension_vector,
                 save_results_intermediate, overwrite)
def main(gui=False):

    parser = argparse.ArgumentParser(prog="PrepareData", description=" \
    Info : Creating an image from an raw image mosaic (.tif, .ecw, .jp2, .asc), an emprise file (.shp) and a buffer (.shp).\n\
    Objectif   : Assemble et découpe des images raster comprises dans l'enveloppe optimale de l'intersection d'un buffer et d'un polygone. \n\
    Example : python PrepareData.py -b /mnt/Data/blandine.decherf/TDC_national/buffer_5000.shp \n\
                                       -p /mnt/Data/blandine.decherf/paysages/paysages2.shp \n\
                                       -outd /mnt/Data/blandine.decherf/Results \n\
                                       -pathi /mnt/Data/blandine.decherf/Orthos/ORT_2014022238763074_LA93 \n\
                                       -idp nom_poly")

    parser.add_argument('-b','--input_buffer_tdc', default="",help="Input buffer, format shape (.shp).", type=str, required=True)
    parser.add_argument('-p','--input_paysage', default="",help="Input paysage vector, format shape (.shp).", type=str, required=True)
    parser.add_argument('-outd','--output_dir', default="",help="Output directory", type=str, required=True)
    parser.add_argument('-idp','--id_paysage', default="RefDossier",help="Column identifying each paysage", type=str, required=False)
    parser.add_argument('-idn','--id_name_sub_rep', default="NomImage",help="Column identifying each sub repertory contain imagettes", type=str, required=False)
    parser.add_argument('-pathi','--input_repertories_list',default=[], nargs="+", help="Liste storage directory of sources raw images (.tif, .ecw, .jp2, .asc), can be several directories",type=str, required=True)
    parser.add_argument('-opt', '--optimization_zone', action='store_true', default=False, help="Option : The study zone intersecte buffer shape and paysage shape. By default : False", required=False)
    parser.add_argument('-nc', '--no_cover', action='store_true', default=False, help="Option : The images are assembled with no covering between them. By default : False", required=False)
    parser.add_argument('-z', '--zone_date', action='store_true', default=False, help="Option : The images are assembled by area date shooting, a result picture by date. Not used with option no_cover. By default : False", required=False)
    parser.add_argument('-sepn','--separname', default="_", help="Acquisition date in the name, information separator (For example : '_'). By default : '_'", type=str, required=False)
    parser.add_argument('-posd','--posdate', default=2, help="Acquisition date in the name, position relative to the information separator (For example : 3). By default : 2", type=int, required=False)
    parser.add_argument('-nbcd','--nbchardate', default=8, help="Acquisition date in the name, number of characters constituting the date (For example : 10). By default : 8", type=int, required=False)
    parser.add_argument('-sepd','--separdate', default="", help="Acquisition date in the name, the date separator in information (For example : '-'). By default : ''", type=str, required=False)
    parser.add_argument('-epsg','--epsg', default=2154,help="Projection of the output file.", type=int, required=False)
    parser.add_argument('-raf','--format_raster', default="GTiff", help="Option : Format output image, by default : GTiff (GTiff, HFA...)", type=str, required=False)
    parser.add_argument('-vef','--format_vector',default="ESRI Shapefile",help="Option : Vector format. By default : ESRI Shapefile", type=str, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-vee','--extension_vector',default=".shp",help="Option : Extension file for vector. By default : '.shp'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Option : Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Option : Overwrite files with same names. By default : True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # Récupération de la donnée en entrée (ligne)
    if args.input_buffer_tdc != None :
        input_buffer_tdc = args.input_buffer_tdc

    # Récupération des paysages en entrée
    if args.input_paysage != None :
        input_paysage = args.input_paysage

    # Récupération du chemin des images en sortie
    if args.output_dir != None :
        output_dir = args.output_dir

    # Récupération de la colonne identifiant le paysage
    if args.id_paysage != None :
        id_paysage = args.id_paysage

    # Récupération de la colonne identifiant le sous repertoire
    if args.id_name_sub_rep != None :
        id_name_sub_rep = args.id_name_sub_rep

    # Paramètres des répertoires d'images d'entrée
    if args.input_repertories_list != None:
        input_repertories_list = args.input_repertories_list

    # Optimization zone buffer et paysage
    if args.optimization_zone != None:
        optimization_zone = args.optimization_zone

    # Assemblage sans recouvrement
    if args.no_cover != None:
        no_cover = args.no_cover

    # Assemblage par date
    if args.zone_date != None:
        zone_date = args.zone_date

    # Paramètres de la date
    if args.separname != None:
        separname = args.separname

    if args.posdate != None:
        posdate = args.posdate

    if args.nbchardate != None:
        nbchardate = args.nbchardate

    if args.separdate != None:
        separdate = args.separdate

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de la projection du fichier de sortie
    if args.epsg != None :
        epsg = args.epsg

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "PrepareData : " + endC + "input_buffer_tdc : " + str(input_buffer_tdc) + endC)
        print(cyan + "PrepareData : " + endC + "input_paysage : " + str(input_paysage) + endC)
        print(cyan + "PrepareData : " + endC + "output_dir : " + str(output_dir) + endC)
        print(cyan + "PrepareData : " + endC + "id_paysage : " + str(id_paysage) + endC)
        print(cyan + "PrepareData : " + endC + "id_name_sub_rep : " + str(id_name_sub_rep) + endC)
        print(cyan + "PrepareData : " + endC + "input_repertories_list : " + str(input_repertories_list) + endC)
        print(cyan + "PrepareData : " + endC + "optimization_zone : " + str(optimization_zone) + endC)
        print(cyan + "PrepareData : " + endC + "no_cover : " + str(no_cover) + endC)
        print(cyan + "PrepareData : " + endC + "zone_date : " + str(zone_date) + endC)
        print(cyan + "PrepareData : " + endC + "separname : " + str(separname) + endC)
        print(cyan + "PrepareData : " + endC + "posdate : " + str(posdate) + endC)
        print(cyan + "PrepareData : " + endC + "nbchardate : " + str(nbchardate) + endC)
        print(cyan + "PrepareData : " + endC + "separdate : " + str(separdate) + endC)
        print(cyan + "PrepareData : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "PrepareData : " + endC + "format_raster : " + str(format_raster) + endC)
        print(cyan + "PrepareData : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "PrepareData : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "PrepareData : " + endC + "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "PrepareData : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "PrepareData : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "PrepareData : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "PrepareData : " + endC + "debug: " + str(debug) + endC)

    # Fonction générale
    prepareData(input_buffer_tdc, input_paysage, output_dir, input_repertories_list, id_paysage, id_name_sub_rep, epsg, optimization_zone, no_cover, zone_date, separname, posdate, nbchardate, separdate, path_time_log, format_raster, format_vector, extension_raster, extension_vector, save_results_intermediate, overwrite)
Пример #8
0
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, prog="TableModifierCreation", description="\
    Info : Create table modification macro class. \n\
    Objectif : Creer une table de proposition de reafectation des micro classes a partir des indicateurs de qualite. \n\
    Example : python TableModifierCreation.py -cl ../ImagesTestChaine/APTV_05/Micro/APTV_05_Anthropise_centroid.txt \n\
                                                  ../ImagesTestChaine/APTV_05/Micro/APTV_05_Ligneux_centroid.txt \n\
                                              -v ../ImagesTestChaine/APTV_05/Micro/APTV_05_cleaned.shp \n\
                                              -icm ../ImagesTestChaine/APTV_05/Micro/APTV_05_confusion_matrix.txt \n\
                                              -iqi ../ImagesTestChaine/APTV_05/Micro/APTV_05_quality_indicators.csv \n\
                                              -t ../ImagesTestChaine/APTV_05/Micro/APTV_05_prop_tab.txt \n\
                                              -label 11000 21000 \n\
                                              -ram 0.1 -tdp 0.2 -tap 0.5 \n\
                                              -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt")

    # Paramètres
    parser.add_argument('-cl','--centroid_input_list',default=[],nargs="+",help="List of input centroid file of micro class entrainement.", type=str, required=False)
    parser.add_argument('-v','--vector_input',default="",help="Vector input contain the entrainement sample", type=str, required=True)
    parser.add_argument('-icm','--conf_matrix_input',default="",help="File input confusion matrix file", type=str, required=True)
    parser.add_argument('-iqi','--quality_indic_input',default="",help="File intput quality indicators file", type=str, required=True)
    parser.add_argument('-t','--proposal_table_output',default="",help="Proposal table output to realocation micro class", type=str, required=True)
    parser.add_argument('-label','--class_label_list',default="",nargs="+",help="List containt label class, ex. 11000 12200", type=int, required=True)
    parser.add_argument('-ram','--rate_area_min',default=0.1,help="Suppression threshold microclass comprising too few pixels (in percentage of the average area of the same macro microclass). By default : 0.1", type=float, required=False)
    parser.add_argument('-tdp','--threshold_delete_perf',default=0.2,help="Suppression threshold too bad microclass (minimum value of the performance index of the class). By default : 0.2", type=float, required=False)
    parser.add_argument('-tap','--threshold_alert_perf',default=0.5,help="Verification threshold of bad microclass (minimum value of the performance index of the class). By default : 0.5", type=float, required=False)
    parser.add_argument('-vef','--format_vector', default="ESRI Shapefile",help="Format of the output file.", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Overwrite files with same names. By default, True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération des fichiers centroides de sortie
    if args.centroid_input_list!= None:
        centroid_input_list=args.centroid_input_list
        for centroid_input in centroid_input_list :
            if not os.path.isfile(centroid_input):
                raise NameError (cyan + "TableModifierCreation : " + bold + red  + "File %s not existe!" %(centroid_input) + endC)


    # Récupération du fichier vecteur d'entrée
    if args.vector_input != None:
        vector_input = args.vector_input
        if not os.path.isfile(vector_input):
            raise NameError (cyan + "TableModifierCreation : " + bold + red  + "File %s not existe!" %(vector_input) + endC)

     # Récupération du fichier de sortie matrice de confusion
    if args.conf_matrix_input != None:
        conf_matrix_input = args.conf_matrix_input
        if not os.path.isfile(conf_matrix_input):
            raise NameError (cyan + "TableModifierCreation : " + bold + red  + "File %s not existe!" %(conf_matrix_input) + endC)

    # Récupération du fichier de sortie indicateur de qualité
    if args.quality_indic_input != None:
        quality_indic_input = args.quality_indic_input
        if not os.path.isfile(quality_indic_input):
            raise NameError (cyan + "TableModifierCreation : " + bold + red  + "File %s not existe!" %(quality_indic_input) + endC)

    # Récupération de la table de proposition de sortie
    if args.proposal_table_output != None:
        proposal_table_output = args.proposal_table_output

    # Recuperation des infos sur les macroclasses
    # creation de la liste macro class - label
    if args.class_label_list != None:
        class_label_list = args.class_label_list

    # Recuperation des seuils
    if args.rate_area_min != None:
       rate_area_min = args.rate_area_min

    if args.threshold_delete_perf != None:
       threshold_delete_perf = args.threshold_delete_perf

    if args.threshold_alert_perf != None:
        threshold_alert_perf = args.threshold_alert_perf

    # Récupération du format des vecteurs de sortie
    if args.format_vector != None :
        format_vector = args.format_vector

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "TableModifierCreation : " + endC + "centroid_input_list : " + str(centroid_input_list) + endC)
        print(cyan + "TableModifierCreation : " + endC + "vector_input : " + str(vector_input) + endC)
        print(cyan + "TableModifierCreation : " + endC + "conf_matrix_input : " + str(conf_matrix_input) + endC)
        print(cyan + "TableModifierCreation : " + endC + "quality_indic_input : " + str(quality_indic_input) + endC)
        print(cyan + "TableModifierCreation : " + endC + "proposal_table_output : " + str(proposal_table_output) + endC)
        print(cyan + "TableModifierCreation : " + endC + "class_label_list : " + str(class_label_list) + endC)
        print(cyan + "TableModifierCreation : " + endC + "rate_area_min : " + str(rate_area_min) + endC)
        print(cyan + "TableModifierCreation : " + endC + "threshold_delete_perf : " + str(threshold_delete_perf) + endC)
        print(cyan + "TableModifierCreation : " + endC + "threshold_alert_perf : " + str(threshold_alert_perf) + endC)
        print(cyan + "TableModifierCreation : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "TableModifierCreation : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "TableModifierCreation : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "TableModifierCreation : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "TableModifierCreation : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION

    # Si le dossier de sortie n'existe pas, on le crée
    repertory_output = os.path.dirname(proposal_table_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # creer la table de proposition
    createTableModifier(centroid_input_list, quality_indic_input, conf_matrix_input, vector_input, class_label_list, proposal_table_output, path_time_log, rate_area_min, threshold_delete_perf, threshold_alert_perf, format_vector, save_results_intermediate, overwrite)
def main(gui=False):
    parser = argparse.ArgumentParser(prog = "Classification LCZ Cerema", description = "\
    Méthode opérationnelle de classification LCZ à partir de données satellite. \n\
    Exemple : python3 -m ClassificationLczOperational -in  /mnt/RAM_disk/LCZ/segmentation_urbaine.shp \n\
                                                      -hre /mnt/RAM_disk/LCZ/indicateur_HRE.shp \n\
                                                      -ocs /mnt/RAM_disk/LCZ/indicateurs_OCS.shp \n\
                                                      -out /mnt/RAM_disk/LCZ/classification_LCZ.shp")

    parser.add_argument('-in', '--input_division', default="", type=str, required=True, help="Input morphological division vector file.")
    parser.add_argument('-hre', '--input_hre', default="", type=str, required=True, help="Input HRE indicator vector file.")
    parser.add_argument('-ocs', '--input_ocs', default="", type=str, required=True, help="Input OCS indicators vector file.")
    parser.add_argument('-out', '--output_lcz', default="", type=str, required=True, help="Output LCZ classification vector file.")
    parser.add_argument('-id', '--id_field', default="id", type=str, required=False, help="Name of the ID field in the input morphological division vector file. Default: 'id'.")
    parser.add_argument('-epsg', '--epsg', default=2154, type=int, required=False, help="Projection of the output file. Default: 2154.")
    parser.add_argument('-vef', '--format_vector', default="ESRI Shapefile", type=str, required=False, help="Format of vector files. Default: 'ESRI Shapefile'.")
    parser.add_argument('-pgh', '--postgis_ip_host', default="localhost", type=str, required=False, help="PostGIS server name or IP adress. Default: 'localhost'.")
    parser.add_argument('-pgp', '--postgis_num_port', default=5432, type=int, required=False, help="PostGIS port number. Default: '5432'.")
    parser.add_argument('-pgu', '--postgis_user_name', default="postgres", type=str, required=False, help="PostGIS user name. Default: 'postgres'.")
    parser.add_argument('-pgw', '--postgis_password', default="postgres", type=str, required=False, help="PostGIS user password. Default: 'postgres'.")
    parser.add_argument('-pgd', '--postgis_database_name', default="lcz_db", type=str, required=False, help="PostGIS database name. Default: 'lcz_db'.")
    parser.add_argument('-pgs', '--postgis_schema_name', default="public", type=str, required=False, help="PostGIS schema name. Default: 'public'.")
    parser.add_argument('-pge', '--postgis_encoding', default="UTF-8", type=str, required=False, help="PostGIS encoding for vector import. Default: 'UTF-8'.")
    parser.add_argument('-log', '--path_time_log', default="", type=str, required=False, help="Option: Name of log. Default, no log file.")
    parser.add_argument('-sav', '--save_results_intermediate', action='store_true', default=False, required=False, help="Option: Save intermediate result after the process. Default, False.")
    parser.add_argument('-now', '--overwrite', action='store_false', default=True, required=False, help="Option: Overwrite files with same names. Default, True.")
    parser.add_argument('-debug', '--debug', default=3, type=int, required=False, help="Option: Value of level debug trace. Default, 3.")
    args = displayIHM(gui, parser)

    # Récupération des fichiers d'entrée
    if args.input_division != None:
        input_division = args.input_division
        if not os.path.isfile(input_division):
            raise NameError (cyan + "ClassificationLczOperational: " + bold + red  + "File %s not exists (input_division)." % input_division + endC)
    if args.input_hre != None:
        input_hre = args.input_hre
        if not os.path.isfile(input_hre):
            raise NameError (cyan + "ClassificationLczOperational: " + bold + red  + "File %s not exists (input_hre)." % input_hre + endC)
    if args.input_ocs != None:
        input_ocs = args.input_ocs
        if not os.path.isfile(input_ocs):
            raise NameError (cyan + "ClassificationLczOperational: " + bold + red  + "File %s not exists (input_ocs)." % input_ocs + endC)

    # Récupération du fichier de sortie
    if args.output_lcz != None:
        output_lcz = args.output_lcz

    # Récupération du paramètre ID
    if args.id_field != None:
        id_field = args.id_field

    # Récupération des paramètres fichiers
    if args.epsg != None:
        epsg = args.epsg
    if args.format_vector != None:
        format_vector = args.format_vector

    # Récupération des paramètres PostGIS
    if args.postgis_ip_host != None:
        postgis_ip_host = args.postgis_ip_host
    if args.postgis_num_port != None:
        postgis_num_port = args.postgis_num_port
    if args.postgis_user_name != None:
        postgis_user_name = args.postgis_user_name
    if args.postgis_password != None:
        postgis_password = args.postgis_password
    if args.postgis_database_name != None:
        postgis_database_name = args.postgis_database_name
    if args.postgis_schema_name != None:
        postgis_schema_name = args.postgis_schema_name
    if args.postgis_encoding != None:
        postgis_encoding = args.postgis_encoding

    # Récupération des paramètres généraux
    if args.path_time_log != None:
        path_time_log = args.path_time_log
    if args.save_results_intermediate != None:
        save_results_intermediate = args.save_results_intermediate
    if args.overwrite != None:
        overwrite = args.overwrite
    if args.debug != None:
        global debug
        debug = args.debug

    if os.path.isfile(output_lcz) and not overwrite:
        raise NameError (cyan + "ClassificationLczOperational: " + bold + red  + "File %s already exists, and overwrite is not activated." % output_lcz + endC)

    if debug >= 3:
        print('\n' + bold + green + "Classification LCZ Cerema - Variables dans le parser :" + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "input_division : " + str(input_division) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "input_hre : " + str(input_hre) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "input_ocs : " + str(input_ocs) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "output_lcz : " + str(output_lcz) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "id_field : " + str(id_field) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "postgis_ip_host : " + str(postgis_ip_host) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "postgis_num_port : " + str(postgis_num_port) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "postgis_user_name : " + str(postgis_user_name) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "postgis_password : "******"    ClassificationLczOperational : " + endC + "postgis_database_name : " + str(postgis_database_name) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "postgis_schema_name : " + str(postgis_schema_name) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "postgis_encoding : " + str(postgis_encoding) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "    ClassificationLczOperational : " + endC + "debug : " + str(debug) + endC + '\n')

    # Création du dossier de sortie, s'il n'existe pas
    if not os.path.isdir(os.path.dirname(output_lcz)):
        os.makedirs(os.path.dirname(output_lcz))

    # EXECUTION DES FONCTIONS
    classificationLczSql(input_division, input_hre, input_ocs, output_lcz, id_field, epsg, format_vector, postgis_ip_host, postgis_num_port, postgis_user_name, postgis_password, postgis_database_name, postgis_schema_name, postgis_encoding, path_time_log, save_results_intermediate, overwrite)
Пример #10
0
def main(gui=False):

    parser = argparse.ArgumentParser(prog="BDToSamples", description=" \
    Info : Creating an shapefile (.shp) containing the macroclasses from the database shapefiles.\n\
    Objectif   : Traite et assemble des shapefiles de bases de données exogènes pour en faire des macroclasses, qui seront utilisées pour une classification. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/BDToSamples.py \n\
                -pathi /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/image2.tif \n\
                -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Tests/Tests_BDToSample_1008 \n\
                -dico sample_foret:20000,2,/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/BDTopo/N_ZONE_VEGETATION_BDT_030.SHP,0,NDVI,0.3,1 sample_mer:12200,1,/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/CLC_LanRou/CLC06_R91_mer.shp,-70,NDWI2,0.15,0.8 sample_artif:11000,2,/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/BDTopo/N_BATI_INDIFFERENCIE_BDT_030.SHP,0 sample_sable:12100,1,/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/apprentissable.shp,0 \n\
                -ind /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/image_NDVI_image2.tif /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/im_NDWI2_image2.tif.py")

    parser.add_argument('-pathi','--input_image', default="",help="Input image for the treatment(.tif).", type=str, required=True)
    parser.add_argument('-outd','--output_dir', default="",help="Output directory.", type=str, required=True)
    parser.add_argument('-dico','--input_bd_buff_dico', default="", nargs="+", help="Dictionnary associating the name of the macroclass with its properties.", type=str, required=True)
    parser.add_argument('-ind','--input_index_images_list', default="", nargs="+", help="List of index images (NDVI and NDWI2) to improve the result of the microclasses.", type=str, required=False)
    parser.add_argument('-pe','--project_encoding',default="UTF-8",help="Option : Format for the encoding. By default : UTF-8", type=str, required=False)
    parser.add_argument('-epsg','--epsg',default=2154,help="Option : Projection EPSG for the layers. By default : 2154", type=int, required=False)
    parser.add_argument('-ndv','--no_data_value', default=0, help="Option in option optimize_emprise_nodata  : Value of the pixel no data. By default : 0", type=int, required=False)
    parser.add_argument('-vef','--format_vector',default="ESRI Shapefile",help="Option : Vector format. By default : ESRI Shapefile", type=str, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-vee','--extension_vector',default=".shp",help="Option : Extension file for vector. By default : '.shp'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Option : Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Option : Overwrite files with same names. By default : True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)

    args = displayIHM(gui, parser)

    # Récupération de l'image à traiter
    if args.input_image != None :
        input_image = args.input_image

    # Récupération du dossier des traitements en sortie
    if args.output_dir != None :
        output_dir = args.output_dir

    # Récupération du dictionnaire
    if args.input_bd_buff_dico != None :
        input_bd_buff_dico = args.input_bd_buff_dico

    # Récupération de la liste des images index
    if args.input_index_images_list != None :
        input_index_images_list = args.input_index_images_list

    # Récupération de la projection
    if args.epsg != None:
        epsg = args.epsg

    # Récupération de l'encodage des fichiers
    if args.project_encoding != None:
        project_encoding = args.project_encoding

    # Récupération du parametre no_data_value
    if args.no_data_value!= None:
        no_data_value = args.no_data_value

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "BDToSamples : " + endC + "input_image : " + str(input_image) + endC)
        print(cyan + "BDToSamples : " + endC + "output_dir : " + str(output_dir) + endC)
        print(cyan + "BDToSamples : " + endC + "input_bd_buff_dico : " + str(input_bd_buff_dico) + endC)
        print(cyan + "BDToSamples : " + endC + "input_index_images_list : " + str(input_index_images_list) + endC)
        print(cyan + "BDToSamples : " + endC + "project_encoding : " + str(project_encoding) + endC)
        print(cyan + "BDToSamples : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "BDToSamples : " + endC + "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "BDToSamples : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "BDToSamples : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "BDToSamples : " + endC + "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "BDToSamples : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "BDToSamples : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "BDToSamples : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "BDToSamples : " + endC + "debug : " + str(debug) + endC)

    # Fonction générale
    BDToSamples(input_image, output_dir, input_bd_buff_dico, input_index_images_list, no_data_value, path_time_log, project_encoding, epsg, format_vector, extension_raster, extension_vector, save_results_intermediate, overwrite)
Пример #11
0
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter,  prog="SpecificSubSampling", description="\
    Info : Automatic subsampling of class, from raster. \n\
    Objectif : Sous echantillonage de certaines classes d'une OSC raster identifiées par le label -2 d'une table de reaffectation. \n\
    Example : python SpecificSubSampling.py -i ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw.tif \n\
                                            -c ../ImagesTestChaine/APTV_05/Micro/APTV_05_classif.tif \n\
                                            -t ../ImagesTestChaine/APTV_05/Micro/APTV_05_prop_tab.txt \n\
                                            -o ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw2.tif \n\
                                            -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt")

    # Paramètres
    parser.add_argument('-i','--satellite_image_input',help="Satellite Image input to treat", type=str, required=True)
    parser.add_argument('-c','--classified_image_input',help="Classified Image input to treat", type=str, required=True)
    parser.add_argument('-t','--table_reallocation',help="Proposal table input to realocation micro class", type=str, required=True)
    parser.add_argument('-o','--image_output',default="",help="Image output re-allocated . Warning!!! if is empty the classified input image file is modified.", type=str, required=False)
    parser.add_argument('-nss','--sub_sampling_number',default=3,help="Defaut number of sub sampling class. Default = 3", type=int, required=False)
    parser.add_argument('-npt','--number_of_actives_pixels_threshold',default=8000,help="Number of minimum training size for kmeans. Default = 8000 * Nb de sous classes", type=int, required=False)
    parser.add_argument('-rand','--rand_otb',default=0,help="User defined seed for random KMeans", type=int, required=False)
    parser.add_argument('-ram','--ram_otb',default=0,help="Ram available for processing otb applications (in MB)", type=int, required=False)
    parser.add_argument('-ndv','--no_data_value', default=0, help="Option in option optimize_emprise_nodata  : Value of the pixel no data. By default : 0", type=int, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Overwrite files with same names. By default, True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS
    # Récupération de l'image satellite d'entrée
    if args.satellite_image_input != None:
        satellite_image_input = args.satellite_image_input
        if not os.path.isfile(satellite_image_input):
            raise NameError (cyan + "SpecificSubSampling : " + bold + red  + "File %s not existe!" %(satellite_image_input) + endC)

    # Récupération de l'image classifiée d'entrée
    if args.classified_image_input != None:
        classified_image_input = args.classified_image_input
        if not os.path.isfile(classified_image_input):
            raise NameError (cyan + "SpecificSubSampling : " + bold + red  + "File %s not existe!" %(classified_image_input) + endC)

    # Récupération de la table de proposition d'entrée
    if args.table_reallocation != None:
        table_reallocation = args.table_reallocation
        if not os.path.isfile(table_reallocation):
            raise NameError (cyan + "SpecificSubSampling : " + bold + red  + "File %s not existe!" %(table_reallocation) + endC)

    # Récupération de l'image de sortie
    if args.image_output != None:
        image_output = args.image_output
        if image_output == "":
            image_output = classified_image_input

    # Récupération du nombre de sous echantions à effectuer
    if args.sub_sampling_number != None:
        sub_sampling_number = args.sub_sampling_number

    # Récupération du nombre minimum de pixels pour effectuer le kmeans
    if args.number_of_actives_pixels_threshold != None:
        number_of_actives_pixels_threshold = args.number_of_actives_pixels_threshold

    # Récupération du parametre no_data_value
    if args.no_data_value!= None:
        no_data_value = args.no_data_value

    # Récupération du parametre rand
    if args.rand_otb != None:
        rand_otb = args.rand_otb

    # Récupération du parametre ram
    if args.ram_otb != None:
        ram_otb = args.ram_otb

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "SpecificSubSampling : " + endC + "satellite_image_input : " + str(satellite_image_input) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "classified_image_input : " + str(classified_image_input) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "table_reallocation : " + str(table_reallocation) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "image_output : " + str(image_output) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "sub_sampling_number : " + str(sub_sampling_number) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "number_of_actives_pixels_threshold : " + str(number_of_actives_pixels_threshold) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "rand_otb : " + str(rand_otb) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "ram_otb : " + str(ram_otb) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "SpecificSubSampling : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existe pas, on le crée
    if image_output != None:
        repertory_output = os.path.dirname(image_output)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    # reallocation
    classRasterSubSampling(satellite_image_input, classified_image_input, image_output, table_reallocation, sub_sampling_number, no_data_value, path_time_log, rand_otb, ram_otb, number_of_actives_pixels_threshold, extension_raster, save_results_intermediate, overwrite)
def main(gui=False):

    parser = argparse.ArgumentParser(prog="PolygonMerToTDC", description=" \
    Info : Creating an shapefile (.shp) containing the coastline jet de rive from sea identification (points) and vectorized binary mask terre/mer, extracted with a threshold method.\n\
    Objectif   : Extrait le trait de côte jet de rive à partir d'un masque binaire terre/mer et de l'identification des polygones mer. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/PolygonMerToTDC.py \n\
                    -ind \"/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/image1.tif:/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/Result2/temp_PolygonMerToTDC/bin_mask_vect_image1_-0.415.shp /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/image2.tif:/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/Result2/temp_PolygonMerToTDC/bin_mask_vect_image2_-0.211.shp,/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/Result2/temp_PolygonMerToTDC/bin_mask_vect_image2_-0.421.shp\" \n\
                    -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Tests/Tests_PolygonMerToTDC \n\
                    -mer /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/points_mer.shp \n\
                    -d /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/08_Donnees/Histolitt/TCH_simplifie2_buffer270_adapte_mediterranee_simpl200.shp \n\
                    -fctbmv")

    parser.add_argument('-ind','--input_im_ndvi_dico', default="", help="Dictionnary of input images (.tif) and binary mask vectors (terre/mer) associated.", type=str, required=True)
    parser.add_argument('-outd','--output_dir', default="",help="Output directory.", type=str, required=True)
    parser.add_argument('-mer','--input_sea_points', default="",help="Input vector file containing points in the sea (.shp).", type=str, required=True)
    parser.add_argument('-fctbmv','--fct_bin_mask_vect', action='store_true', default=False, help="True if binary mask calculated thanks to binary Mask Vect (a first process has been done with TDCSeuil for example).", required=False)
    parser.add_argument('-simp','--simplif', default=1, help="Value for simplification of the coastline", type=float, required=False)
    parser.add_argument('-d','--input_cut_vector', default="", help="Vector file containing shape of the area to keep (.shp).", type=str, required=True)
    parser.add_argument('-bp','--buf_pos', default=3.5, help="Value (meters) for the positive buffer (float).", type=float, required=False)
    parser.add_argument('-bn','--buf_neg', default=-3.5, help="Value (meters) for the negative buffer (float).", type=float, required=False)
    parser.add_argument('-epsg','--epsg',default=2154,help="Option : Projection EPSG for the layers. By default : 2154", type=int, required=False)
    parser.add_argument('-ndv','--no_data_value', default=0, help="Option : Value of the pixel no data. By default : 0", type=int, required=False)
    parser.add_argument('-vef','--format_vector',default="ESRI Shapefile",help="Option : Vector format. By default : ESRI Shapefile", type=str, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-vee','--extension_vector',default=".shp",help="Option : Extension file for vector. By default : '.shp'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Option : Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Option : Overwrite files with same names. By default : True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # Récupération du dictionnaire images/seuils à traiter
    if args.input_im_ndvi_dico != None :
        input_im_ndvi_dico = args.input_im_ndvi_dico

    # Récupération du dossier des traitements en sortie
    if args.output_dir != None :
        output_dir = args.output_dir

    # Récupération de la couche points mer
    if args.input_sea_points != None :
        input_sea_points = args.input_sea_points

    # Récupération de la valeur de fct_bin_mask_vect
    if args.fct_bin_mask_vect != None :
        fct_bin_mask_vect = args.fct_bin_mask_vect

    # Récupération de la valeur de tolérence pour la simplifiaction du trait de côte obtenu
    if args.simplif != None :
        simplif = args.simplif

    # Récupération du shapefile de découpe
    if args.input_cut_vector != None :
        input_cut_vector = args.input_cut_vector

    # Récupération de la valeur (m) pour le buffer positif
    if args.buf_pos != None :
        buf_pos = args.buf_pos

    # Récupération de la valeur (m) pour le buffer négatif
    if args.buf_neg != None :
        buf_neg = args.buf_neg

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération de la projection
    if args.epsg != None:
        epsg = args.epsg

    # Récupération du parametre no_data_value
    if args.no_data_value!= None:
        no_data_value = args.no_data_value

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "polygonMerToTDC : " + endC + "input_im_ndvi_dico : " + str(input_im_ndvi_dico) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "output_dir : " + str(output_dir) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "input_sea_points : " + str(input_sea_points) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "fct_bin_mask_vect : " + str(fct_bin_mask_vect) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "simplif : " + str(simplif) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "input_cut_vector : " + str(input_cut_vector) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "buf_pos : " + str(buf_pos) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "buf_neg : " + str(buf_neg) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "polygonMerToTDC : " + endC + "debug : " + str(debug) + endC)

    # Fonction générale
    polygonMerToTDC(input_im_ndvi_dico, output_dir, input_sea_points, fct_bin_mask_vect, simplif, input_cut_vector, buf_pos, buf_neg, no_data_value, path_time_log, epsg, format_vector, extension_raster, extension_vector, save_results_intermediate, overwrite)
def main(gui=False):

    # Définition des différents paramètres du parser
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="PansharpeningAssembly",
        description="\
    Info : Assembly panchro image and XS image to one image. \n\
    Objectif : Assembler une image partie panchro et XS separes. \n\
    Example : python PansharpeningAssembly.py -ip /mnt/Data/10_Agents_travaux_en_cours/Gilles/Test_appli_PansharpeningAssembly/IMG_S7P_2015092536255065CP.tif \n\
                                     -ixs /mnt/Data/10_Agents_travaux_en_cours/Gilles/Test_appli_PansharpeningAssembly/IMG_S7X_2015092536255066CP.tif \n\
                                     -o /mnt/Data/10_Agents_travaux_en_cours/Gilles/Test_appli_PansharpeningAssembly/Image_P_and_XS_assembled.tif \n\
                                     -methi bco \n\
                                     -methp bayes \n\
                                     -log /mnt/Data/10_Agents_travaux_en_cours/Gilles/Test_appli_PansharpeningAssembly/fichierTestLog.txt"
    )

    parser.add_argument('-ip',
                        '--image_panchro_input',
                        default="",
                        help="Panchro image input.",
                        type=str,
                        required=True)
    parser.add_argument('-ixs',
                        '--image_xs_input',
                        default="",
                        help="XS image input.",
                        type=str,
                        required=True)
    parser.add_argument('-o',
                        '--image_output',
                        default="",
                        help="Assembly image output.",
                        type=str,
                        required=True)
    parser.add_argument(
        '-modi',
        '--mode_interpolation',
        default="default",
        help=
        "Mode interpolation used (Choice of : 'Default mode (default)', 'Pleiades mode (phr)'). By default, 'default'.",
        type=str,
        required=False)
    parser.add_argument(
        '-methi',
        '--method_interpolation',
        default="bco",
        help=
        "Algo method interpolation used (Choice of : 'Bicubic interpolation (bco)', 'Nearest Neighbor interpolation (nn)', 'Linear interpolation (linear)'). By default, 'bco'.",
        type=str,
        required=False)
    parser.add_argument(
        '-methp',
        '--method_pansharpening',
        default="bayes",
        help=
        "Algo metode pansharpening used (Choice of : 'Simple RCS (rcs)', 'Local Mean and Variance Matching (lmvm)', 'Bayesian (bayes)'). By default, 'bayes'.",
        type=str,
        required=False)
    parser.add_argument('-interp.bco.r',
                        '--interpolation_bco_radius',
                        default=2,
                        help="Radius for bicubic interpolation parameter",
                        type=int,
                        required=False)
    parser.add_argument(
        '-pansh.lmvm.rx',
        '--pansharpening_lmvm_xradius',
        default=3,
        help="X radius coefficient, methode lmvm pansharpening parameter",
        type=int,
        required=False)
    parser.add_argument(
        '-pansh.lmvm.ry',
        '--pansharpening_lmvm_yradius',
        default=3,
        help="Y radius coefficient, methode lmvm pansharpening parameter",
        type=int,
        required=False)
    parser.add_argument(
        '-pansh.bayes.lb',
        '--pansharpening_bayes_lambda',
        default=0.9999,
        help="Weight lambda coefficient, methode bayes pansharpening parameter",
        type=float,
        required=False)
    parser.add_argument(
        '-pansh.bayes.s',
        '--pansharpening_bayes_s',
        default=1.0,
        help="S coefficient, methode bayes pansharpening parameter",
        type=float,
        required=False)
    parser.add_argument(
        '-ram',
        '--ram_otb',
        default=0,
        help="Ram available for processing otb applications (in MB)",
        type=int,
        required=False)
    parser.add_argument(
        '-raf',
        '--format_raster',
        default="GTiff",
        help="Option : Format output image, by default : GTiff (GTiff, HFA...)",
        type=str,
        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image panchro d'entrée
    if args.image_panchro_input != None:
        image_panchro_input = args.image_panchro_input
        if not os.path.isfile(image_panchro_input):
            raise NameError(cyan + "PansharpeningAssembly : " + bold + red +
                            "File %s not existe!" % (image_panchro_input) +
                            endC)

    # Récupération de l'image xs d'entrée
    if args.image_xs_input != None:
        image_xs_input = args.image_xs_input
        if not os.path.isfile(image_xs_input):
            raise NameError(cyan + "PansharpeningAssembly : " + bold + red +
                            "File %s not existe!" % (image_xs_input) + endC)

    # Récupération du fichier de sortie
    if args.image_output != None:
        image_output = args.image_output

    # Récupération du parametre mode interpolation
    if args.mode_interpolation != None:
        mode_interpolation = args.mode_interpolation

    # Récupération du parametre methode interpolation
    if args.method_interpolation != None:
        method_interpolation = args.method_interpolation

    # Récupération du parametre methode pansharpening
    if args.method_pansharpening != None:
        method_pansharpening = args.method_pansharpening

    # Récupération du parametre radius pour l'interpolation bicubic
    if args.interpolation_bco_radius != None:
        interpolation_bco_radius = args.interpolation_bco_radius

    # Récupération du parametre x radius pour le pensharpening lmvm
    if args.pansharpening_lmvm_xradius != None:
        pansharpening_lmvm_xradius = args.pansharpening_lmvm_xradius

    # Récupération du parametre y radius pour le pensharpening lmvm
    if args.pansharpening_lmvm_yradius != None:
        pansharpening_lmvm_yradius = args.pansharpening_lmvm_yradius

    # Récupération du parametre lambda pour le pensharpening bayes
    if args.pansharpening_bayes_lambda != None:
        pansharpening_bayes_lambda = args.pansharpening_bayes_lambda

    # Récupération du parametre s pour le pensharpening bayes
    if args.pansharpening_bayes_s != None:
        pansharpening_bayes_s = args.pansharpening_bayes_s

    # Récupération du parametre ram
    if args.ram_otb != None:
        ram_otb = args.ram_otb

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option écrasement
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green +
              "PansharpeningAssembly : Variables dans le parser" + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "image_panchro_input : " + str(image_panchro_input) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "image_xs_input : " +
              str(image_xs_input) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "image_output : " +
              str(image_output) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "mode_interpolation : " + str(mode_interpolation) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "method_interpolation : " + str(method_interpolation) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "method_pansharpening : " + str(method_pansharpening) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "interpolation_bco_radius : " + str(interpolation_bco_radius) +
              endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "pansharpening_lmvm_xradius : " +
              str(pansharpening_lmvm_xradius) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "pansharpening_lmvm_yradius : " +
              str(pansharpening_lmvm_yradius) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "pansharpening_bayes_lambda : " +
              str(pansharpening_bayes_lambda) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "pansharpening_bayes_s : " + str(pansharpening_bayes_s) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "ram_otb : " +
              str(ram_otb) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "PansharpeningAssembly : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "PansharpeningAssembly : " + endC + "debug : " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existent pas, on le crée
    repertory_output = os.path.dirname(image_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # Execution de la fonction pour une image
    assembleImagePansharpening(
        image_panchro_input, image_xs_input, image_output, mode_interpolation,
        method_interpolation, method_pansharpening, interpolation_bco_radius,
        pansharpening_lmvm_xradius, pansharpening_lmvm_yradius,
        pansharpening_bayes_lambda, pansharpening_bayes_s, path_time_log,
        ram_otb, format_raster, extension_raster, save_results_intermediate,
        overwrite)
Пример #14
0
def main(gui=False):

    # Définition des différents paramètres du parser
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="SendMail",
        description="\
    Info : Send a message by mail since address sender to address receiver. \n\
    Objectif : Envoyer un message par e mail. \n\
    Example : python SendMail.py -adrs [email protected] \n\
                                 -adrr [email protected] \n\
                                 -serv smtp.m2.e2.rie.gouv.fr \n\
                                 -port 25 \n\
                                 -pass xxxxx \n\
                                 -subj sujet_du_message \n\
                                 -msg Conenu_du_message \n\
                                 -log /mnt/hgfs/Data_Image_Saturn/fichierTestLog.txt"
    )

    parser.add_argument('-adrs',
                        '--address_mail_sender',
                        default="",
                        help="Address mail of the sender",
                        type=str,
                        required=True)
    parser.add_argument('-adrr',
                        '--address_mail_receiver',
                        default="",
                        help="Address mail of the receiver",
                        type=str,
                        required=True)
    parser.add_argument(
        '-serv',
        '--server_mail',
        default="",
        help="Address url of the server SNMP ex: smtp.gmail.com",
        type=str,
        required=True)
    parser.add_argument('-port',
                        '--port_server',
                        default=0,
                        help="Number of port of server mail. By default : '0'",
                        type=int,
                        required=True)
    parser.add_argument('-pass',
                        '--password_mail_sender',
                        default="",
                        help="Password mail of the sender",
                        type=str,
                        required=False)
    parser.add_argument('-subj',
                        '--subject_of_message',
                        default="",
                        help="The subject of message",
                        type=str,
                        required=True)
    parser.add_argument('-msg',
                        '--message_to_send',
                        default="",
                        help="The message to send",
                        type=str,
                        required=True)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'adresse mail d'envoi
    if args.address_mail_sender != None:
        address_mail_sender = args.address_mail_sender

    # Récupération de l'adresse mail du receveur
    if args.address_mail_receiver != None:
        address_mail_receiver = args.address_mail_receiver

    # Récupération de l'adresse du sever SNMP
    if args.server_mail != None:
        server_mail = args.server_mail

    # Récupération du port du sever SNMP
    if args.port_server != None:
        port_server = args.port_server

    # Récupération du mot de passe de connexion
    if args.password_mail_sender != None:
        password_mail_sender = args.password_mail_sender

    # Récupération du sujet du message
    if args.message_to_send != None:
        message_to_send = args.message_to_send

    # Récupération du message à envoyer
    if args.subject_of_message != None:
        subject_of_message = args.subject_of_message

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option écrasement
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "SendMail : Variables dans le parser" + endC)
        print(cyan + "SendMail : " + endC + "address_mail_sender : " +
              str(address_mail_sender) + endC)
        print(cyan + "SendMail : " + endC + "address_mail_receiver : " +
              str(address_mail_receiver) + endC)
        print(cyan + "SendMail : " + endC + "server_mail : " +
              str(server_mail) + endC)
        print(cyan + "SendMail : " + endC + "port_server : " +
              str(port_server) + endC)
        print(cyan + "SendMail : " + endC + "password_mail_sender : " +
              str(password_mail_sender) + endC)
        print(cyan + "SendMail : " + endC + "message_to_send : " +
              str(message_to_send) + endC)
        print(cyan + "SendMail : " + endC + "subject_of_message : " +
              str(subject_of_message) + endC)
        print(cyan + "SendMail : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "SendMail : " + endC + "save_results_inter : " +
              str(save_results_intermediate) + endC)
        print(cyan + "SendMail : " + endC + "overwrite : " + str(overwrite) +
              endC)
        print(cyan + "SendMail : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION

    # execution de la fonction
    sendMail(address_mail_sender, address_mail_receiver, server_mail,
             port_server, password_mail_sender, subject_of_message,
             message_to_send, path_time_log, save_results_intermediate,
             overwrite)
def main(gui=False):

    parser = argparse.ArgumentParser(prog="DetectionOuvrages",
                                     description=" \
    Info : Creating a shapefile (.shp) the structures of the coastline, extracted by buffer or Sobel method and coastline potentially calculated thanks to jet de rive method (TDCSeuil).\n\
    Objectif   : Extrait les ouvrages en mer par la méthode des buffers, celle de Sobel ou une combinaison de leurs deux résultats. Possibilité de calculer le trait de côte jet de rive avant la méthode des buffers. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/DetectionOuvrages.py \n\
                    -dico /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/Result/tdc_simplif_1_image1_-0.2.shp:12,-14 \n\
                    -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Tests/Tests_DetectionOuvrages_1 \n\
                    -meth b \n\
                    -d /mnt/Donnees_Etudes/20_Etudes/Mediterranee/2Miseenforme/decoupe_zone_interet.shp"
                                     )

    parser.add_argument(
        '-dico',
        '--input_dico',
        default="",
        nargs="+",
        help=
        "Dictionnary containing images and thresholds, different for each use case : consult documentation of the 'chaine littoral'.",
        type=str,
        required=True)
    parser.add_argument('-outd',
                        '--output_dir',
                        default="",
                        help="Output directory.",
                        type=str,
                        required=True)
    parser.add_argument('-d',
                        '--input_cut_vector',
                        default="",
                        help="Cutting file.",
                        type=str,
                        required=True)
    parser.add_argument(
        '-mer',
        '--input_sea_points',
        default="",
        help="Input vector file containing points in the sea (.shp).",
        type=str,
        required=False)
    parser.add_argument(
        '-meth',
        '--method',
        default="",
        help=
        "Method for ouvrages detection : b for buffers, s for Sobel, bs for a combination of both.",
        type=str,
        required=True)
    parser.add_argument(
        '-indb',
        '--im_indice_buffers',
        action='store_true',
        default=False,
        help=
        "True if the dictionnary contains an NDVI or calculated index image for jet de rive extraction.",
        required=False)
    parser.add_argument(
        '-inds',
        '--im_indice_sobel',
        action='store_true',
        default=False,
        help=
        "True if the dictionnary contains a NDWI2 image or calculated index image for Sobel structures extraction.",
        required=False)
    parser.add_argument(
        '-chao',
        '--channel_order',
        nargs="+",
        default=['Red', 'Green', 'Blue', 'NIR'],
        help=
        "Type of multispectral image : rapideye or spot6 or pleiade. By default : [Red,Green,Blue,NIR]",
        type=str,
        required=False)
    parser.add_argument(
        '-epsg',
        '--epsg',
        default=2154,
        help="Option : Projection EPSG for the layers. By default : 2154",
        type=int,
        required=False)
    parser.add_argument(
        '-ndv',
        '--no_data_value',
        default=0,
        help="Option : Value of the pixel no data. By default : 0",
        type=int,
        required=False)
    parser.add_argument(
        '-raf',
        '--format_raster',
        default="GTiff",
        help="Option : Format output image, by default : GTiff (GTiff, HFA...)",
        type=str,
        required=False)
    parser.add_argument(
        '-vef',
        '--format_vector',
        default="ESRI Shapefile",
        help="Option : Vector format. By default : ESRI Shapefile",
        type=str,
        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        help="Option : Extension file for vector. By default : '.shp'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Option : Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Option : Overwrite files with same names. By default : True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # Récupération du dictionnaire contenant images et seuils
    if args.input_dico != None:
        input_dico = args.input_dico

    # Récupération du dossier des traitements en sortie
    if args.output_dir != None:
        output_dir = args.output_dir

    # Récupération de la méthode pour détection des ouvrages
    if args.method != None:
        method = args.method

    # Récupération du shp des points dans la mer
    if args.input_sea_points != None:
        input_sea_points = args.input_sea_points

    # Récupération du fichier pour la découpe (suppression des artéfacts)
    if args.input_cut_vector != None:
        input_cut_vector = args.input_cut_vector

    # Récupération de la valeur du calcul de l'indice de l'image NDVI pour calcul jet de rive
    if args.im_indice_buffers != None:
        im_indice_buffers = args.im_indice_buffers

    # Récupération de la valeur du calcul de l'indice de l'image NDWI2 pour méthode Sobel
    if args.im_indice_sobel != None:
        im_indice_sobel = args.im_indice_sobel

    # Récupération de la valeur (vrai/faux) du calcul de l'image indice
    if args.is_calc_indice_image != None:
        is_calc_indice_image = args.is_calc_indice_image

    # Récupération de la projection
    if args.epsg != None:
        epsg = args.epsg

    # Récupération du parametre no_data_value
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "DetectionOuvrages : " + endC + "input_dico : " +
              str(input_dico) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "output_dir : " +
              str(output_dir) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "method : " +
              str(method) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "im_indice_buffers : " +
              str(im_indice_buffers) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "im_indice_sobel : " +
              str(im_indice_sobel) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "input_cut_vector : " +
              str(input_cut_vector) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "input_sea_points : " +
              str(input_sea_points) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "channel_order : " +
              str(channel_order) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "epsg : " + str(epsg) +
              endC)
        print(cyan + "DetectionOuvrages : " + endC + "no_data_value : " +
              str(no_data_value) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "channel_order: " +
              str(channel_order) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "extension_raster : " +
              str(extension_raster) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "extension_vector : " +
              str(extension_vector) + endC)
        print(cyan + "DetectionOuvrages : " + endC +
              "save_results_intermediate : " + str(save_results_intermediate) +
              endC)
        print(cyan + "DetectionOuvrages : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "DetectionOuvrages : " + endC + "debug : " + str(debug) +
              endC)

    # Fonction générale
    detectionOuvrages(input_dico, output_dir, method, im_indice_buffers,
                      im_indice_sobel, input_cut_vector, input_sea_points,
                      no_data_value, path_time_log, channel_order, epsg,
                      format_raster, format_vector, extension_raster,
                      extension_vector, save_results_intermediate, overwrite)
Пример #16
0
def main(gui=False):

    # Définition des différents paramètres du parser
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="ReceiveFTP",
        description="\
    Info : Receive data by protocol FTP since address FTP server \n\
    Objectif : Recevoir des données par FTP. \n\
    Example : python ReceiveFTP.py -serv 172.22.128.197 \n\
                                 -port 21 \n\
                                 -login DterMedr \n\
                                 -pass xxxxx \n\
                                 -path DterMed \n\
                                 -dest /mnt/Data/gilles.fouvet/Test_FTP \n\
                                 -err /mnt/Data/gilles.fouvet/Test_FTP/listFilesDownload.err \n\
                                 -log /mnt/Data/gilles.fouvet/Test_FTP/fileTest.log"
    )

    parser.add_argument(
        '-serv',
        '--server_ftp',
        default="",
        help="Address url of the server FTP ex: 172.22.128.197",
        type=str,
        required=True)
    parser.add_argument(
        '-port',
        '--port_ftp',
        default=21,
        help="Number of port of server mail. By default : '20'",
        type=int,
        required=False)
    parser.add_argument('-login',
                        '--login_ftp',
                        default="",
                        help="Login ftp of connection",
                        type=str,
                        required=True)
    parser.add_argument('-pass',
                        '--password_ftp',
                        default="",
                        help="Password ftp of connection",
                        type=str,
                        required=True)
    parser.add_argument(
        '-path',
        '--path_ftp',
        default=".",
        help=
        "The path ftp of data source.  By default, directory of connection",
        type=str,
        required=False)
    parser.add_argument('-dest',
                        '--local_path',
                        default=".",
                        help="The local path to save data. By default, '.'",
                        type=str,
                        required=False)
    parser.add_argument('-err',
                        '--file_error',
                        default="listFiles.err",
                        help="Name of file error",
                        type=str,
                        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'adresse du sever FTP
    if args.server_ftp != None:
        server_ftp = args.server_ftp

    # Récupération du port du sever FTP
    if args.port_ftp != None:
        port_ftp = args.port_ftp

    # Récupération du login de connexion
    if args.login_ftp != None:
        login_ftp = args.login_ftp

    # Récupération du mot de passe de connexion
    if args.password_ftp != None:
        password_ftp = args.password_ftp

    # Récupération du chemin du répertoire ou du fichier à récupere
    if args.path_ftp != None:
        path_ftp = args.path_ftp

    # Récupération du chemin local pour l'écriture des données
    if args.local_path != None:
        local_path = args.local_path

    # Récupération du nom du fichier d'erreur
    if args.file_error != None:
        file_error = args.file_error
        if file_error == 'listFiles.err':
            file_error = local_path + os.sep + file_error

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option écrasement
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "ReceiveFTP : Variables dans le parser" + endC)
        print(cyan + "ReceiveFTP : " + endC + "server_ftp : " +
              str(server_ftp) + endC)
        print(cyan + "ReceiveFTP : " + endC + "port_ftp : " + str(port_ftp) +
              endC)
        print(cyan + "ReceiveFTP : " + endC + "login_ftp : " + str(login_ftp) +
              endC)
        print(cyan + "ReceiveFTP : " + endC + "password_ftp : " +
              str(password_ftp) + endC)
        print(cyan + "ReceiveFTP : " + endC + "path_ftp : " + str(path_ftp) +
              endC)
        print(cyan + "ReceiveFTP : " + endC + "local_path : " +
              str(local_path) + endC)
        print(cyan + "ReceiveFTP : " + endC + "file_error : " +
              str(file_error) + endC)
        print(cyan + "ReceiveFTP : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "ReceiveFTP : " + endC + "save_results_inter : " +
              str(save_results_intermediate) + endC)
        print(cyan + "ReceiveFTP : " + endC + "overwrite : " + str(overwrite) +
              endC)
        print(cyan + "ReceiveFTP : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existent pas, on le crée
    if not os.path.isdir(local_path + os.sep + path_ftp):
        os.makedirs(local_path + os.sep + path_ftp)

    # execution de la fonction
    receiveFtp(server_ftp, port_ftp, login_ftp, password_ftp, path_ftp,
               local_path, file_error, path_time_log,
               save_results_intermediate, overwrite)
def main(gui=False):

    # Définition des différents paramètres du parser
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="QualityMnsEstimation",
        description="\
    Info : Estimating the quality of mns image by bd réference. \n\
    Objectif : Estimer la qualiter d'une image de MNS en comparaison à des données issue de BD. \n\
    vector_cut_input : si ce parametre est absent alors on decoupe faite sur la base de l'emprise du MNS \n\
    Example : python QualityMnsEstimation.py -i /mnt/Data/gilles.fouvet/QualiteMNS/MNS/CUB_Nord_Est_MNS.tif \n\
                                     -v /mnt/Data/gilles.fouvet/QualiteMNS/Emprise/Emprise_CUB_zone_test_NE.shp \n\
                                     -pl /mnt/Data/gilles.fouvet/QualiteMNS/BD_Topo/ROUTE_PRIMAIRE_033.shp /mnt/Data/gilles.fouvet/QualiteMNS/BD_Topo/ROUTE_SECONDAIRE_033.shp \n\
                                     -al /mnt/Data/gilles.fouvet/QualiteMNS/Resultats/CUB_zone_test_NE_NDVI.tif:NDVI,-1.0,0.3 /mnt/Data/gilles.fouvet/QualiteMNS/Resultats/CUB_zone_test_NE_NDWI2.tif:NDWI2 \n\
                                     -o /mnt/Data/gilles.fouvet/QualiteMNS/Resultats/CUB_zone_test_NE_QualityMNS.shp \n\
                                     -log /mnt/Data/gilles.fouvet/QualiteMNS/fichierTestLog.txt"
    )

    parser.add_argument('-i',
                        '--image_input',
                        default="",
                        help="Image MNS input to qualify",
                        type=str,
                        required=True)
    parser.add_argument('-v',
                        '--vector_cut_input',
                        default=None,
                        help="Vector input define the sudy area.",
                        type=str,
                        required=False)
    parser.add_argument('-pl',
                        '--vector_sample_input_list',
                        nargs="+",
                        default="",
                        help="list of vector input of sample for comparaison.",
                        type=str,
                        required=False)
    parser.add_argument(
        '-p',
        '--vector_sample_points_input',
        default=None,
        help=
        "Vector input of sample points (Warning! replace vector_sample_input_list).",
        type=str,
        required=False)
    parser.add_argument(
        '-al',
        '--raster_input_dico',
        nargs="+",
        default="",
        help=
        "List of other raster input get value into vector output and colum name, threshold values min max. Exemple ndvi file and ndwi file",
        type=str,
        required=False)
    parser.add_argument(
        '-o',
        '--vector_output',
        default="",
        help="Vector output contain dots from the random draw into study area.",
        type=str,
        required=True)
    parser.add_argument(
        '-ndv',
        '--no_data_value',
        default=0,
        help="Option : Value of the pixel no data. By default : 0",
        type=int,
        required=False)
    parser.add_argument('-epsg',
                        '--epsg',
                        default=2154,
                        help="Projection of the output file.",
                        type=int,
                        required=False)
    parser.add_argument(
        '-raf',
        '--format_raster',
        default="GTiff",
        help="Option : Format output image, by default : GTiff (GTiff, HFA...)",
        type=str,
        required=False)
    parser.add_argument('-vef',
                        '--format_vector',
                        default="ESRI Shapefile",
                        help="Format of the output file.",
                        type=str,
                        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        help="Option : Extension file for vector. By default : '.shp'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError(cyan + "QualityMnsEstimation : " + bold + red +
                            "File %s not existe!" % (image_input) + endC)

    # Récupération du vecteur de decoupe
    vector_cut_input = None
    if args.vector_cut_input != None:
        vector_cut_input = args.vector_cut_input
        if vector_cut_input != "" and not os.path.isfile(vector_cut_input):
            raise NameError(cyan + "QualityMnsEstimation : " + bold + red +
                            "File %s not existe!" % (vector_cut_input) + endC)

    # Récupération de la liste des vecteurs d'échantillonage
    if args.vector_sample_input_list != None:
        vector_sample_input_list = args.vector_sample_input_list
        for vector_sample_input in vector_sample_input_list:
            if not os.path.isfile(vector_sample_input):
                raise NameError(cyan + "QualityMnsEstimation : " + bold + red +
                                "File %s not existe!" % (vector_sample_input) +
                                endC)

    # Récupération du vecteur d'échantillonage points
    vector_sample_points_input = None
    if args.vector_sample_points_input != None:
        vector_sample_points_input = args.vector_sample_points_input
        if vector_sample_points_input != "" and not os.path.isfile(
                vector_sample_points_input):
            raise NameError(cyan + "QualityMnsEstimation : " + bold + red +
                            "File %s not existe!" %
                            (vector_sample_points_input) + endC)

    # Récupération des fichiers d'entrése autres et de leur valeur de seuil
    if args.raster_input_dico != None:
        raster_input_dico = extractDico(args.raster_input_dico)
        for raster_input in raster_input_dico:
            if not os.path.isfile(raster_input):
                raise NameError(cyan + "QualityMnsEstimation : " + bold + red +
                                "File %s not existe!" % (raster_input) + endC)
            field_name = raster_input_dico[raster_input][0][0]
            if field_name == "" or len(field_name) > 10:
                raise NameError(cyan + "QualityMnsEstimation : " + bold + red +
                                "Field name %s not valide!" % (field_name) +
                                endC)

    # Récupération du fichier de sortie
    if args.vector_output != None:
        vector_output = args.vector_output

    # Récupération du parametre no_data_value
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # Récupération de la projection du fichier de sortie
    if args.epsg != None:
        epsg = args.epsg

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option écrasement
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green +
              "QualityMnsEstimation : Variables dans le parser" + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "image_input : " +
              str(image_input) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "vector_cut_input : " +
              str(vector_cut_input) + endC)
        print(cyan + "QualityMnsEstimation : " + endC +
              "vector_sample_input_list : " + str(vector_sample_input_list) +
              endC)
        print(cyan + "QualityMnsEstimation : " + endC +
              "vector_sample_points_input : " +
              str(vector_sample_points_input) + endC)
        print(cyan + "QualityMnsEstimation : " + endC +
              "raster_input_dico : " + str(raster_input_dico) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "vector_output : " +
              str(vector_output) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "no_data_value : " +
              str(no_data_value) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "epsg : " + str(epsg) +
              endC)
        print(cyan + "QualityMnsEstimation : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "extension_raster : " +
              str(extension_raster) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "extension_vector : " +
              str(extension_vector) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "QualityMnsEstimation : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "QualityMnsEstimation : " + endC + "debug : " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existent pas, on le crée
    repertory_output = os.path.dirname(vector_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # execution de la fonction pour une image
    estimateQualityMns(image_input, vector_cut_input, vector_sample_input_list,
                       vector_sample_points_input, raster_input_dico,
                       vector_output, no_data_value, path_time_log,
                       format_raster, epsg, format_vector, extension_raster,
                       extension_vector, save_results_intermediate, overwrite)
Пример #18
0
def main(gui=False):

    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, prog="ImageCompression", description=" \
    Info : Encoding image in GeoTIFF format 16bits into 8 bits and compression algorithms DEFLATE or LZW, allows to reduce the size of an image jusqua 10% of its original size. \n\
    DEFLATE algorithm, lossy compression. \n\
    LZW algorithm, lossless compression. \n\
    Detailed documentation of the parameters of GeoTiff here:  http://www.gdal.org/frmt_gtiff.html. \n\
    Objectif : Compresse des image raster (.tif) code en 16bits en codage 8bits. \n\
    Example : python ImageCompression.py -i ../ImagesTestChaine/APTV_05/APTV_05.tif \n\
                                         -o8b ../ImagesTestChaine/APTV_05/Compression/APTV_05_8Bits.tif \n\
                                         -ocp ../ImagesTestChaine/APTV_05/Compression/APTV_05_8Bits_compressed.tif \n\
                                         -cp DEFLATE -pr 2 -zl 3 -mn 0 -mx 0.1 -rvb -dt \n\
                                         -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt")

    parser.add_argument('-i','--image_input',default="",help="Images to treat.", type=str, required=True)
    parser.add_argument('-o8b','--image_output_8bits',default="",help="Image output of 8bits file need", type=str, required=False)
    parser.add_argument('-ocp','--image_output_compress',default="",help="Image output of compression file need, if image output of 8bits need, it is the 8bits image compresed", type=str, required=False)
    parser.add_argument('-cp','--compress', default="", help="By default no compression is done. If you enter the algorithm, you trigger the compression process. Type of compression algorithm. Chose between DEFLATE or LZW.", type=str, required=False)
    parser.add_argument('-pr','--predictor', default=2,help="Adjustment of the compression predictor LZW or DEFLATE. By default : 2 ", type=int, required=False)
    parser.add_argument('-zl','--zlevel', default=3, help="Adjustment of the compression ratio for compression DEFLATE. By default : 3 ", type=int, required=False)
    parser.add_argument('-mn','--min_val', default=0, help="Percentage gains that will be truncated for minimum values. By default : 0", type=float, required=False)
    parser.add_argument('-mx','--max_val', default=0.1, help="Percentage values that will be truncated for maximum values. By default: 0.1", type=float, required=False)
    parser.add_argument('-opt8b','--optimize_8bits', action='store_true', default=False, help="If active, optimize the used of 8 bits preserved histogram calculation. By default : False", required=False)
    parser.add_argument('-rvb','--rvb', action='store_true', default=False, help="If active, the output will be in RGB, otherwise the output will have the same number of bands that initial image. By default : False", required=False)
    parser.add_argument('-raf','--format_raster', default="GTiff", help="Option : Format output image, by default : GTiff (GTiff, HFA...)", type=str, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Overwrite files with same names. By default : True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # Definition des variables issues du parser

     # Récupération des images d'entrée
    if args.image_input != None :
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError (cyan + "ImagesAssembly : " + bold + red  + "File %s not existe!" %(image_input) + endC)

    # Récupération des images de sortie
    need_8bits = False
    if args.image_output_8bits != None:
        image_output_8bits = args.image_output_8bits
        need_8bits = True
    need_8bits = image_output_8bits != ""

    need_compress = False
    if args.image_output_compress != None:
        image_output_compress = args.image_output_compress
        need_compress = True
    need_compress = image_output_compress != ""

    # Paramètres de compression
    compress_type = None
    if args.compress!= None:
        compress_type = args.compress
        if compress_type.upper() not in ['DEFLATE', 'LZW', ''] :
            raise NameError(cyan + "ImagesAssembly : " + bold + red + "Parameter 'compress_type' value  is not in list ['DEFLATE', 'LZW', '']." + endC)

    if args.predictor!= None:
        predictor = args.predictor

    if args.zlevel!= None:
        zlevel = args.zlevel

    if args.min_val!= None:
        suppr_min = args.min_val

    if args.max_val!= None:
        suppr_max = args.max_val

    # Paramètres d'optimization
    if args.optimize_8bits!= None:
        need_optimize8b = args.optimize_8bits

    if args.rvb!= None:
        need_rvb = args.rvb

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    # Ecrasement nettoyage des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "ImageCompression : " + endC + "image_input : " + str(image_input) + endC)
        print(cyan + "ImageCompression : " + endC + "image_output_8bits : " + str(image_output_8bits) + endC)
        print(cyan + "ImageCompression : " + endC + "image_output_compress : " + str(image_output_compress) + endC)
        print(cyan + "ImageCompression : " + endC + "need_8bits : " + str(need_8bits) + endC)
        print(cyan + "ImageCompression : " + endC + "need_compress : " + str(need_compress) + endC)
        print(cyan + "ImageCompression : " + endC + "compress : " + str(compress_type) + endC)
        print(cyan + "ImageCompression : " + endC + "predictor : " + str(predictor) + endC)
        print(cyan + "ImageCompression : " + endC + "zlevel : " + str(zlevel) + endC)
        print(cyan + "ImageCompression : " + endC + "suppr_min : " + str(suppr_min) + endC)
        print(cyan + "ImageCompression : " + endC + "suppr_max : " + str(suppr_max) + endC)
        print(cyan + "ImageCompression : " + endC + "optimize_8bits : " + str(need_optimize8b) + endC)
        print(cyan + "ImageCompression : " + endC + "rvb : " + str(need_rvb) + endC)
        print(cyan + "ImageCompression : " + endC + "format_raster : " + str(format_raster) + endC)
        print(cyan + "ImageCompression : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "ImageCompression : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "ImageCompression : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "ImageCompression : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "ImageCompression : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si les dossiers de sortie n'existent pas, on les crées
    if need_compress:
        repertory_output = os.path.dirname(image_output_compress)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)
    if need_8bits:
        repertory_output = os.path.dirname(image_output_8bits)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    # Lancement de la fonction compression d'image
    if need_8bits or need_compress:
        convertImage(image_input, image_output_8bits, image_output_compress, need_8bits, need_compress, compress_type, predictor, zlevel, suppr_min, suppr_max, need_optimize8b, need_rvb, path_time_log, format_raster, extension_raster, save_results_intermediate, overwrite)
Пример #19
0
def main(gui=False):
    parser = argparse.ArgumentParser(prog = "Evolution du territoire dans le temps", description = "\
    Etude de l'évolution d'un territoire entre différentes dates (évolution de l'OCS). \n\
    Exemple : python3 -m EvolutionOverTime.py -in /mnt/RAM_disk/BD_Parcellaire.shp \n\
                                              -out /mnt/RAM_disk/EvolutionOverTime.shp \n\
                                              -emp /mnt/RAM_disk/zone_etude.shp \n\
                                              -itxl /mnt/RAM_disk/OCS_sat_t0.tif /mnt/RAM_disk/OCS_sat_t1.tif")

    parser.add_argument('-in', '--input_plot_vector', default="", type=str, required=True, help="Input plot vector file.")
    parser.add_argument('-out', '--output_plot_vector', default="", type=str, required=True, help="Output plot vector file.")
    parser.add_argument('-emp', '--footprint_vector', default="", type=str, required=True, help="Input footprint vector file.")
    parser.add_argument('-itxl', '--input_tx_files_list', nargs="+", default=[], type=str, required=True, help="List of input soil occupation mapping rasters files.")
    parser.add_argument('-evol', '--evolutions_list', nargs="+", default=['0:1:11000:10:50:and', '0:1:12000:10:50:and', '0:1:21000:10:50:and', '0:1:22000:10:50:and', '0:1:23000:10:50:and'], type=str, required=False, help="List of evolutions to quantify (first_date:second_date:class_label:rate_evolution:surface_evolution:rate_surface_combination). 'first_date' and 'second_date' correspond to the position of files in input_tx_files_list. If 0 for 'rate_evolution' or 'surface_evolution', rate or surface no taking into consideration. 'rate_surface_combination' must be and/or (use if 'rate_evolution' and 'surface_evolution' not 0). Default: '0:1:11000:10:50:and 0:1:12000:10:50:and 0:1:21000:10:50:and 0:1:22000:10:50:and 0:1:23000:10:50:and'.")
    parser.add_argument('-cld', '--class_label_dico', nargs="+", default=['11000:Bati', '12000:Route', '21000:SolNu', '22000:Eau', '23000:Vegetation'], type=str, required=False, help="List of pixel values with their related soil occupation class (label:class). Default: '11000:Bati 12000:Route 21000:SolNu 22000:Eau 23000:Vegetation'.")
    parser.add_argument('-epsg', '--epsg', default=2154, type=int, required=False, help="Projection of the output file. Default: 2154.")
    parser.add_argument('-ndv', '--no_data_value', default=0, type=int, required=False, help="Value of the NoData pixel. Default: 0.")
    parser.add_argument('-raf', '--format_raster', default="GTiff", type=str, required=False, help="Format of raster file. Default: 'GTiff'.")
    parser.add_argument('-vef', '--format_vector', default="ESRI Shapefile", type=str, required=False, help="Format of vector file. Default: 'ESRI Shapefile'.")
    parser.add_argument('-rae', '--extension_raster', default=".tif", type=str, required=False, help="Extension file for raster file. Default: '.tif'.")
    parser.add_argument('-vee', '--extension_vector', default=".shp", type=str, required=False, help="Extension file for vector file. Default: '.shp'.")
    parser.add_argument('-pgh', '--postgis_ip_host', default="localhost", type=str, required=False, help="PostGIS server name or IP adress. Default: 'localhost'.")
    parser.add_argument('-pgp', '--postgis_num_port', default=5432, type=int, required=False, help="PostGIS port number. Default: '5432'.")
    parser.add_argument('-pgu', '--postgis_user_name', default="postgres", type=str, required=False, help="PostGIS user name. Default: 'postgres'.")
    parser.add_argument('-pgw', '--postgis_password', default="postgres", type=str, required=False, help="PostGIS user password. Default: 'postgres'.")
    parser.add_argument('-pgd', '--postgis_database_name', default="database", type=str, required=False, help="PostGIS database name. Default: 'database'.")
    parser.add_argument('-pgs', '--postgis_schema_name', default="public", type=str, required=False, help="PostGIS schema name. Default: 'public'.")
    parser.add_argument('-pge', '--postgis_encoding', default="latin1", type=str, required=False, help="PostGIS encoding for vector import. Default: 'latin1'.")
    parser.add_argument('-log', '--path_time_log', default="", type=str, required=False, help="Option: Name of log. Default, no log file.")
    parser.add_argument('-sav', '--save_results_intermediate', action='store_true', default=False, required=False, help="Option: Save intermediate result after the process. Default, False.")
    parser.add_argument('-now', '--overwrite', action='store_false', default=True, required=False, help="Option: Overwrite files with same names. Default, True.")
    parser.add_argument('-debug', '--debug', default=3, type=int, required=False, help="Option: Value of level debug trace. Default, 3.")
    args = displayIHM(gui, parser)

    # Récupération du fichier parcellaire d'entrée
    if args.input_plot_vector != None:
        input_plot_vector = args.input_plot_vector
        if not os.path.isfile(input_plot_vector):
            raise NameError (cyan + "EvolutionOverTime: " + bold + red  + "File %s not exists (input_plot_vector)." % input_plot_vector + endC)

    # Récupération du fichier parcellaire de sortie
    if args.output_plot_vector != None:
        output_plot_vector = args.output_plot_vector

    # Récupération du fichier d'emprise
    if args.footprint_vector != None:
        footprint_vector = args.footprint_vector
        if not os.path.isfile(footprint_vector):
            raise NameError (cyan + "EvolutionOverTime: " + bold + red  + "File %s not exists (footprint_vector)." % footprint_vector + endC)

    # Récupération de la liste des classif OCS à tx
    if args.input_tx_files_list != None:
        input_tx_files_list = args.input_tx_files_list
        if input_tx_files_list != []:
            for input_tx_file in input_tx_files_list:
                if not os.path.isfile(input_tx_file):
                    raise NameError (cyan + "EvolutionOverTime: " + bold + red  + "File %s not exists (input_tx_files_list)." % input_tx_file + endC)

    # Récupération du paramètre des évolutions à quantifier
    if args.evolutions_list != None:
        evolutions_list = args.evolutions_list

    # Création du dictionaire reliant les classes OCS à leur label
    class_label_dico = {}
    if args.class_label_dico != None and args.class_label_dico != {}:
        for class_label in args.class_label_dico:
            key = class_label.split(':')[0]
            value = class_label.split(':')[1]
            class_label_dico[int(key)] = value

    # Récupération des paramètres fichiers
    if args.epsg != None:
        epsg = args.epsg
    if args.no_data_value != None:
        no_data_value = args.no_data_value
    if args.format_raster != None:
        format_raster = args.format_raster
    if args.format_vector != None:
        format_vector = args.format_vector
    if args.extension_raster != None:
        extension_raster = args.extension_raster
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération des paramètres PostGIS
    if args.postgis_ip_host != None:
        postgis_ip_host = args.postgis_ip_host
    if args.postgis_num_port != None:
        postgis_num_port = args.postgis_num_port
    if args.postgis_user_name != None:
        postgis_user_name = args.postgis_user_name
    if args.postgis_password != None:
        postgis_password = args.postgis_password
    if args.postgis_database_name != None:
        postgis_database_name = args.postgis_database_name
    if args.postgis_schema_name != None:
        postgis_schema_name = args.postgis_schema_name
    if args.postgis_encoding != None:
        postgis_encoding = args.postgis_encoding

    # Récupération des paramètres généraux
    if args.path_time_log != None:
        path_time_log = args.path_time_log
    if args.save_results_intermediate != None:
        save_results_intermediate = args.save_results_intermediate
    if args.overwrite != None:
        overwrite = args.overwrite
    if args.debug != None:
        global debug
        debug = args.debug

    if os.path.isfile(output_plot_vector) and not overwrite:
        raise NameError (cyan + "EvolutionOverTime: " + bold + red  + "File %s already exists, and overwrite is not activated." % output_plot_vector + endC)

    if debug >= 3:
        print('\n' + bold + green + "Evolution du territoire dans le temps - Variables dans le parser :" + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "input_plot_vector : " + str(input_plot_vector) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "output_plot_vector : " + str(output_plot_vector) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "footprint_vector : " + str(footprint_vector) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "input_tx_files_list : " + str(input_tx_files_list) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "evolutions_list : " + str(evolutions_list) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "class_label_dico : " + str(class_label_dico) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "format_raster : " + str(format_raster) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "postgis_ip_host : " + str(postgis_ip_host) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "postgis_num_port : " + str(postgis_num_port) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "postgis_user_name : " + str(postgis_user_name) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "postgis_password : "******"    EvolutionOverTime : " + endC + "postgis_database_name : " + str(postgis_database_name) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "postgis_schema_name : " + str(postgis_schema_name) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "postgis_encoding : " + str(postgis_encoding) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "    EvolutionOverTime : " + endC + "debug : " + str(debug) + endC + '\n')

    # Création du dossier de sortie, s'il n'existe pas
    if not os.path.isdir(os.path.dirname(output_plot_vector)):
        os.makedirs(os.path.dirname(output_plot_vector))

    # EXECUTION DE LA FONCTION
    soilOccupationChange(input_plot_vector, output_plot_vector, footprint_vector, input_tx_files_list, evolutions_list, class_label_dico, epsg, no_data_value, format_raster, format_vector, extension_raster, extension_vector, postgis_ip_host, postgis_num_port, postgis_user_name, postgis_password, postgis_database_name, postgis_schema_name, postgis_encoding, path_time_log, save_results_intermediate, overwrite)
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(prog="DistanceTDCPointLine",
                                     description=" \
    Info : Calculates the shortest distance from point to lines. \n\
    Objectif : Calcul de la plus courte distance entre chaque point et toutes les lignes. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/DistanceTDCPointLine.py -pts /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/test_distance/point.shp \n\
                                        -tdc /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/test_distance/tdcs_1_emprise_image_opti_0824_ass_20140222_-0.2.shp \n\
                                        -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Tests/Tests_DistancePtsTDC \n\
                                        -mer /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Images_test/point_mer_distances_pt_ligne.shp"
                                     )
    # Paramètres
    parser.add_argument('-pts',
                        '--input_points_shp',
                        default="",
                        help="Vector file containing the points.",
                        type=str,
                        required=True)
    parser.add_argument('-tdc',
                        '--input_tdc_shp',
                        default="",
                        help="Vector file containing the coastline.",
                        type=str,
                        required=True)
    parser.add_argument('-outd',
                        '--output_dir',
                        default="",
                        help="Name of the output directory.",
                        type=str,
                        required=True)
    parser.add_argument(
        '-mer',
        '--input_sea_points',
        default="",
        help="Input vector file containing points in the sea (.shp).",
        type=str,
        required=True)
    parser.add_argument(
        '-col',
        '--evolution_column_name',
        default="evolution",
        help="Name of the column to in which the distance is put.",
        type=str,
        required=False)
    parser.add_argument('-serv',
                        '--server_postgis',
                        default="localhost",
                        help="Postgis serveur name or ip.",
                        type=str,
                        required=False)
    parser.add_argument('-port',
                        '--port_number',
                        default=5432,
                        help="Postgis port number.",
                        type=int,
                        required=False)
    parser.add_argument('-user',
                        '--user_postgis',
                        default="postgres",
                        help="Postgis user name.",
                        type=str,
                        required=False)
    parser.add_argument('-pwd',
                        '--password_postgis',
                        default="postgres",
                        help="Postgis password user.",
                        type=str,
                        required=False)
    parser.add_argument('-db',
                        '--database_postgis',
                        default="db_buffer_tdc",
                        help="Postgis database name.",
                        type=str,
                        required=False)
    parser.add_argument('-sch',
                        '--schema_name',
                        default="directionevolution",
                        help="Postgis schema name.",
                        type=str,
                        required=False)
    parser.add_argument("-epsg",
                        '--epsg',
                        default=2154,
                        help="Projection parameter of data.",
                        type=int,
                        required=False)
    parser.add_argument(
        '-pe',
        '--project_encoding',
        default="UTF-8",
        help="Option : Format for the encoding. By default : UTF-8",
        type=str,
        required=False)
    parser.add_argument("-vef",
                        '--format_vector',
                        default='ESRI Shapefile',
                        help="The format of vectors",
                        type=str,
                        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération du fichier contenant les points
    if args.input_points_shp != None:
        input_points_shp = args.input_points_shp

    # Récupération du fichier contenant la ou les ligne(s)
    if args.input_tdc_shp != None:
        input_tdc_shp = args.input_tdc_shp

    # Récupération du dossier de sortie pour les traitements
    if args.output_dir != None:
        output_dir = args.output_dir

    # Récupération des points dans la mer
    if args.input_sea_points != None:
        input_sea_points = args.input_sea_points

    # Récupération du nom de la colonne distance pour le vecteur de sortie
    if args.evolution_column_name != None:
        evolution_column_name = args.evolution_column_name

    # Récupération du serveur de Postgis
    if args.server_postgis != None:
        server_postgis = args.server_postgis

    # Récupération du numéro du port
    if args.port_number != None:
        port_number = args.port_number

    # Récupération du nom de l'utilisateur postgis
    if args.user_postgis != None:
        user_postgis = args.user_postgis

    # Récupération du mot de passe de l'utilisateur
    if args.password_postgis != None:
        password_postgis = args.password_postgis

    # Récupération du nom de la base postgis
    if args.database_postgis != None:
        database_postgis = args.database_postgis

    # Récupération du nom du schéma
    if args.schema_name != None:
        schema_name = args.schema_name

    # Récupération du code EPSG des fichiers vecteur
    if args.epsg != None:
        epsg = args.epsg

    # Récupération de l'encodage des fichiers
    if args.project_encoding != None:
        project_encoding = args.project_encoding

    # Récupération du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération du booléen pour la sauvegarde des fichiers intermédiaires
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    # Récupération du booléen pour l'écrasement des fichiers s'ils existent déjà
    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "input_points_shp : " +
              str(input_points_shp) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "input_tdc_shp : " +
              str(input_tdc_shp) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "output_dir : " +
              str(output_dir) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC +
              "evolution_column_name : " + str(evolution_column_name) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "server_postgis : " +
              str(server_postgis) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "port_number : " +
              str(port_number) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "user_postgis : " +
              str(user_postgis) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "password_postgis : " +
              str(password_postgis) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "database_postgis : " +
              str(database_postgis) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "schema_name : " +
              str(schema_name) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "epsg : " + str(epsg) +
              endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "project_encoding : " +
              str(project_encoding) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "DistanceTDCPointLine : " + endC + "debug : " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    distanceTDCPointLine(input_points_shp, input_tdc_shp, output_dir,
                         input_sea_points, evolution_column_name,
                         path_time_log, server_postgis, user_postgis,
                         password_postgis, database_postgis, schema_name,
                         port_number, epsg, project_encoding, format_vector,
                         save_results_intermediate, overwrite)
Пример #21
0
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="ClassReallocationRaster",
        description="\
    Info : Automatic reallocation of class, from raster. \n\
    Objectif : Relabelliser automatiquement un raster a partir d'une table de relabellisation. \n\
    Example : python ClassReallocationRaster.py -i ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw.tif \n\
                                                -t ../ImagesTestChaine/APTV_05/Micro/APTV_05_prop_tab.txt \n\
                                                -o ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw2.tif \n\
                                                -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt"
    )

    # Paramètres
    parser.add_argument('-i',
                        '--image_input',
                        default="",
                        help="Image input to treat",
                        type=str,
                        required=True)
    parser.add_argument('-t',
                        '--proposal_table_input',
                        default="",
                        help="Proposal table input to realocation micro class",
                        type=str,
                        required=True)
    parser.add_argument(
        '-o',
        '--image_output',
        default="",
        help=
        "Image output re-allocated . Warning!!! if is emppty the input image file is modified.",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS
    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError(cyan + "ClassReallocationRaster : " + bold + red +
                            "File %s not existe!" % (image_input) + endC)

    # Récupération de la table de proposition d'entrée
    if args.proposal_table_input != None:
        proposal_table_input = args.proposal_table_input
        if not os.path.isfile(proposal_table_input):
            raise NameError(cyan + "ClassReallocationRaster : " + bold + red +
                            "File %s not existe!" % (proposal_table_input) +
                            endC)

    # Récupération de l'image de sortie
    if args.image_output != None:
        image_output = args.image_output

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "ClassReallocationRaster : " + endC + "image_input : " +
              str(image_input) + endC)
        print(cyan + "ClassReallocationRaster : " + endC +
              "proposal_table_input : " + str(proposal_table_input) + endC)
        print(cyan + "ClassReallocationRaster : " + endC + "image_output : " +
              str(image_output) + endC)
        print(cyan + "ClassReallocationRaster : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "ClassReallocationRaster : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "ClassReallocationRaster : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "ClassReallocationRaster : " + endC + "debug : " +
              str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existe pas, on le crée
    if image_output != None:
        repertory_output = os.path.dirname(image_output)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    # reallocation
    reallocClassRaster(image_input, image_output, proposal_table_input,
                       path_time_log, overwrite)
def main(gui=False):
    parser = argparse.ArgumentParser(prog="Indicateurs LCZ liés à l'OCS",
                                     description="\
    Calcul d'indicateurs liés au taux d'occupation de classes OCS, et de \"hauteur de végétation\" avec ou sans MNH, pour une utilisation des LCZ à l'international. \n\
    Remarque : différents cas possibles, si on rentre avec OCS vecteur ou raster, si on a ou non le MNH, si on distingue végétation haute/basse dans l'OCS. \n\
    Exemple (entrée OCS raster, sans MNH, en distinguant végétation haute/basse) : \n\
        python3 -m OcsIndicators \n\
                -in /mnt/Data/20_Etudes_Encours/URBAIN/Production/Lille/Climatologie/SatLCZ_Airbus/10_PROCESSED_DATA/maillage_etude.shp \n\
                -out /mnt/Data/20_Etudes_Encours/URBAIN/Production/Lille/Climatologie/SatLCZ_Airbus/20_LCZ_INDICATORS/OcsIndicators.shp \n\
                -ocs /mnt/Data/20_Etudes_Encours/URBAIN/Production/Lille/Climatologie/SatLCZ_Airbus/10_PROCESSED_DATA/Airbus_Lille_landcover.tif \n\
                -cbl 2 -crl 5 6 8 12 13 -csl 1 7 9 -cwl 10 11 -chvl 3 -clvl 4")

    parser.add_argument('-in',
                        '--input_grid',
                        default="",
                        type=str,
                        required=True,
                        help="Input grid file (vector).")
    parser.add_argument('-out',
                        '--output_grid',
                        default="",
                        type=str,
                        required=True,
                        help="Output grid file, with indicators (vector).")
    parser.add_argument(
        "-clo",
        "--class_label_dico_out",
        nargs="+",
        default=[
            "MAJ_OTHERS_CLASS:0", "MAJ_BARESOIL_CLASS:1",
            "MAJ_LOW_VEG_CLASS:2", "MAJ_MED_VEG_CLASS:3",
            "MAJ_HIGH_VEG_CLASS:4"
        ],
        help=
        "Dictionary contain class value in output. Default : MAJ_OTHERS_CLASS:0 MAJ_BARESOIL_CLASS:1 MAJ_LOW_VEG_CLASS:2 MAJ_MED_VEG_CLASS:3 MAJ_HIGH_VEG_CLASS:4",
        type=str,
        required=False)
    parser.add_argument('-cla',
                        '--input_vector_classif',
                        default="",
                        type=str,
                        required=False,
                        help="Input modele classification OCS (vector).")
    parser.add_argument('-fcn',
                        '--field_classif_name',
                        default="OCS",
                        type=str,
                        required=False,
                        help="The field contain classification information.")
    parser.add_argument(
        '-ocs',
        '--input_soil_occupation',
        default="",
        type=str,
        required=True,
        help=
        "Input soil occupation file (raster) or if vector input_vector_classif define this is the reference image."
    )
    parser.add_argument('-mnh',
                        '--input_height_model',
                        default="",
                        type=str,
                        required=False,
                        help="Input height model file (raster).")
    parser.add_argument(
        '-cbl',
        '--class_build_list',
        nargs="+",
        default=[11100],
        type=int,
        required=False,
        help=
        "List of built class labels from the soil occupation classification.")
    parser.add_argument(
        '-crl',
        '--class_road_list',
        nargs="+",
        default=[11200],
        type=int,
        required=False,
        help=
        "List of road (mineral) class labels from the soil occupation classification."
    )
    parser.add_argument(
        '-csl',
        '--class_baresoil_list',
        nargs="+",
        default=[13000],
        type=int,
        required=False,
        help=
        "List of baresoil class labels from the soil occupation classification."
    )
    parser.add_argument(
        '-cwl',
        '--class_water_list',
        nargs="+",
        default=[12200],
        type=int,
        required=False,
        help=
        "List of water class labels from the soil occupation classification.")
    parser.add_argument(
        '-cvl',
        '--class_vegetation_list',
        nargs="+",
        default=[20000],
        type=int,
        required=False,
        help=
        "List of vegetation class labels from the soil occupation classification. Not required if 'class_high_vegetation_list' and 'class_low_vegetation_list' are filled."
    )
    parser.add_argument(
        '-chvl',
        '--class_high_vegetation_list',
        nargs="+",
        default=[],
        type=int,
        required=False,
        help=
        "List of high vegetation class labels from the soil occupation classification. Required if not input height model."
    )
    parser.add_argument(
        '-clvl',
        '--class_low_vegetation_list',
        nargs="+",
        default=[],
        type=int,
        required=False,
        help=
        "List of low vegetation class labels from the soil occupation classification. Required if not input height model."
    )
    parser.add_argument('-epsg',
                        '--epsg',
                        default=2154,
                        type=int,
                        required=False,
                        help="Projection of the output file. Default: 2154.")
    parser.add_argument('-ndv',
                        '--no_data_value',
                        default=0,
                        type=int,
                        required=False,
                        help="Value of the NoData pixel. Default: 0.")
    parser.add_argument('-raf',
                        '--format_raster',
                        default="GTiff",
                        type=str,
                        required=False,
                        help="Format of raster file. Default: 'GTiff'.")
    parser.add_argument(
        '-vef',
        '--format_vector',
        default="ESRI Shapefile",
        type=str,
        required=False,
        help="Format of vector file. Default: 'ESRI Shapefile'.")
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        type=str,
        required=False,
        help="Extension file for raster file. Default: '.tif'.")
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        type=str,
        required=False,
        help="Extension file for vector file. Default: '.shp'.")
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        type=str,
                        required=False,
                        help="Option: Name of log. Default, no log file.")
    parser.add_argument(
        '-sav',
        '--save_results_intermediate',
        action='store_true',
        default=False,
        required=False,
        help=
        "Option: Save intermediate result after the process. Default, False.")
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        required=False,
        help="Option: Overwrite files with same names. Default, True.")
    parser.add_argument('-debug',
                        '--debug',
                        default=3,
                        type=int,
                        required=False,
                        help="Option: Value of level debug trace. Default, 3.")
    args = displayIHM(gui, parser)

    # Récupération du fichier maillage d'entrée
    if args.input_grid != None:
        input_grid = args.input_grid
        if not os.path.isfile(input_grid):
            raise NameError(cyan + "OcsIndicators: " + bold + red +
                            "File %s not exists (input_grid)." % input_grid +
                            endC)

    # Récupération du fichier maillage de sortie
    if args.output_grid != None:
        output_grid = args.output_grid

    # Creation du dictionaire de sortie reliant les labels de classes à leur valeur
    class_label_dico_out = {}
    if args.class_label_dico_out != None and args.class_label_dico_out != "":
        for tmp_txt_class in args.class_label_dico_out:
            class_label_list = tmp_txt_class.split(':')
            class_label_dico_out[str(class_label_list[0])] = int(
                class_label_list[1])

    # Récupération du fichier OCS vecteur d'entrée
    if args.input_vector_classif != None:
        input_vector_classif = args.input_vector_classif
        if not input_vector_classif == "" and not os.path.isfile(
                input_vector_classif):
            raise NameError(cyan + "OcsIndicators: " + bold + red +
                            "File %s not exists (input_vector_classif)." %
                            input_vector_classif + endC)

    # Récupération du nom du champs contenant la classif fichier OCS vecteur
    if args.field_classif_name != None:
        field_classif_name = args.field_classif_name

    # Récupération du fichier OCS raster d'entrée
    if args.input_soil_occupation != None:
        input_soil_occupation = args.input_soil_occupation
        if not os.path.isfile(input_soil_occupation):
            raise NameError(
                cyan + "OcsIndicators: " + bold + red +
                "File %s not exists (input_soil_occupation_file or reference_image)."
                % input_soil_occupation + endC)

    # Récupération du fichier MNH d'entrée
    if args.input_height_model != None:
        input_height_model = args.input_height_model
        if not input_height_model == "" and not os.path.isfile(
                input_height_model):
            raise NameError(cyan + "OcsIndicators: " + bold + red +
                            "File %s not exists (input_height_model)." %
                            input_height_model + endC)

    # Récupération des paramètres de classes OCS
    if args.class_build_list != None:
        class_build_list = args.class_build_list
    if args.class_road_list != None:
        class_road_list = args.class_road_list
    if args.class_baresoil_list != None:
        class_baresoil_list = args.class_baresoil_list
    if args.class_water_list != None:
        class_water_list = args.class_water_list
    if args.class_vegetation_list != None:
        class_vegetation_list = args.class_vegetation_list
    if args.class_high_vegetation_list != None:
        class_high_vegetation_list = args.class_high_vegetation_list
    if args.class_low_vegetation_list != None:
        class_low_vegetation_list = args.class_low_vegetation_list

    # Récupération du code EPSG de la projection du shapefile trait de côte
    if args.epsg != None:
        epsg = args.epsg

    # Paramettre des no data
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du format du fichier de sortie
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option de sauvegarde des fichiers intermédiaires
    if args.save_results_intermediate != None:
        save_results_intermediate = args.save_results_intermediate

    # Récupération de l'option écrasement
    if args.overwrite != None:
        overwrite = args.overwrite

    # Protection du fichier de soertie si il existe deja
    if os.path.isfile(output_grid) and not overwrite:
        raise NameError(
            cyan + "OcsIndicators: " + bold + red +
            "File %s already exists, and overwrite is not activated." %
            output_grid + endC)

    if debug >= 3:
        print(
            '\n' + bold + green +
            "Calcul d'indicateurs LCZ liés à l'OCS - Variables dans le parser :"
            + endC)
        print(cyan + "OcsIndicators : " + endC + "input_grid : " +
              str(input_grid) + endC)
        print(cyan + "OcsIndicators : " + endC + "output_grid : " +
              str(output_grid) + endC)
        print(cyan + "OcsIndicators : " + endC + "class_label_dico_out : " +
              str(class_label_dico_out) + endC)
        print(cyan + "OcsIndicators : " + endC + "input_vector_classif : " +
              str(input_vector_classif) + endC)
        print(cyan + "OcsIndicators : " + endC + "field_classif_name : " +
              str(field_classif_name) + endC)
        print(cyan + "OcsIndicators : " + endC + "input_soil_occupation : " +
              str(input_soil_occupation) + endC)
        print(cyan + "OcsIndicators : " + endC + "input_height_model : " +
              str(input_height_model) + endC)
        print(cyan + "OcsIndicators : " + endC + "class_build_list : " +
              str(class_build_list) + endC)
        print(cyan + "OcsIndicators : " + endC + "class_road_list : " +
              str(class_road_list) + endC)
        print(cyan + "OcsIndicators : " + endC + "class_baresoil_list : " +
              str(class_baresoil_list) + endC)
        print(cyan + "OcsIndicators : " + endC + "class_water_list : " +
              str(class_water_list) + endC)
        print(cyan + "OcsIndicators : " + endC + "class_vegetation_list : " +
              str(class_vegetation_list) + endC)
        print(cyan + "OcsIndicators : " + endC +
              "class_high_vegetation_list : " +
              str(class_high_vegetation_list) + endC)
        print(cyan + "OcsIndicators : " + endC +
              "class_low_vegetation_list : " + str(class_low_vegetation_list) +
              endC)
        print(cyan + "OcsIndicators : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "OcsIndicators : " + endC + "no_data_value : " +
              str(no_data_value) + endC)
        print(cyan + "OcsIndicators : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "OcsIndicators : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "OcsIndicators : " + endC + "extension_raster : " +
              str(extension_raster) + endC)
        print(cyan + "OcsIndicators : " + endC + "extension_vector : " +
              str(extension_vector) + endC)
        print(cyan + "OcsIndicators : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "OcsIndicators : " + endC +
              "save_results_intermediate : " + str(save_results_intermediate) +
              endC)
        print(cyan + "OcsIndicators : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "OcsIndicators : " + endC + "debug : " + str(debug) +
              endC + '\n')

    # Création du dossier de sortie, s'il n'existe pas
    if not os.path.isdir(os.path.dirname(output_grid)):
        os.makedirs(os.path.dirname(output_grid))

    # EXECUTION DES FONCTIONS
    occupationIndicator(input_grid, output_grid, class_label_dico_out,
                        input_vector_classif, field_classif_name,
                        input_soil_occupation, input_height_model,
                        class_build_list, class_road_list, class_baresoil_list,
                        class_water_list, class_vegetation_list,
                        class_high_vegetation_list, class_low_vegetation_list,
                        epsg, no_data_value, format_raster, format_vector,
                        extension_raster, extension_vector, path_time_log,
                        save_results_intermediate, overwrite)
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter,  prog="ChannelsConcatenation", description="\
    Info : Concatenate one image with their neochannel. \n\
    Objectif : Concatener plusieurs bandes d'image en une seule image.\n\
    Example : python ChannelsConcatenation.py -il  ../ImagesTestChaine/APTV_05/APTV_05.tif \n\
                                                   ../ImagesTestChaine/APTV_05/Neocanaux/APTV_05_chanNIR_rad6_HaralickCorrelation.tif \n\
                                                   ../ImagesTestChaine/APTV_05/Neocanaux/APTV_05_chanG_rad5_Inertia.tif \n\
                                                   ../ImagesTestChaine/APTV_05/Neocanaux/APTV_05_NDVI.tif \n\
                                                   ../ImagesTestChaine/APTV_05/Neocanaux/APTV_05_NDWI.tif \n\
                                               -os ../ImagesTestChaine/APTV_05/Stacks/APTV_05_stack.tif \n\
                                               -on ../ImagesTestChaine/APTV_05/Stacks/APTV_05_stack_N.tif \n\
                                               -oa ../ImagesTestChaine/APTV_05/Stacks/APTV_05_stack_N_acp.tif \n\
                                               -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt")

    # Paramètres
    parser.add_argument('-il','--images_input_list',default="",nargs="*",help="List images input to stack", type=str, required=True)
    parser.add_argument('-os','--image_stack_output',default="",help="Image output of stack image", type=str, required=False)
    parser.add_argument('-on','--image_normalize_output',default="",help="Image output of normalize image", type=str, required=False)
    parser.add_argument('-oa','--image_acp_output',default="",help="Image output of reduce acp image", type=str, required=False)
    parser.add_argument('-redce.meth','--method_reduce',default="PCA",help="Parameter reduction, name methode to reduce concatened image (choice : [PCA/NAPCA/MAF/ICA]). By default : PCA", type=str, required=False)
    parser.add_argument('-redce.nbcp','--nb_components',default=0,help="Parameter reduction, number of components. By default : all components", type=int, required=False)
    parser.add_argument('-redce.radi','--napca_radius',default=1,help="Parameter reduction, algo napca the x and y radius of the sliding window. By default : 1", type=int, required=False)
    parser.add_argument('-redce.iter','--ica_iterations',default=20,help="Parameter reduction, algo ica number of iterations. By default : 20", type=int, required=False)
    parser.add_argument('-redce.incr','--ica_increment',default=1.0,help="Parameter reduction, algo ica the increment weight of W in [0, 1]. By default : 1.0", type=float, required=False)
    parser.add_argument('-redce.norm','--normalization_reduce',action='store_true',default=False,help="Apply normalization or not to reduced image. By default, False", required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Overwrite files with same names. By default, True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de la liste des images à stacker
    if args.images_input_list != None :
        images_input_list = args.images_input_list
        for image_input in images_input_list :
            if not os.path.isfile(image_input):
                raise NameError (cyan + "ChannelsConcatenation : " + bold + red  + "File %s not existe!" %(image_input) + endC)

    # Récupération des images de sortie
    if args.image_stack_output != None:
        image_stack_output = args.image_stack_output

    if args.image_normalize_output != None:
        image_normalize_output = args.image_normalize_output

    if args.image_acp_output != None:
        image_acp_output = args.image_acp_output

    # Les paramètres des acp
    if args.method_reduce != None:
        method_reduce = args.method_reduce
        if method_reduce.upper() not in ['PCA', 'NAPCA', 'MAF', 'ICA', ''] :
            raise NameError(cyan + "ChannelsConcatenation : " + bold + red + "Parameter 'method_reduce' value  is not in list ['PCA', 'NAPCA', 'MAF', 'ICA', '']." + endC)

    if args.nb_components != None:
        nb_components = args.nb_components

    if args.napca_radius != None:
        napca_radius = args.napca_radius

    if args.ica_iterations != None:
        ica_iterations = args.ica_iterations

    if args.ica_increment != None:
        ica_increment = args.ica_increment

    if args.normalization_reduce!= None:
        normalization_reduce = args.normalization_reduce

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(cyan + "ChannelsConcatenation : " + bold + green + "Variables dans le parser" + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "images_input_list : " + str(images_input_list) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "image_stack_output : " + str(image_stack_output) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "image_normalize_output : " + str(image_normalize_output) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "image_acp_output : " + str(image_acp_output) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "method_reduce : " + str(method_reduce) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "nb_components : " + str(nb_components) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "napca_radius : " + str(napca_radius) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "ica_iterations : " + str(ica_iterations) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "ica_increment : " + str(ica_increment) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "normalization_reduce : " + str(normalization_reduce) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "ChannelsConcatenation : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION
    concatenation = False
    normalization = False
    reduction = False

    # Si les dossiers de sortie n'existent pas, on les crées
    if image_stack_output != "":
        concatenation = True
        repertory_output = os.path.dirname(image_stack_output)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    if image_normalize_output != "":
        normalization = True
        repertory_output = os.path.dirname(image_normalize_output)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    if image_acp_output != "":
        reduction = True
        repertory_output = os.path.dirname(image_acp_output)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    # Exécution de la concatenation pour une image
    if concatenation :
        concatenateChannels(images_input_list, image_stack_output, path_time_log, save_results_intermediate, overwrite)
    else :
        image_stack_output = images_input_list[0]

    # Si la normalisation de l'empilement est activee on enchaine directement avec la fonction normalizeChannels
    if normalization :
        normalizeChannels(image_stack_output, image_normalize_output, path_time_log, save_results_intermediate, overwrite)
    else :
        image_normalize_output = image_stack_output

    # Si la réduction de l'image stacké est activee
    if reduction :
        reduceChannelsImage(image_normalize_output, image_acp_output, path_time_log, method_reduce, nb_components, normalization_reduce, napca_radius, ica_iterations, ica_increment, save_results_intermediate, overwrite)
def main(gui=False):

    parser = argparse.ArgumentParser(prog="TDCSeuil",
                                     description=" \
    Info : Creating a shapefile (.shp) containing the coastline jet de rive from a tif image, extracted with a threshold method.\n\
    Objectif   : Cartographie du trait de côte jet de rive par seuillage, à partir d'une image format tif. \n\
    Example : python /home/scgsi/Documents/ChaineTraitement/ScriptsLittoral/TDCSeuil.py \n\
                            -isd \"/mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/image1.tif:0.1,0,-0.1 /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/image2.tif\" \n\
                            -outd /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/Result2 \n\
                            -mer /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/05_Travail/Test_TDCSeuil/points_mer.shp \n\
                            -c \n\
                            -chao Red Green Blue NIR \n\
                            -d /mnt/Donnees_Etudes/30_Stages/2016/Stage_Littoral_chaine/08_Donnees/Histolitt/TCH_simplifie2_buffer270_adapte_mediterranee_simpl200.shp"
                                     )

    parser.add_argument(
        '-isd',
        '--input_im_seuils_dico',
        default="",
        help=
        "Dictionnary of input images (.tif) and thresholds (float) associated, or if is_calc_indice_image NOT chosen, input images are calculated index images.",
        type=str,
        required=True)
    parser.add_argument('-outd',
                        '--output_dir',
                        default="",
                        help="Output directory.",
                        type=str,
                        required=True)
    parser.add_argument(
        '-mer',
        '--input_sea_points',
        default="",
        help="Input vector file containing points in the sea (.shp).",
        type=str,
        required=True)
    parser.add_argument(
        '-d',
        '--input_cut_vector',
        default="",
        help="Vector file containing shape of the area to keep (.shp).",
        type=str,
        required=False)
    parser.add_argument(
        '-e',
        '--input_emprise_vector',
        default="",
        help="Vector file containing shape of the emprise (.shp).",
        type=str,
        required=False)
    parser.add_argument('-simp',
                        '--simplif',
                        default=1.0,
                        help="Value for simplification of the coastline",
                        type=float,
                        required=False)
    parser.add_argument(
        '-c',
        '--is_calc_indice_image',
        action='store_true',
        default=False,
        help=
        "If True : images in dictionary are raw images, calculate NDVI images from them. If False: images in dictionary are index images.",
        required=False)
    parser.add_argument(
        '-chao',
        '--channel_order',
        nargs="+",
        default=['Red', 'Green', 'Blue', 'NIR'],
        help=
        "Type of multispectral image : rapideye or spot6 or pleiade. By default : [Red,Green,Blue,NIR]",
        type=str,
        required=False)
    parser.add_argument('-at_v_limite',
                        '--attribute_val_limite',
                        default="Milieu jet de rive",
                        help="Attribute value of field TDC_Limite.",
                        type=str,
                        required=False)
    parser.add_argument('-at_v_proced',
                        '--attribute_val_proced',
                        default="Numerisation semi-automatique",
                        help="Attribute value of field TDC_proced.",
                        type=str,
                        required=False)
    parser.add_argument('-at_v_datepr',
                        '--attribute_val_datepr',
                        default="",
                        help="Attribute value of field TDC_Datepr.",
                        type=str,
                        required=False)
    parser.add_argument('-at_v_precis',
                        '--attribute_val_precis',
                        default="Metrique",
                        help="Attribute value of field TDC_precis.",
                        type=str,
                        required=False)
    parser.add_argument('-at_v_contac',
                        '--attribute_val_contac',
                        default="Cerema",
                        help="Attribute value of field TDC_Contac.",
                        type=str,
                        required=False)
    parser.add_argument('-at_v_type',
                        '--attribute_val_type',
                        default="Pleiades",
                        help="Attribute value of satellite type.",
                        type=str,
                        required=False)
    parser.add_argument(
        '-epsg',
        '--epsg',
        default=2154,
        help="Option : Projection EPSG for the layers. By default : 2154",
        type=int,
        required=False)
    parser.add_argument(
        '-ndv',
        '--no_data_value',
        default=0,
        help="Option : Value of the pixel no data. By default : 0",
        type=int,
        required=False)
    parser.add_argument(
        '-raf',
        '--format_raster',
        default="GTiff",
        help=
        "Option : Format output image raster. By default : GTiff (GTiff, HFA...)",
        type=str,
        required=False)
    parser.add_argument(
        '-vef',
        '--format_vector',
        default="ESRI Shapefile",
        help="Option : Vector format. By default : ESRI Shapefile",
        type=str,
        required=False)
    parser.add_argument(
        '-rae',
        '--extension_raster',
        default=".tif",
        help="Option : Extension file for image raster. By default : '.tif'",
        type=str,
        required=False)
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        help="Option : Extension file for vector. By default : '.shp'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Option : Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Option : Overwrite files with same names. By default : True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # Récupération des images à traiter
    if args.input_im_seuils_dico != None:
        input_im_seuils_dico = args.input_im_seuils_dico

    # Récupération du dossier des traitements en sortie
    if args.output_dir != None:
        output_dir = args.output_dir

    # Récupération de la couche points mer
    if args.input_sea_points != None:
        input_sea_points = args.input_sea_points

    # Récupération du shapefile de découpe pour la simplification du trait obtenu
    if args.input_cut_vector != None:
        input_cut_vector = args.input_cut_vector

    # Récupération du shapefile des emprises des images
    if args.input_emprise_vector != None:
        input_emprise_vector = args.input_emprise_vector

    # Récupération de la valeur de tolérance pour la simplification du trait de côte
    if args.simplif != None:
        simplif = args.simplif

    # Récupération de la valeur (vrai/faux) du calcul de l'image indice
    if args.is_calc_indice_image != None:
        is_calc_indice_image = args.is_calc_indice_image

    # Récupération de l'ordre des bandes de l'image pour le calcul de l'indice
    if args.channel_order != None:
        channel_order = args.channel_order

    # Récupération des valeurs des des attributs
    if args.attribute_val_limite != None:
        attribute_val_limite = args.attribute_val_limite
    if args.attribute_val_proced != None:
        attribute_val_proced = args.attribute_val_proced
    if args.attribute_val_datepr != None:
        attribute_val_datepr = args.attribute_val_datepr
    if args.attribute_val_precis != None:
        attribute_val_precis = args.attribute_val_precis
    if args.attribute_val_contac != None:
        attribute_val_contac = args.attribute_val_contac
    if args.attribute_val_type != None:
        attribute_val_type = args.attribute_val_type

    # Récupération de la projection
    if args.epsg != None:
        epsg = args.epsg

    # Récupération du parametre no_data_value
    if args.no_data_value != None:
        no_data_value = args.no_data_value

    # Paramètre format des images de sortie
    if args.format_raster != None:
        format_raster = args.format_raster

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Ecrasement des fichiers
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    # Affichage des arguments récupérés
    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "TDCSeuil : " + endC + "input_im_seuils_dico : " +
              str(input_im_seuils_dico) + endC)
        print(cyan + "TDCSeuil : " + endC + "output_dir : " + str(output_dir) +
              endC)
        print(cyan + "TDCSeuil : " + endC + "input_sea_points : " +
              str(input_sea_points) + endC)
        print(cyan + "TDCSeuil : " + endC + "input_cut_vector : " +
              str(input_cut_vector) + endC)
        print(cyan + "TDCSeuil : " + endC + "input_emprise_vector : " +
              str(input_emprise_vector) + endC)
        print(cyan + "TDCSeuil : " + endC + "simplif : " + str(simplif) + endC)
        print(cyan + "TDCSeuil : " + endC + "is_calc_indice_image : " +
              str(is_calc_indice_image) + endC)
        print(cyan + "TDCSeuil : " + endC + "channel_order : " +
              str(channel_order) + endC)
        print(cyan + "TDCSeuil : " + endC + "attribute_val_limite : " +
              str(attribute_val_limite) + endC)
        print(cyan + "TDCSeuil : " + endC + "attribute_val_proced : " +
              str(attribute_val_proced) + endC)
        print(cyan + "TDCSeuil : " + endC + "attribute_val_datepr : " +
              str(attribute_val_datepr) + endC)
        print(cyan + "TDCSeuil : " + endC + "attribute_val_precis : " +
              str(attribute_val_precis) + endC)
        print(cyan + "TDCSeuil : " + endC + "attribute_val_contac : " +
              str(attribute_val_contac) + endC)
        print(cyan + "TDCSeuil : " + endC + "attribute_val_type : " +
              str(attribute_val_type) + endC)
        print(cyan + "TDCSeuil : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "TDCSeuil : " + endC + "no_data_value : " +
              str(no_data_value) + endC)
        print(cyan + "TDCSeuil : " + endC + "format_raster : " +
              str(format_raster) + endC)
        print(cyan + "TDCSeuil : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "TDCSeuil : " + endC + "extension_raster : " +
              str(extension_raster) + endC)
        print(cyan + "TDCSeuil : " + endC + "extension_vector : " +
              str(extension_vector) + endC)
        print(cyan + "TDCSeuil : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "TDCSeuil : " + endC + "save_results_intermediate : " +
              str(save_results_intermediate) + endC)
        print(cyan + "TDCSeuil : " + endC + "overwrite : " + str(overwrite) +
              endC)
        print(cyan + "TDCSeuil : " + endC + "debug : " + str(debug) + endC)

    # Fonction générale
    runTDCSeuil(input_im_seuils_dico, output_dir, input_sea_points,
                input_cut_vector, input_emprise_vector, simplif,
                is_calc_indice_image, attribute_val_limite,
                attribute_val_proced, attribute_val_datepr,
                attribute_val_precis, attribute_val_contac, attribute_val_type,
                no_data_value, path_time_log, channel_order, epsg,
                format_raster, format_vector, extension_raster,
                extension_vector, save_results_intermediate, overwrite)
Пример #25
0
def main(gui=False):

    # Définition des différents paramètres du parser
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="ProductOcsVerificationCorrectionSQL",
        description="\
    Info : Cutting list of raster and vector file by vector file. \n\
    Objectif : Découper des fichiers raster et vecteurs. \n\
    Example : python ProductOcsVerificationCorrectionSQL.py \n\
                                            -c  /mnt/Data/gilles.fouvet/RA/Haute-Savoie/Global/Preparation/Study_Boundaries/DEP74.SHP \n\
                                            -vl /mnt/Data/gilles.fouvet/RA/Haute-Savoie_500m/Global/Resultats/Vecteur/Sauvegarde_500m2/Haute-Savoie_Couverture_Apres_PT_Directs_et_Indirects_clnd_500m2_cut.shp \n\
                                                /mnt/Data/gilles.fouvet/RA/Haute-Savoie_200m/Global/Resultats/Vecteur/Sauvegarde_200m2/Haute-Savoie_Couverture_Apres_PT_Directs_et_Indirects_clnd_200m2_cut.shp \n\
                                            -vol /mnt/Data/gilles.fouvet/RA/Haute-Savoie_500m/Global/Resultats/Vecteur/Sauvegarde_500m2/Haute-Savoie_Couverture_Apres_PT_Directs_et_Indirects_clnd_500m2_clean.shp \n\
                                                /mnt/Data/gilles.fouvet/RA/Haute-Savoie_200m/Global/Resultats/Vecteur/Sauvegarde_200m2/Haute-Savoie_Couverture_Apres_PT_Directs_et_Indirects_clnd_200m2_clean.shp \n\
                                            -log /mnt/Data/gilles.fouvet/RA/Haute-Savoie_SansTunnel/FichierHaute-Savoie.log"
    )
    parser.add_argument(
        '-c',
        '--vector_ref',
        default="",
        help="Vector input contain the vector emprise reference.",
        type=str,
        required=True)
    parser.add_argument('-vl',
                        '--vectors_input_list',
                        default="",
                        nargs="+",
                        help="List input vectors to verifie.",
                        type=str,
                        required=True)
    parser.add_argument('-vol',
                        '--vectors_output_list',
                        default="",
                        nargs="+",
                        help="List output clean vectors.",
                        type=str,
                        required=True)
    parser.add_argument('-epsg',
                        '--epsg',
                        default=2154,
                        help="EPSG code projection.",
                        type=int,
                        required=False)
    parser.add_argument('-pe',
                        '--project_encoding',
                        default="latin1",
                        help="Project encoding.",
                        type=str,
                        required=False)
    parser.add_argument('-serv',
                        '--server_postgis',
                        default="localhost",
                        help="Postgis serveur name or ip.",
                        type=str,
                        required=False)
    parser.add_argument('-port',
                        '--port_number',
                        default=5432,
                        help="Postgis port number.",
                        type=int,
                        required=False)
    parser.add_argument('-user',
                        '--user_postgis',
                        default="postgres",
                        help="Postgis user name.",
                        type=str,
                        required=False)
    parser.add_argument('-pwd',
                        '--password_postgis',
                        default="postgres",
                        help="Postgis password user.",
                        type=str,
                        required=False)
    parser.add_argument('-db',
                        '--database_postgis',
                        default="ocs_verification",
                        help="Postgis database name.",
                        type=str,
                        required=False)
    parser.add_argument('-sch',
                        '--schema_postgis',
                        default="public",
                        help="Postgis schema name.",
                        type=str,
                        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete intermediate result after the process. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération du vecteur de référence
    if args.vector_ref != None:
        vector_ref = args.vector_ref
        if not os.path.isfile(vector_ref):
            raise NameError(cyan + "ProductOcsVerificationCorrectionSQL : " +
                            bold + red + "File %s not existe!" % (vector_ref) +
                            endC)

    # Récupération des vecteurs d'entrées
    if args.vectors_input_list != None:
        vectors_input_list = args.vectors_input_list
        for vector_input in vectors_input_list:
            if not os.path.isfile(vector_input):
                raise NameError(cyan +
                                "ProductOcsVerificationCorrectionSQL : " +
                                bold + red + "File %s not existe!" %
                                (vector_input) + endC)

    # Récupération des vecteurs de sorties
    if args.vectors_output_list != None:
        vectors_output_list = args.vectors_output_list

    # Récupération du code EPSG de la projection du shapefile trait de côte
    if args.epsg != None:
        epsg = args.epsg

    # Récupération de l'encodage des fichiers
    if args.project_encoding != None:
        project_encoding = args.project_encoding

    # Récupération du serveur de Postgis
    if args.server_postgis != None:
        server_postgis = args.server_postgis

    # Récupération du numéro du port
    if args.port_number != None:
        port_number = args.port_number

    # Récupération du nom de l'utilisateur postgis
    if args.user_postgis != None:
        user_postgis = args.user_postgis

    # Récupération du mot de passe de l'utilisateur
    if args.password_postgis != None:
        password_postgis = args.password_postgis

    # Récupération du nom de la base postgis
    if args.database_postgis != None:
        database_postgis = args.database_postgis

    # Récupération du nom du schéma
    if args.schema_postgis != None:
        schema_postgis = args.schema_postgis

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option de sauvegarde des fichiers temporaires
    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    # Récupération de l'option écrasement
    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(
            bold + green +
            "ProductOcsVerificationCorrectionSQL : Variables dans le parser" +
            endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "vector_ref : " + str(vector_ref) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "vectors_input_list : " + str(vectors_input_list) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "vectors_output_list : " + str(vectors_output_list) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "epsg : " + str(epsg) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "project_encoding : " + str(project_encoding) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "server_postgis : " + str(server_postgis) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "port_number : " + str(port_number) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "user_postgis : " + str(user_postgis) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "password_postgis : " + str(password_postgis) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "database_postgis : " + str(database_postgis) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "schema_postgis : " + str(schema_postgis) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "overwrite : " + str(overwrite) + endC)
        print(cyan + "ProductOcsVerificationCorrectionSQL : " + endC +
              "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si les dossiers de sorties n'existent pas, on les crées
    for vector_output in vectors_output_list:
        if not os.path.isdir(os.path.dirname(vector_output)):
            os.makedirs(os.path.dirname(vector_output))

    # execution de la fonction pour une image
    verificationCorrection(vector_ref, vectors_input_list, vectors_output_list,
                           epsg, project_encoding, server_postgis, port_number,
                           user_postgis, password_postgis, database_postgis,
                           schema_postgis, path_time_log,
                           save_results_intermediate, overwrite)
def main(gui=False):

    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, prog="KmeansMaskApplication", description="\
    Info : Apply a not supervised classification KMeans. \n\
    Documentation : http://www.orfeo-toolbox.org/SoftwareGuide/SoftwareGuidech19.html \n\
    Objectif : Realiser une classification non supervise par algorithme de kmeans. \n\
    Example : python KmeansMaskApplication.py -i ../ImagesTestChaine/APTV_05/Stacks/APTV_05_stack_N.tif \n\
                                              -o ../ImagesTestChaine/APTV_05/Micro/APTV_05_micro_merge.tif \n\
                                              -t ../ImagesTestChaine/APTV_05/Micro/APTV_05_prop_tab.txt \n\
                                              -ml ../ImagesTestChaine/APTV_05/Macro/APTV_05_Anthropise_mask_cleaned.tif \n\
                                                  ../ImagesTestChaine/APTV_05/Macro/APTV_05_Eau_mask_cleaned.tif \n\
                                                  ../ImagesTestChaine/APTV_05/Macro/APTV_05_Ligneux_mask_cleaned.tif \n\
                                              -ol ../ImagesTestChaine/APTV_05/Micro/APTV_05_Anthropise_masqued_micro.tif \n\
                                                  ../ImagesTestChaine/APTV_05/Micro/APTV_05_Eau_masqued_micro.tif \n\
                                                  ../ImagesTestChaine/APTV_05/Micro/APTV_05_Ligneux_masqued_micro.tif \n\
                                              -cl ../ImagesTestChaine/APTV_05/Micro/APTV_05_Anthropise_micro_centroid.txt \n\
                                                  ../ImagesTestChaine/APTV_05/Micro/APTV_05_Eau_micro_centroid.txt \n\
                                                  ../ImagesTestChaine/APTV_05/Micro/APTV_05_Ligneux_micro_centroid.txt \n\
                                              -msl 3 5 5 \n\
                                              -mll 11000 12200 21000 \n\
                                              -log ../ImagesTestChaine/APTV_05/fichierTestLog.log -sav")

    parser.add_argument('-i','--image_input',default="",help="Image input to treat", type=str, required=True)
    parser.add_argument('-o','--samples_merge_output',default="",help="Image output merge sample micro", type=str, required=True)
    parser.add_argument('-t','--proposal_table_output',default="",help="Proposal table output to realocation micro class", type=str, required=True)
    parser.add_argument('-ml','--mask_input_list',default=[],nargs="+",help="List of input mask refere to input image.", type=str, required=False)
    parser.add_argument('-ol','--mask_micro_output_list',default=[],nargs="+",help="List of output mask image of micro class.", type=str, required=False)
    parser.add_argument('-cl','--centroid_output_list',default=[],nargs="+",help="List of output centroid file of micro class.", type=str, required=False)
    parser.add_argument('-msl','--macroclass_sampling_list',nargs='+',help="List number of requested micro class in output kmeans.", type=int, required=True)
    parser.add_argument('-mll','--macroclass_labels_list',nargs='+',help="List numeric labels of macroclass.", type=int, required=True)
    parser.add_argument('-kmp.it','--kmeans_param_iterations',default=2000,help="Kmeans Parameter : number iterations. By default : '2000'", type=int, required=False)
    parser.add_argument('-kmp.pr','--kmeans_param_prop',default=1,help="Kmeans Parameter : prop pixels of retained mask. By default : '1'", type=int, required=False)
    parser.add_argument('-kmp.sz','--kmeans_param_size',default=-1,help="Kmeans Parameter : size of training set. By default : '-1'", type=int, required=False)
    parser.add_argument('-npt','--number_of_actives_pixels_threshold',default=200,help="Number of minimum training size for kmeans. Default = 200 * Nb de sous classes", type=int, required=False)
    parser.add_argument("-rcmc",'--rate_clean_micro_class',default=0.0,help="ratio for cleaning micro classes, the total sum of the surfaces is too small, in percentage, example : 20 percent)", type=float, required=False)
    parser.add_argument('-rand','--rand_otb',default=0,help="User defined seed for random KMeans", type=int, required=False)
    parser.add_argument('-ram','--ram_otb',default=0,help="Ram available for processing otb applications (in MB)", type=int, required=False)
    parser.add_argument('-ndv','--no_data_value', default=0, help="Option in option optimize_emprise_nodata  : Value of the pixel no data. By default : 0", type=int, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Save or delete intermediate result after the process. By default, False", required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Overwrite files with same names. By default, True", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError (cyan + "KmeansMaskApplication : " + bold + red  + "File %s not existe!" %(image_input) + endC)

    # Récupération des masques d'entrée
    if args.mask_input_list != None :
        mask_input_list = args.mask_input_list
        for mask_input in mask_input_list :
            if not os.path.isfile(mask_input):
                raise NameError (cyan + "KmeansMaskApplication : " + bold + red  + "File %s not existe!" %(mask_input) + endC)

    # Récupération du fichier sample micro merge de sortie
    if args.samples_merge_output!= None:
        samples_merge_output=args.samples_merge_output

    # Récupération de la table de proposition de sortie
    if args.proposal_table_output != None:
        proposal_table_output = args.proposal_table_output

    # Récupération des fichiers masque micro de sortie
    if args.mask_micro_output_list!= None:
        mask_micro_output_list=args.mask_micro_output_list

    # Récupération des fichiers centroides de sortie
    if args.centroid_output_list!= None:
        centroid_output_list=args.centroid_output_list

    # Recuperation des infos sur les macroclasses
    if args.macroclass_sampling_list != None:
        macroclass_sampling_list = args.macroclass_sampling_list
    if args.macroclass_labels_list != None:
        macroclass_labels_list = args.macroclass_labels_list

    # Recuperation des parametres generaux du kmeans
    if args.kmeans_param_iterations != None:
        kmeans_parameter_iterations = args.kmeans_param_iterations
    if args.kmeans_param_prop != None:
        kmeans_parameter_prop = args.kmeans_param_prop
    if args.kmeans_param_size != None:
        kmeans_parameter_size = args.kmeans_param_size

    # Récupération du nombre minimum de pixels pour effectuer le kmeans
    if args.number_of_actives_pixels_threshold != None:
        number_of_actives_pixels_threshold = args.number_of_actives_pixels_threshold

    # Récupération du parametre taux minimun tail micro classe pour proposition a la suppression
    if args.rate_clean_micro_class != None:
        rate_clean_micro_class = args.rate_clean_micro_class

    # Récupération du parametre rand
    if args.rand_otb != None:
        rand_otb = args.rand_otb

    # Récupération du parametre ram
    if args.ram_otb != None:
        ram_otb = args.ram_otb

    # Récupération du parametre no_data_value
    if args.no_data_value!= None:
        no_data_value = args.no_data_value

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    # Fonction d'écrasement des fichiers
    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "KmeansMaskApplication : variables dans l'appel de la fonction kmeans" + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "image_input : " + str(image_input) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "samples_merge_output : " + str(samples_merge_output) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "mask_input_list : " + str(mask_input_list) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "proposal_table_output : " + str(proposal_table_output) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "mask_micro_output_list : " + str(mask_micro_output_list) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "centroid_output_list : " + str(centroid_output_list) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "macroclass_sampling_list : " + str(macroclass_sampling_list) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "macroclass_labels_list : " + str(macroclass_labels_list) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "kmeans_param_iterations : " + str(kmeans_parameter_iterations) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "kmeans_param_prop : " + str(kmeans_parameter_prop) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "kmeans_param_size : " + str(kmeans_parameter_size) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "number_of_actives_pixels_threshold : " + str(number_of_actives_pixels_threshold) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "rate_clean_micro_class : " + str(rate_clean_micro_class) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "rand_otb : " + str(rand_otb) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "ram_otb : " + str(ram_otb) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "no_data_value : " + str(no_data_value) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "KmeansMaskApplication : " + endC + "debug : " + str(debug) + endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existe pas, on le crée
    repertory_output = os.path.dirname(samples_merge_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # Si le dossier de sortie n'existe pas, on le crée
    repertory_output = os.path.dirname(proposal_table_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # A confirmer!
    for image_mask in mask_micro_output_list:
        repertory_output = os.path.dirname(image_mask)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)
    # A confirmer!
    for centroid_file in centroid_output_list:
        repertory_output = os.path.dirname(centroid_file)
        if not os.path.isdir(repertory_output):
            os.makedirs(repertory_output)

    # execution le kmean pour une image
    applyKmeansMasks(image_input, mask_input_list, samples_merge_output, proposal_table_output, mask_micro_output_list, centroid_output_list,  macroclass_sampling_list, macroclass_labels_list, no_data_value, path_time_log, kmeans_parameter_iterations, kmeans_parameter_prop, kmeans_parameter_size, rate_clean_micro_class, rand_otb, ram_otb, number_of_actives_pixels_threshold, extension_raster, save_results_intermediate, overwrite)
def main(gui=False):
    parser = argparse.ArgumentParser(prog = "Calcul du pourcentage de surface impermeable (Impervious Surface Fraction)",
    description = """Calcul de l'indicateur LCZ pourcentage de surface impermeable (Impervious Surface Fraction) :
    Exemple : python /home/scgsi/Documents/ChaineTraitement/ScriptsLCZ/ImperviousSurfaceFraction.py
                        -in  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/UrbanAtlas.shp
                        -out /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/ImperviousSurfaceFraction.shp
                        -cla /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/Classif.tif
                        -cil 11100 11200 """)

    parser.add_argument('-in', '--grid_input', default="", type=str, required=True, help="Fichier de maillage en entree (vecteur).")
    parser.add_argument('-out', '--grid_output', default="", type=str, required=True, help="Fichier de maillage en sortie, avec la valeur moyenne de Impervious Surface Fraction par maille (vecteur).")
    parser.add_argument('-cla', '--classif_input', default="", type=str, required=True, help="Fichier raster de l'occupation du sol en entree (raster).")
    parser.add_argument('-cil', '--class_imprevious_list', nargs="+", default=[11200], type=int, required=False, help="Liste des indices de classe de type impermeable.")
    parser.add_argument('-vef','--format_vector',default="ESRI Shapefile",help="Option : Vector format. By default : ESRI Shapefile", type=str, required=False)
    parser.add_argument('-rae','--extension_raster', default=".tif", help="Option : Extension file for image raster. By default : '.tif'", type=str, required=False)
    parser.add_argument('-log', '--path_time_log', default="/home/scgsi/Bureau/logLCZ.txt", type=str, required=False, help="Name of log")
    parser.add_argument('-sav', '--save_results_intermediate', action='store_true', default=False, required=False, help="Save or delete intermediate result after the process. By default, False")
    parser.add_argument('-now', '--overwrite', action='store_false', default=True, required=False, help="Overwrite files with same names. By default, True")
    parser.add_argument('-debug', '--debug', default=3, type=int, required=False, help="Option : Value of level debug trace, default : 3")
    args = displayIHM(gui, parser)

    # Récupération du vecteur grille d'entrée
    if args.grid_input != None:
        grid_input = args.grid_input

    # Récupération du vecteur grille de sortie
    if args.grid_output != None:
        grid_output = args.grid_output

    # Récupération du fichier raster ocs
    if args.classif_input != None:
        classif_input = args.classif_input

    # Récupération de la liste des classes impermeable
    if args.class_imprevious_list != None:
        class_imprevious_list = args.class_imprevious_list

    # Récupération du nom du format des fichiers vecteur
    if args.format_vector != None:
        format_vector = args.format_vector

    # Paramètre de l'extension des images rasters
    if args.extension_raster != None:
        extension_raster = args.extension_raster

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    # Récupération de l'option de sauvegarde des fichiers intermédiaires
    if args.save_results_intermediate != None:
        save_results_intermediate = args.save_results_intermediate

    # Récupération de l'option écrasement
    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "Calcul du pourcentage de surface imperméable :" + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "grid_input : " + str(grid_input) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "grid_output : " + str(grid_output) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "classif_input : " + str(classif_input) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "class_imprevious_list : " + str(class_imprevious_list) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "extension_raster : " + str(extension_raster) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "save_results_intermediate : " + str(save_results_intermediate) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "ImperviousSurfaceFraction : " + endC + "debug : " + str(debug) + endC)

    if not os.path.exists(os.path.dirname(grid_output)):
        os.makedirs(os.path.dirname(grid_output))

    imperviousSurfaceFraction(grid_input, grid_output, classif_input, class_imprevious_list, path_time_log, format_vector, extension_raster, save_results_intermediate, overwrite)
def main(gui=False):

    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawTextHelpFormatter,
        prog="MajorityFilter",
        description="\
    Info : Applying a majority filter on one or several images. \n\
    Objectif : Appliquer un filtre majoritaire a une image (classee ou non). \n\
    Example : python MajorityFilter.py -i ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw_merged.tif \n\
                                       -o ../ImagesTestChaine/APTV_05/Micro/APTV_05_stack_raw_merged_filtered.tif \n\
                                       -m otb \n\
                                       -r 2 \n\
                                       -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt"
    )

    # Paramètres
    parser.add_argument('-i',
                        '--image_input',
                        default="",
                        help="Image input to treat",
                        type=str,
                        required=True)
    parser.add_argument('-o',
                        '--image_output',
                        default="",
                        help="Image output result input image filted",
                        type=str,
                        required=True)
    parser.add_argument(
        '-m',
        '--filter_mode',
        default="otb",
        help=
        "type of filtrage Majority by OTB or Sieve by GDAL (List of values : otb, gdal). By default : otb.",
        type=str,
        required=False)
    parser.add_argument('-r',
                        '--fm_radius',
                        default=2,
                        help="Radius of the majority filter",
                        type=int,
                        required=False)
    parser.add_argument(
        '-umc',
        '--umc_pixels',
        default=2,
        help=
        "UMC (in number of pixels). Size of pixel polygon to replace by the neigbour majority. By default : 2.",
        type=int,
        required=False)
    parser.add_argument(
        '-ram',
        '--ram_otb',
        default=0,
        help="Ram available for processing otb applications (in MB)",
        type=int,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="",
                        help="Name of log",
                        type=str,
                        required=False)
    parser.add_argument(
        '-sav',
        '--save_results_inter',
        action='store_true',
        default=False,
        help=
        "Save or delete original image after the majority filter. By default, False",
        required=False)
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        help="Overwrite files with same names. By default, True",
        required=False)
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        help="Option : Value of level debug trace, default : 3 ",
        type=int,
        required=False)
    args = displayIHM(gui, parser)

    # RECUPERATION DES ARGUMENTS

    # Récupération de l'image d'entrée
    if args.image_input != None:
        image_input = args.image_input
        if not os.path.isfile(image_input):
            raise NameError(cyan + "MajorityFilter : " + bold + red +
                            "File %s not existe!" % (image_input) + endC)

    # Récupération de l'image de sortie
    if args.image_output != None:
        image_output = args.image_output

    # Récupération choix du filtre
    if args.filter_mode != None:
        filter_mode = args.filter_mode
        if filter_mode.lower() not in ['otb', 'gdal']:
            raise NameError(
                cyan + "MajorityFilter : " + bold + red +
                "Parameter 'filter_mode' value  is not in list ['otb', 'gdal']."
                + endC)

    # Le paramétre du rayon pour le filtre majoritaire otb
    if args.fm_radius != None:
        radius = args.fm_radius

    # Le paramétre de l'umc pixel pour le traitement majoritaire gdal
    if args.umc_pixels != None:
        umc_pixels = args.umc_pixels

    # Récupération du parametre ram
    if args.ram_otb != None:
        ram_otb = args.ram_otb

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    if args.save_results_inter != None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "MajorityFilter : " + endC + "image_input : " +
              str(image_input) + endC)
        print(cyan + "MajorityFilter : " + endC + "image_output : " +
              str(image_output) + endC)
        print(cyan + "MajorityFilter : " + endC + "filter_mode : " +
              str(filter_mode) + endC)
        print(cyan + "MajorityFilter : " + endC + "fm_radius : " +
              str(radius) + endC)
        print(cyan + "MajorityFilter : " + endC + "umc_pixels : " +
              str(umc_pixels) + endC)
        print(cyan + "MajorityFilter : " + endC + "ram_otb : " + str(ram_otb) +
              endC)
        print(cyan + "MajorityFilter : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "MajorityFilter : " + endC + "save_results_inter : " +
              str(save_results_intermediate) + endC)
        print(cyan + "MajorityFilter : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "MajorityFilter : " + endC + "debug : " + str(debug) +
              endC)

    # EXECUTION DE LA FONCTION
    # Si le dossier de sortie n'existe pas, on le crée
    repertory_output = os.path.dirname(image_output)
    if not os.path.isdir(repertory_output):
        os.makedirs(repertory_output)

    # execution de la fonction pour une image
    filterImageMajority(image_input, image_output, filter_mode, radius,
                        umc_pixels, path_time_log, ram_otb,
                        save_results_intermediate, overwrite)
def main(gui=False):
    parser = argparse.ArgumentParser(
        prog="Calcul du rapport d'aspect (Aspect Ratio)",
        description=
        """Calcul de l'indicateur LCZ rapport d'aspect (Aspect Ratio) :
    Exemple : python /home/scgsi/Documents/ChaineTraitement/ScriptsLCZ/AspectRatio.py
                        -in  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/UrbanAtlas2012_cleaned.shp
                        -out /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/AspectRatio.shp
                        -ri  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/BDTOPO_route.shp
                        -bi  /mnt/Donnees_Etudes/10_Agents/Benjamin/LCZ/Nancy/BDTOPO_bati.shp
                        -sd 10 -sl 30 -bs 15""")

    parser.add_argument('-in',
                        '--grid_input',
                        default="",
                        type=str,
                        required=True,
                        help="Fichier de maillage en entree (vecteur).")
    parser.add_argument(
        '-out',
        '--grid_output',
        default="",
        type=str,
        required=True,
        help=
        "Fichier de maillage en sortie, avec la valeur de Aspect Ratio par maille (vecteur)."
    )
    parser.add_argument(
        '-ri',
        '--roads_input',
        default="",
        type=str,
        required=True,
        help="Fichier de la BD TOPO route en entree (vecteur).")
    parser.add_argument('-bi',
                        '--built_input',
                        default="",
                        type=str,
                        required=True,
                        help="Fichier de la BD TOPO bati en entree (vecteur).")
    parser.add_argument(
        '-sd',
        '--seg_dist',
        default=10,
        type=int,
        required=False,
        help=
        "Distance entre les segments perpendiculaires aux segments route (en metres), par defaut : 10."
    )
    parser.add_argument(
        '-sl',
        '--seg_length',
        default=30,
        type=int,
        required=False,
        help=
        "Longueur des segments perpendiculaires aux segments route (en metres), par defaut : 30."
    )
    parser.add_argument(
        '-bs',
        '--buffer_size',
        default=15,
        type=int,
        required=False,
        help=
        "Taille du buffer applique sur les polygones mailles (en metres), par defaut : 15."
    )
    parser.add_argument('-epsg',
                        '--epsg',
                        default=2154,
                        help="EPSG code projection.",
                        type=int,
                        required=False)
    parser.add_argument('-pe',
                        '--project_encoding',
                        default="latin1",
                        help="Project encoding.",
                        type=str,
                        required=False)
    parser.add_argument('-serv',
                        '--server_postgis',
                        default="localhost",
                        help="Postgis serveur name or ip.",
                        type=str,
                        required=False)
    parser.add_argument('-port',
                        '--port_number',
                        default=5432,
                        help="Postgis port number.",
                        type=int,
                        required=False)
    parser.add_argument('-user',
                        '--user_postgis',
                        default="postgres",
                        help="Postgis user name.",
                        type=str,
                        required=False)
    parser.add_argument('-pwd',
                        '--password_postgis',
                        default="postgres",
                        help="Postgis password user.",
                        type=str,
                        required=False)
    parser.add_argument('-db',
                        '--database_postgis',
                        default="lcz_ara",
                        help="Postgis database name.",
                        type=str,
                        required=False)
    parser.add_argument('-sch',
                        '--schema_postgis',
                        default="public",
                        help="Postgis schema name.",
                        type=str,
                        required=False)
    parser.add_argument('-vef',
                        '--format_vector',
                        default="ESRI Shapefile",
                        help="Format of the output vector file.",
                        type=str,
                        required=False)
    parser.add_argument(
        '-vee',
        '--extension_vector',
        default=".shp",
        help="Option : Extension file for vector. By default : '.shp'",
        type=str,
        required=False)
    parser.add_argument('-log',
                        '--path_time_log',
                        default="/home/scgsi/Bureau/logLCZ.txt",
                        type=str,
                        required=False,
                        help="Name of log")
    parser.add_argument(
        '-sav',
        '--save_results_intermediate',
        action='store_true',
        default=False,
        required=False,
        help=
        "Save or delete intermediate result after the process. By default, False"
    )
    parser.add_argument(
        '-now',
        '--overwrite',
        action='store_false',
        default=True,
        required=False,
        help="Overwrite files with same names. By default, True")
    parser.add_argument(
        '-debug',
        '--debug',
        default=3,
        type=int,
        required=False,
        help="Option : Value of level debug trace, default : 3")
    args = displayIHM(gui, parser)

    # Récupération des fichiers d'entrées et de sorties
    if args.grid_input != None:
        grid_input = args.grid_input
    if args.grid_output != None:
        grid_output = args.grid_output

    if args.roads_input != None:
        roads_input = args.roads_input
    if args.built_input != None:
        built_input = args.built_input

    if args.seg_dist != None:
        seg_dist = args.seg_dist
    if args.seg_length != None:
        seg_length = args.seg_length
    if args.buffer_size != None:
        buffer_size = args.buffer_size

    # Récupération du code EPSG de la projection du shapefile trait de côte
    if args.epsg != None:
        epsg = args.epsg

    # Récupération de l'encodage des fichiers
    if args.project_encoding != None:
        project_encoding = args.project_encoding

    # Récupération du serveur de Postgis
    if args.server_postgis != None:
        server_postgis = args.server_postgis

    # Récupération du numéro du port
    if args.port_number != None:
        port_number = args.port_number

    # Récupération du nom de l'utilisateur postgis
    if args.user_postgis != None:
        user_postgis = args.user_postgis

    # Récupération du mot de passe de l'utilisateur
    if args.password_postgis != None:
        password_postgis = args.password_postgis

    # Récupération du nom de la base postgis
    if args.database_postgis != None:
        database_postgis = args.database_postgis

    # Récupération du nom du schéma
    if args.schema_postgis != None:
        schema_postgis = args.schema_postgis

    # Récupération du format du fichier de sortie
    if args.format_vector != None:
        format_vector = args.format_vector

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération du nom du fichier log
    if args.path_time_log != None:
        path_time_log = args.path_time_log

    # Récupération de l'option de sauvegarde des fichiers intermédiaires
    if args.save_results_intermediate != None:
        save_results_intermediate = args.save_results_intermediate

    # Récupération de l'option écrasement
    if args.overwrite != None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug != None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "Calcul du rapport d'aspect :" + endC)
        print(cyan + "AspectRatio : " + endC + "grid_input : " +
              str(grid_input) + endC)
        print(cyan + "AspectRatio : " + endC + "grid_output : " +
              str(grid_output) + endC)
        print(cyan + "AspectRatio : " + endC + "roads_input : " +
              str(roads_input) + endC)
        print(cyan + "AspectRatio : " + endC + "built_input : " +
              str(built_input) + endC)
        print(cyan + "AspectRatio : " + endC + "seg_dist : " + str(seg_dist) +
              endC)
        print(cyan + "AspectRatio : " + endC + "seg_length : " +
              str(seg_length) + endC)
        print(cyan + "AspectRatio : " + endC + "buffer_size : " +
              str(buffer_size) + endC)
        print(cyan + "AspectRatio : " + endC + "epsg : " + str(epsg) + endC)
        print(cyan + "AspectRatio : " + endC + "project_encoding : " +
              str(project_encoding) + endC)
        print(cyan + "AspectRatio : " + endC + "server_postgis : " +
              str(server_postgis) + endC)
        print(cyan + "AspectRatio : " + endC + "port_number : " +
              str(port_number) + endC)
        print(cyan + "AspectRatio : " + endC + "user_postgis : " +
              str(user_postgis) + endC)
        print(cyan + "AspectRatio : " + endC + "password_postgis : " +
              str(password_postgis) + endC)
        print(cyan + "AspectRatio : " + endC + "database_postgis : " +
              str(database_postgis) + endC)
        print(cyan + "AspectRatio : " + endC + "schema_postgis : " +
              str(schema_postgis) + endC)
        print(cyan + "AspectRatio : " + endC + "format_vector : " +
              str(format_vector) + endC)
        print(cyan + "AspectRatio : " + endC + "extension_vector : " +
              str(extension_vector) + endC)
        print(cyan + "AspectRatio : " + endC + "path_time_log : " +
              str(path_time_log) + endC)
        print(cyan + "AspectRatio : " + endC + "save_results_intermediate : " +
              str(save_results_intermediate) + endC)
        print(cyan + "AspectRatio : " + endC + "overwrite : " +
              str(overwrite) + endC)
        print(cyan + "AspectRatio : " + endC + "debug : " + str(debug) + endC)

    if not os.path.exists(os.path.dirname(grid_output)):
        os.makedirs(os.path.dirname(grid_output))

    aspectRatio(grid_input, grid_output, roads_input, built_input, seg_dist,
                seg_length, buffer_size, epsg, project_encoding,
                server_postgis, port_number, user_postgis, password_postgis,
                database_postgis, schema_postgis, path_time_log, format_vector,
                extension_vector, save_results_intermediate, overwrite)
def main(gui=False):
    # Définition des arguments possibles pour l'appel en ligne de commande
    parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, prog="ClassificationVector", description="\
    Info : Applying a majority filter on one or several images. \n\
    Objectif : Appliquer un filtre majoritaire a une image (classee ou non). \n\
    Example : python ClassificationVector.py -v ../2016-2019_PyrenEOS/DonneesProduites/5_Sentinel2/6_CLassif_Test/SENTINEL2A_20190817_cut_Seg_450_25_20.shp \n\
                                       -o ../2016-2019_PyrenEOS/DonneesProduites/5_Sentinel2/6_CLassif_Test/SENTINEL2A_20190817_output_450_25_20.shp \n\
                                       -f meanB0 meanB1  meanB2 meanB3 varB0 varB1 varB2 varB3 \n\
                                       -icf  Class \n\
                                       -ocf  Pred \n\
                                       -ex  \"Class != '0'\" \n\
                                       -log ../ImagesTestChaine/APTV_05/fichierTestLog.txt" )

    # Paramètres
    parser.add_argument('-v','--vector_input',default="",help="vector input to treat", type=str, required=True)
    parser.add_argument('-o','--classif_vector_output',default="",help="classified vector output to treat", type=str, required=False)
    parser.add_argument('-f','--list_feat',default=" ",help="List of field used to classification", type=str, required = True)
    parser.add_argument('-exp','--expression',default="",help="Example : class '!=' '0'", type=str, required=True)
    parser.add_argument('-icf','--input_cfield',default="",help=" Learning Field", type=str, required=True)
    parser.add_argument('-ocf','--output_cfield',default="Pred",help="classification field", type=str, required=False)
    parser.add_argument('-vef','--format_vector', default="ESRI Shapefile",help="Format of the output file.", type=str, required=False)
    parser.add_argument('-vee','--extension_vector',default=".shp",help="Option : Extension file for vector. By default : '.shp'", type=str, required=False)
    parser.add_argument('-xee','--extension_xml',default=".xml",help="Option : Extension file for xml. By default : '.xml'", type=str, required=False)
    parser.add_argument('-mee','--extension_model',default=".model",help="Option : Extension file for model. By default : '.model'", type=str, required=False)
    parser.add_argument('-log','--path_time_log',default="",help="Name of log", type=str, required=False)
    parser.add_argument('-now','--overwrite',action='store_false',default=True,help="Overwrite files with same names. By default, True", required=False)
    parser.add_argument('-sav','--save_results_inter',action='store_true',default=False,help="Save or delete original image after the majority filter. By default, False", required=False)
    parser.add_argument('-debug','--debug',default=3,help="Option : Value of level debug trace, default : 3 ",type=int, required=False)
    args = displayIHM(gui, parser)


    # RECUPERATION DES ARGUMENTS

    # Récupération de la segmentation d'entrée
    if args.vector_input != None:
        vector_input = args.vector_input
        if not os.path.isfile(vector_input):
            raise NameError (cyan + "classifyVector : " + bold + red  + "File %s not existe!" %(vector_input) + endC)

    # Récupération les champs
    if args.classif_vector_output != None:
        classif_vector_output = args.classif_vector_output

    # Récupération les champs
    if args.list_feat != None:
        list_feat = args.list_feat

    # Le paramétre d'expression
    if args.expression != None:
        expression = args.expression

    # Le champs des classes d'apprentissage
    if args.input_cfield!= None:
        input_cfield = args.input_cfield

    # Le champs de classification en sortie
    if args.output_cfield!= None:
        output_cfield = args.output_cfield

    # Récupération du format du fichier de sortie
    if args.format_vector != None :
        format_vector = args.format_vector

    # Récupération de l'extension des fichiers vecteurs
    if args.extension_vector != None:
        extension_vector = args.extension_vector

    # Récupération de l'extension des fichier model
    if args.extension_model != None:
        extension_model = args.extension_model

    # Récupération de l'extension des fichier xml
    if args.extension_xml != None:
        extension_xml = args.extension_xml

    # Récupération du nom du fichier log
    if args.path_time_log!= None:
        path_time_log = args.path_time_log

    if args.save_results_inter!= None:
        save_results_intermediate = args.save_results_inter

    if args.overwrite!= None:
        overwrite = args.overwrite

    # Récupération de l'option niveau de debug
    if args.debug!= None:
        global debug
        debug = args.debug

    if debug >= 3:
        print(bold + green + "Variables dans le parser" + endC)
        print(cyan + "ClassificationVector : " + endC + "vector_input : " + str(vector_input) + endC)
        print(cyan + "ClassificationVector : " + endC + "classif_vector_output : " + str(classif_vector_output) + endC)
        print(cyan + "ClassificationVector : " + endC + "feat : " + str(list_feat) + endC)
        print(cyan + "ClassificationVector : " + endC + "expression : " + str(expression) + endC)
        print(cyan + "ClassificationVector : " + endC + "input_cfield : " + str(input_cfield) + endC)
        print(cyan + "ClassificationVector : " + endC + "output_cfield : " + str(output_cfield) + endC)
        print(cyan + "ClassificationVector : " + endC + "format_vector : " + str(format_vector) + endC)
        print(cyan + "ClassificationVector : " + endC + "extension_vector : " + str(extension_vector) + endC)
        print(cyan + "ClassificationVector : " + endC + "extension_xml : " + str(extension_xml) + endC)
        print(cyan + "ClassificationVector : " + endC + "extension_model : " + str(extension_model) + endC)
        print(cyan + "ClassificationVector : " + endC + "path_time_log : " + str(path_time_log) + endC)
        print(cyan + "ClassificationVector : " + endC + "save_results_inter : " + str(save_results_intermediate) + endC)
        print(cyan + "ClassificationVector : " + endC + "overwrite : " + str(overwrite) + endC)
        print(cyan + "ClassificationVector : " + endC + "debug : " + str(debug) + endC)

    # execution de la fonction pour une couhce de segmentation
    classifyVector(vector_input, classif_vector_output, list_feat, expression, input_cfield, output_cfield, path_time_log, format_vector, extension_vector, extension_xml, extension_model, save_results_intermediate, overwrite)