Commit c24786330502dca017bc9881981503b7bc3f802a

Authored by Jordi Inglada
1 parent 04421588
Exists in master

Scripts for gapfilling production

runs_iota2/prepare_samples.cfg 0 → 100644
... ... @@ -0,0 +1,146 @@
  1 +################################################################################################
  2 +# Chain
  3 +################################################################################################
  4 +
  5 +chain:
  6 +{
  7 + outputPath:'/work/OT/theia/oso/jordi/maassp_data/tiles/output/'
  8 + remove_outputPath:True #Ecrase l'éventuel contenu du outputpath?
  9 +
  10 + jobsPath:'/work/OT/theia/oso/jordi/maassp_data/tiles/jobs/'
  11 + pyAppPath:'/work/OT/theia/oso/production/cnes/sources/iota2/scripts' # Chemin de la chaine
  12 +
  13 + chainName:'iota2_maassp_tiles' # N'a aucune influence sur le run
  14 +
  15 + nomenclaturePath:'/work/OT/theia/oso/vincent/Nomenclature_30classes.csv' # Nomenclature
  16 +
  17 + outputStatistics:True # Si False ne garde pas les matrices intermédiaires dans le cas de runs > 1
  18 +
  19 + merge_final_classifications:False # si runs > 1 (anciennement generateMajorityVoteMap?)
  20 + merge_final_classifications_ratio:0.1 # 10% des échantillons d'entrée extrait avant la séparation app / val
  21 + merge_final_classifications_undecidedlabel:255
  22 + merge_final_classifications_method:"majorityvoting"#"majorityvoting" or "dempstershafer"
  23 + dempstershafer_mof:"precision"#precision/recall/accuracy/kappa
  24 +
  25 + keep_runs_results:False # résultats intermédiaires écrits des différents runs
  26 +
  27 +
  28 + listTile:'T31TCJ' # Tuiles à classer
  29 + S2Path:'/work/OT/theia/oso/sensorsDatas/S2/2017'
  30 +
  31 +
  32 + groundTruth:'/work/OT/theia/oso/shapes/ReferenceData/2017/v3-RPG-UA/learn_CP2014_RPG2016_UA.shp'
  33 + # Fichier d'échantillons en polygones
  34 +
  35 + dataField:'Code' # Champ qui définit les différentes classes en type "Entier"
  36 +
  37 + runs:1 # nombre de runs (intervalle de confiance)
  38 +
  39 + ratio:0.7 # Séparation des polygones d'apprentissage et de validation
  40 +
  41 + cloud_threshold:1 # seuil limite d'échantillonnage
  42 +
  43 + spatialResolution:10 # Résolution spatiale de la carte de classification en sortie
  44 +
  45 + firstStep:init
  46 + lastStep:sampling#init,sampling,learning,classification,mosaic,validation
  47 +
  48 + logFileLevel:"INFO" # Niveau de debug : https://docs.python.org/2/library/logging.html#logging-levels
  49 +
  50 + colorTable:'/work/OT/theia/oso/vincent/colorFile30classes.txt'
  51 + # Correspondance des code raster (définis dans /mnt/data/Soufflet/traitements/config/Nomenclature_SudFrance.csv) avec codes RGB
  52 +
  53 +
  54 + iota2_module_path:'/work/OT/theia/oso/modulefiles'
  55 + iota2_module_name:'release_66'
  56 +
  57 + remove_tmp_files:False #si True enlève les résulats intermédiaires
  58 +}
  59 +
  60 +################################################################################################
  61 +# training
  62 +################################################################################################
  63 +
  64 +argTrain:
  65 +{
  66 + sampleSelection : { "sampler":"random",
  67 + "strategy":"percent", #percent
  68 + "strategy.percent.p":0.1,
  69 + # pourcentage d'échantillonnage pour l'apprentissage dans les polygones déjà échantillonnés avec le paramètre ratio
  70 +
  71 + "ram":4000,
  72 + # "per_models":[{"target_model":4, "sampler":"periodic"}]
  73 + }
  74 +
  75 + classifier :'rf' # choix du Classifier, voir les paramètres de chaque classifier de otbcli_TrainImagesClassifier
  76 + options :'-classifier.rf.min 5 -classifier.rf.max 25 '
  77 + # choix des paramètres du Classifier, voir les paramètres de chaque classifier de otbcli_TrainImagesClassifier
  78 + sampleAugmentation : {"activate":False}
  79 +}
  80 +
  81 +################################################################################################
  82 +# classifications
  83 +################################################################################################
  84 +
  85 +argClassification:
  86 +{
  87 + classifMode :'fusion'
  88 + #fusion (si "fusion" alors mode_outside_RegionSplit utilisé - cas des régions trop grand pour openCV (apprentissage)) or separate ()
  89 +
  90 + fusionOptions :'-nodatalabel 0 -method majorityvoting' # Paramètres de l'application otbcli_FusionOfClassifications
  91 + pixType : 'uint8'
  92 +
  93 + noLabelManagement : 'maxConfidence'#maxConfidence or learningPriority
  94 +}
  95 +
  96 +################################################################################################
  97 +# sensors
  98 +################################################################################################
  99 +Sentinel_2:
  100 +{
  101 + nodata_Mask : False
  102 + nativeRes : 10
  103 + arbo : "/*/"
  104 + imtype : "*STACK.tif"
  105 + nuages : "CLM_R1.tif"
  106 + saturation : "SAT_R1.tif"
  107 + div : "EDG_R1.tif"
  108 + nodata : ""
  109 + nuages_reproj : "CLM_R1_reproj.tif"#must ended with _reproj.tif
  110 + saturation_reproj : "SAT_R1_reproj.tif"
  111 + div_reproj : "EDG_R1_reproj.tif"
  112 + arbomask : "/*/MASKS/"
  113 + startDate:"" # Date de début du rééchantillonnage temporel si "autoDate" est à False
  114 + endDate:"" # Date de fin du rééchantillonnage temporel si "autoDate" est à False
  115 + temporalResolution:10 # Résolution temporelle de rééchantillonnage temporel en jours
  116 + additionalFeatures:"b1+b2,(b1-b2)/(b1+b2)"
  117 + #comma splited # Formules pour ajouter des primitives (features) si le paramètre "useAdditionalFeatures" est à True
  118 + keepBands:[[1,"blue"],[2,"green"],[3,"red"],[7,"NIR"],[9,"SWIR"]] # A ne pas toucher pour l'instant
  119 +}
  120 +
  121 +
  122 +
  123 +GlobChain:
  124 +{
  125 + proj : "EPSG:2154"
  126 + features: ["NDVI","NDWI","Brightness"]
  127 + autoDate:True # Génération automatique des dates de début et de fin de rééchantillonnage temporel
  128 + writeOutputs:True # écriture des sorties de chaque étape de traitements -->pour le featurepath seulement!
  129 + useAdditionalFeatures:False
  130 + useGapFilling:True # Rééchantillonnage temporel (GapFilling)
  131 +}
  132 +
  133 +
  134 +iota2FeatureExtraction:
  135 +{
  136 + copyinput:True # A ne pas toucher pour l'instant
  137 + relrefl:False
  138 + # Normalisation par le rouge pour une meilleur approximation spatiale des bandes spectrales à 20 m (pertinence à évaluer)
  139 + keepduplicates:False # A ne pas toucher pour l'instant
  140 + extractBands:False # A ne pas toucher pour l'instant
  141 + acorfeat:False # NDVI recalibré : http://www.cesbio.ups-tlse.fr/multitemp/?p=12746
  142 +}
  143 +
  144 +################################################################################################
  145 +
  146 +
... ...
runs_iota2/prepare_samples.sh 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +module use /work/OT/theia/oso/modulefiles
  2 +module load release_66
  3 +iota2path=/work/OT/theia/oso/production/cnes/sources/iota2
  4 +MAASSPSRC=/work/OT/theia/oso/jordi/src/maassp
  5 +
  6 +python $iota2path/script/Iota2Cluster.py -config $MAASSPSRC/runs_iota2/prepare_samples.cfg -config_ressources /work/OT/theia/oso/production/cnes/inputs/OSO_resources.cfg -mode MPI
... ...