Try   HackMD

Notes / Mémo pour les enseignants

Liens utiles

Diagramme de Flux

Rusle

Version TD

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Modifications à faire pour l'application sur la save:

  • propriétés du sol : elles sont à calculer avec la base de données Donesol
  • calcul de C : on peut décider d'intégrer des pratiques
  • calcul de A : il faut maintenant intégrer R qui n'est plus constant.
  • Il faudra calculer à partir des données de météos

Version Basin Versant de la Save

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Détails

Formule plus générale pour facteur R :

numpy.where(A<=850,(0.04830*(A**1.610)),(587.8-(1.249*A)+(0.004105*(A**2))))

Formule plus générale pour facteur C :

((A==1) | (A==111))*0.001+((A==2) | (A==112))*0.001+((A==3) | (A==121) | (A==123) | (A==124) | (A==131) | (A==132) | (A==133))*0.001+((A==4) | (A==122))*0.001+((A==5) | (A==905) | (A==907))*0.280+((A==6) | (A==901) | (A==903) | (A==904))*0.200+((A==7) | (A==908))*0.320+(A==8)*0.280+((A==9) | (A==906))*0.320+((A==10) | (A==902))*0.380+((A==11) | (A==914))*0.150+(A==12)*0.300+((A==13) | (A==918) | (A==231))*0.100+((A==14) | (A==920) | (A==922) | (A==923) | (A==222) | (A==222) | (A==223))*0.200+((A==15) | (A==921) | (A==221))*0.250+((A==16) | (A==311) | (A==313) | (A==324))*0.004+((A==17) | (A==312))*0.004+((A==18) | (A==321))*0.020+((A==19) | (A==917) | (A==322) | (A==323))*0.020+((A==20) | (A==332))*0.020+((A==21) | (A==331) | (A==423))*0.200+((A==22) | (A==335))*0.001+((A==23) | (A==511) | (A==512) | (A==521) | (A==522) | (A==523))*0.001+(A==141)*0.100+(A==142)*0.050+(A==212)*0.150+(A==241)*0.140+(A==242)*0.065+(A==243)*0.125+(A==244)*0.080+(A==333)*0.275+(A==334)*0.325+(A==411)*0.100+(A==421)*0.100+(A==422)*0.100+(A==412)*0.100+(A==909)*0.225+(A==911)*0.500+(A==915)*0.200+(A==916)*0.175+(A==919)*0.175+(A==924)*0.200+(A==925)*0.200+(A==926)*0.200+(A==928)*0.100

Données

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Note certaines données peuvent en fait être dans les gpkg → ne pas faire attention aux formats qui distinguent ici raster / vecteur

Modèle builder

Fichier à utiliser

Versions :

  • v1 : première implémentation de David ;
  • v2 : correction de quelques bugs ;
  • v3 : Modification pour écrire le moins de paramètres en dur dans le modèle :
    • Nom des champs en paramètre d'entrée ;
    • Découpage et ré-échantillonnage (emprise et résolution spatiale) en fonction d'une couche de référence ;
    • formule des calculatrices rasters fonctionnant pour toutes occupation du sol ;

Inrae :

  • Modele_erosion_INRAe_v3_saga7.3.0.model3
  • Modele_erosion_INRAe_v3_saga7.3.0_adaptee.model3
  • Modele_erosion_INRAe_v3_saga7.8.2.model3

Rusle :

  • Modele_RUSLE_INRAe_v3_saga7.3.0.model3
  • Modele_RUSLE_INRAe_v3_saga7.3.0_adaptee.model3
  • Modele_RUSLE_INRAe_v3_saga7.8.2.model3

La version adaptée à la Save n'a pas été faite pour la 7.8.2 mais il n'y a que deux traitements à changer a priori.

Compatibilité entre les versions de SAGA

Les algos fill sink et catchment area sont dispos dans la version 7.3.0 mais pas dans la version 7.8.2 (celle du serveur). J'ai trouvé leurs nouveaux noms :

7.3.0 7.8.2
fill sink fill sink (Planchon/Darboux, 2001)
catchment area Accumulation de flux (haut vers le bas)
Ordi Version Saga Version saga Provideur
Marc 7.3.0 2.12.99
Serveur 7.8.2

Des nouveaux paramètres sont à renseigner (ils étaient renseignés par défaut avant, de manière transparente).

Dans la 7.8.2, pour Accumulation de flux (haut vers le bas), il faut changer les valeurs par défaut des paramètres.

  • Thresholded Linear Flow : true
  • Target accumalation, je ne suis pas sûr de la signification de ce paramètre, j'ai mis le mnt "filled".

On obtient alors bien les mêmes résultats qu'avec la version 7.3.0

Avec le docker

Attention, après plusieurs tests :

  • pour la correction du MNT :
    • utiliser fill sink de planchon/darboux avec les paramètres par défaut. Celui de wang et liu ne génère pas d'erreur tout de suite. En revanche, ce dernier permet bien de produire la direction des flux (pour sa visualisation)
  • Pour l'accumulation de flux :
    • l'outil catchment area ne fonctionne pas, en ayant testé les options :
      • plus paramètres de l'option method
      • en cochant ou non l'option : Thresholdd Linear Flow
    • l'outil catchment area (flow tracing) fonctionne, bien que la méthode D8 qu'on utilisait avant ne soit pas disponible. En tous cas, les résultats en sortie ne sont pas les mêmes dépendemment du MNT corrigé en entrée qu'on lui donne (sortie de planchon/darboux ou wang et liu), celui de planchon et darboux parait visuellement plus adapté. -> TODO, à creuser.

Rusle

V2 vers V3

Test exécutation sur le serveur

Environ 15s.

Détails implémentation

Pour le découpage/ré-échantillonnage de la couche OCS :

  • Système de projection imposé : 2154 ;
  • ré-échantillonnage avec ocsol majoritaire (mode) > remarque : la sortie ré-échantillonnée à moins d'effet poivre et sel que la sortie par défaut;

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • besoin d'ajouter une option en ligne de commande pour imposer la résolution de sortie 25.0 m (-tr 25.0 25.0)

Emprise de référence :

Jusqu'à présent, l'emprise des couches de sortie était écrite en dur dans les traitements du modeleur. Elle est maintenant accessible depuis "Extraire l'emprise d'une couche".

Configuration des noms des champs à utiliser dans les calculatrices de champs comme des entrées du modèles

  1. Ajouter des nouveaux paramètres de modèles correspondants aux champs :
    • ce sont les paramètres Champs vectoriel ;
    • bien indiquer de quelle couche vecteur ils doivent être issus ;

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  1. Les utiliser dans des formules :

    • Utiliser à côté de la formule, utiliser Valeur précalculée (1 sur la figure ci-dessous)
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
    • depuis ce menu, les champs seront accessibles sous forme de variable "@nomdemonchamps". Le nom de la variable peut être modifiée par rapport à ce que vous auriez rentré précédemment. Pour être sûr de ne pas vous tromper, utilisez le générateur d'expression (2 sur la figure ci-dessus). Vous trouverez les variables définis dans le modèle builder (1 sur la figure ci-dessous)
      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →
    • Attention à la syntaxe de la formule qui n'est pas la même que celle attendue dans la calculatrice de champs en mode "normal". Le format attendu est une chaîne de caractère (2 sur la figure ci-dessus), d'où l'utilisation de simple guillement ' pour définir une chaîne de caractère et des opérateurs de concaténation ||. Enfin, attention à bien entourer les noms des champs (contenu dans la variable @myfield dans l'exemple ci-dessus) de double guillemet ".
  2. Vous pouvez constater que vous avez un modèle où les champs d'une couche sont entrés de votre traitement.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Propriétés du sol pour les nuls

Rusle

Facteur K

Rappel :

K=2,8×107M1,14(12MO)+4,3×103(s2)+3,3×103(p3)

Avec :

  • M = (% limons + % sable) (100 - % argile)
  • MO = % de matière organique
  • s = structure du profil (1 < b < 4)
  • p = perméabilité ou capacité d’infiltration (1 < c < 6)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
facteur K : petit changement dans le calcul du M du facteur K (modèle RUSLE)

L'équation actuelle est :

M = (% limons + % sable) (100 - % argile).

Or, ce n'est pas le % sable mais le % sable très fin. Puisque la base de données DONESOL ne fournit pas cette information, le % sable sera mis à 0 et l'équation de M deviendra :

M = (% limons) (100 - % argile)

Comment les obtenir ?

  • M : Possible d'extraire les pourcentages directement à partir de la BD DoneSol.
  • MO : DoneSol ?
  • s : DoneSol ?
  • p : Donesol ?

UCS et UTS

Quelles données ?

  • les UCS viennent des Référentiels Régionaux Pédologique (unité cartographique) ;
  • les UTS viennent de la BD DoneSol (unité typologique).

Légende :

(Source : Lemercier et al. 2017. Guide d’utilisation des bases de données sol pour la production de cartes thématiques, RMT Sols & Territoires).

Énoncé de la semaine de modélisation

Questions auxquelles on veut répondre

Question générale : quel est le risque erosif sur le BV de la Save ?

  1. Quelles sont les communes les plus à risques ?
    • est-ce que les communes sont les mêmes selon les deux modèles ?
    • est-ce que les communes sont stables d'une année à l'autre ?
  2. À l'echelle d'une commune, sur celles visitées par exemple.
    • quels sont les facteurs responsables du risque d'erosion ? Un en particulier ? ou un peu de tous ?
    • est-ce que les zones à risques des communes sont stables d'une année à l'autre ?

Objectifs

  • produire une carte d'érosion du modèle Rusle et INRAe sur le Bassin de la Save et identifier les communes les plus à risques pour chacune d'entre elles ;
  • pour un modèle (Rusle ou Inrae), produire les cartes pour trois dates et identifier les communes à risque pour chacune d'entre elles ;
  • produire deux atlas :
    • un qui permette d'afficher le risque d'erosion sur les communes les plus à risque, pour trois dates différentes, sur un modèle au choix;
    • un qui permette d'afficher le risque d'érosion du modèle RUSLE et différents de ses facteurs (C, K, LxS), sur les communes qui seront visitées sur le terrain, les parcelles devront être visibles
  • à partir des productions, produire une analyse qui permette de répondre aux questions posées par le commanditaire.

Au total :

  • quatre cartes ;
  • deux atlas ;
  • une analyse.

Liste des taches

Spatialiser le facteur R à partir des données de précipitation

  • cumul annuel moyen pour 12 stations sur 10 ans :
    • ouvrir le fichier csv ;
    • comprendre quelle colonne utiliser : colonne RR qui est le cumul de précipitation annuelle à l'aide des métadonnées (fichier html) ;
    • calculer le cumul annuel moyen par station ;
  • créer un fichier de point : (info dans TD Syrphe "2. Importation de points géoréférencés (relevés GPS des pièges)")
    • créer un nouveau fichier csv avec :
      • le nom des stations ;
      • le cumul annuel moyen des années sélectionnées ;
    • faire une colonne x et une colonne y ;
    • entrez les coordonnées présentes dans le fichier html ;
    • importer le fichier csv dans QGIS (importer un fichier de texte délimité) :
      • attention au type des données ;
      • importer les géométries ;
      • bien renseigner le bon système de projection (lambert II etendu, on trouve son code dans le fichier texte) ;
    • reprojeter les données en Lambert 93 (2154);
  • créer un raster R :
    • faire une interpolation spatiale ;
      • dispo dans le TD MNT : Création de MNTs raster et comparaison ;
      • méthode idw : celui de qgis ;
  • changer la formule du calcul de A dans le modèle Builder.

Nouvelle nomenclature

  • comprendre la nouvelle nomenclature :
    • fichier texte nomenclature.txt -> "Code OSO ou Code_Group RGP + 900 (voir annexe des spécifications IGN du RPG pour connaître le Code_Group) ;
    • fichier Specs_IGN_RPG_2-0.pdf pour les codes RPG ;
    • fichier nomenclature_oso.pdf pour les codes oso ;
  • pour INRAE : conversion vers la nomenclature CLC
    • faire un fichier de conversion, ne serait-ce qu'à titre indicatif :
      • ouvrir en plus le fichier de nomenclature CLCL : nomenclature_CLC.pdf ;
      • proposer une colonne "code avant", "code après", nommées respectivement various_ocsol et CLC_reclass si on veut utiliser le modèle builder ;
    • faire la conversion :
      • à l'aide d'une calculatrice raster ou ;
      • à l'aide de l'outil reclassification parr couche ou par table ou ;
      • à l'aide du modèle builder fourni ;
  • pour RUSLE : trouver le facteur C pour les nouvelles classes d'occupation du sol :
    • lire la publication de Panaagos et al. pour trouver les valeurs ;
    • faire le calcul de C :
      • à l'aide d'une calculatrice raster ou ;
      • à l'aide de l'outil reclassification par couche ou par table ou ;
      • à l'aide du modèle builder fourni.

Nouvelles source de donnnées pour les propriétés des sols

  • extraire les informations de texture, de MO et teneur en Fer dans la BDdonesol ;
  • pour INRAE :
    • lire antoni et al pour trouver :
      • une valeur de battance / erodibilite en fonction du triangle de texture ;
      • ajuster cette valeur en fonction de la teneur en M0 et Fe ;
      • implémenter la conversion sur R / python / excel / access ;
      • faire la jointure sur les UCS du RRP ;
      • produire les rasters de battance et d'érodibilité comme précédemment ;
  • pour RUSLE :
    • faire la jointure sur les UCS du RRP ;
    • faire les calculs de M puis K comme précédemment.

Pré-traitement

découpage, ré-échantillonnage à 25m et reprojection peuvent se faire en renseignant bien dans l'outil reprojection (gdal-warp) :

  • le système de projection source et cible ;
  • la résolution spatiale en sortie ;
  • l'emprise spatiale en sortie.

Produire des indicateurs

  • à partir des cartes et à partir des limites d'intérêt (BV ou commune) ;
  • masse exportée (moyenne par commune et total) -> Outil : Statistiques de zones ;
  • surface (en absolue ou en pourcentage) de chaque niveau de risque -> Outil : Statistiques de zones ;

Atlas

(ressources dispos dans les cours de 1A et une aide en ligne)

  • lire les consignes en ligne
  • ouvrir le projet QGIS projet_SEABV_modele_atlas.qgz ;
  • puis Menu Projet ► Mises en page ► Save - comparaison modalités.
  • configurer l'affichage des cartes :
    • configurer l'affichage d'une carte (depuis QGIS cf cours 1a mentionné plus haut);
    • vérouiller les couches et eventuellement vérouiller le style de couches (cf cours 1a mentionné plus haut) ;
    • configurer la deuxième carte et vérouiller sa configuration ;
    • configurer la troisième
  • configurer l'afffichage des indicateurs ;
  • ajouter une légende ;
  • ajouter une barre d'échelle ;
  • ajouter des sources ;
  • ajouter un titre ;
  • faire une page élégante et pertinente (permet d'afficher l'information qu'on souhaite communiqué) ;

Oral

  • Explication du modèle (Grand principe)
  • les différences possibles entre groupes
  • Q 1
  • Q2 Q3
  • Focus sur les communes

Guide erreurs et questions courantes

Nouveau :

SAGA : à l'issue des deux traitements, le format du fichier en sortie est sdat, souvent pour le calcul de L, le format de sortie est alors par défaut un .sdat. Pour beaucoup, si on laisse se format, la projection de la couche L en sortie est mauvaise -> forcer le format de sortie à geotiff pour régler le pb.

Sortie de A : attention à la semiologie, iels se focalisent sur les valeurs extrêmes qui sont abhérentes.

Jointure de K et rasterisation : tant que la jointure n'est pas permanente, l'opération de rastérisation va planter. Attention au type de données

Info sur R et sa spatialisation : rajouter l'étape de calcul de P.

  • Coordonnées en Lambert 2, mettre un avertissement.

Découpage / Réchantillonage :

  • pas clair l'objectif de cette étape, et qu'elle est peut être optionnelle ,
  • pas clair non plus le fait de renseigner hauteur/largeur en pixel ou résolution verticale/horizontale en unités géoréférencées

Calcul de C : les infos de la manière dont les deux nomenclatures cohabitent ne sont pas trouvées facilement.

Comment débugger A si celui ci présente des erreurs ?

On fait on devrait leur faire masquer tout ce qui ne sont pas des surfaces agricoles, car en réalité, quand on fait une moyenne/médianne, on cherche à avoir un valeur moyenne/médianne des parcelles agricoles, et pas inclure les surfaces boisées ou les surfarces urbaines (par ex. )

Ancien

Notion de sémiologie : classes ordinales et nominales > trop loin. Expliquer à l'oral a minima.

reclass avec Grass : attention peut y avoir des problèmes de chemin :

  • espace ou accents ;
  • antivirus (avast) ;
  • permission denied.

Calculatrice Raster GDAL

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Erreur syntaxe calculatrice gdal

Si l'erreur suivante apparaît c'est qu'il y a une erreur dans la syntaxe de la formule, il ne faut pas faire copier coller, et faire attention aux espaces :

  • des espaces entre les opérateurs *
  • puissance : ** et non ^;
  • décimal : . et pas ,

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Erreur parce que couche ouverte dans QGIS

Traceback (most recent call last): 
File "C:\OSGeo4W\apps\Python39\lib\site-packages\osgeo_utils\auxiliary\gdal_argparse.py", line 175, in main 
self.doit(kwargs) 
File "C:\OSGeo4W\apps\Python39\lib\site-packages\osgeo_utils\gdal_calc.py", line 879, in doit 
return Calc(kwargs) 
File "C:\OSGeo4W\apps\Python39\lib\site-packages\osgeo_utils\gdal_calc.py", line 398, in Calc 
os.remove(outfile) 
PermissionError: [WinError 32] Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus: 'C:/Users/USER/Desktop/TD2 RUSLE/pente_rclass.tif'
Le processus a renvoyé le code erreur 1 

Ici parce que la couche était ouverte dans QGIS et le résultat n'a pas pu être écrit. Il suffit de retirer la couche de QGIS.

INRAE

  • Table de correspondance entre total et la sensibilité à l'érosion, fichier reclass :
    • pour fonctionner, le modèle a besoin que le entêtes des champs de la table (nom des colonnes) soient "total" et "sensibilite".

Rusle

  • Import de la table de propriété des sols CSV :
    • attention à ouvir le fichier texte non pas avec un "cliquer-déposer" (drag & drop pour faire chic) mais bien avec Couche > gestionnaire de données > texte délimitée en prenant bien soin de cliquer sur l'option Détecter les types de champs. Sinon les pourcentages seront détecté comme des chaîne de caractères (i.e. du texte) ;
    • tu peux aussi changer le type des champs (colonnes) a posteriori en utilisant l'outil Refactoriser les champs.