.. _tutoriel.bathy: GENERATION DU MAILLAGE ET DE LA BATHYMETRIE ******************************************** La génération de la grille se fait avec le logiciel BMGTOOLS http://wwz.ifremer.fr/mars3d/Les-outils/BathyMeshGridTOOLS Il est composé de deux modules java distincts : * **CreateBMG** pour la construction du maillage * **CheckBMG** pour la retouche de la bathymétrie Construction d'un maillage avec le module CreateBMG ===================================================== En entrée du module *CreateBMG* il faut un fichier de traît de côte au format compatible (extension .line). Un exemple est fourni à cet endroit :: /home11/caparmor/mars/BMGTOOLS_Data/france.line Pour lancer le logciel se placer dans le répertoire *create_bmg-5.0.0/* via un terminal et lancer l'exécutable java :: ./CreateBMG.sh Etapes de création du maillage ------------------------------- 1. Définir un nouvea projet (*Fichier => nouveau projet*) 2. Choisir un nom de projet et un acronyme pour le modèle 3. Chosir son traît de côte (france.line) 4. Rester en *mode de création de grilles* en *Coordonnées géographiques(degrés)* .. image :: FIG/TUTORIEL/bmg1.png 5. Construire une nouvelle grille à l'aide du bouton *création de nouvelle grille* situé dans la barre d'outil au dessus de la carte La grille peut être définie par son nombre de mailles (selon i et j) ou par la taille des mailles .. note :: Pour une taille de maille de grille en **mètre** choisir dans le menu déroulant *Grille définie par* choisir *Taille de maille curviligne(mètres)* .. image :: FIG/TUTORIEL/bmg2.png :width: 800px :height: 600px 6. La grille peut ensuite être modifiée de deux manières : * En étirant interactivement les bords de la grille à l'aide du bouton *Modifier la grille* dans la barre d'outil. .. note :: attention au mode de modification qui permet de conserver soit la taille de la maille (donc augmenter ou diminuer le nombre de mailles) soit conserver le nombre de mailles. Dans ce cas c'est la taille des mailles qui est ajustée. * En modifiant dans la fenêtre de gauche les caractéristiques de la grille : 1. Sélectionner sa grille parmi les couches (fenêtre en haut à gauche) 2. Choisir dans le menu déroulant du haut *Dimensions curvilignes* 3. Modifier les limites Est/Ouest/Nord/Sud à la main si besoin 4. Choisir le mode de modification *Conserver le nombre de mailles* ou *Conserver la taille des mailles* 5. Cliquer sur le bouton *Redimensionner* 6. Modifier si besoin la taille des mailles 7. Cliquer sur le bouton *Redimensionner* .. image :: FIG/TUTORIEL/bmg3.png :width: 800px :height: 600px 7. Enregistrer le projet Après l'enregistrement un répertoire avec le nom du projet est crée et contient les fichiers suivants : * head.TEST : fichier head décrivant l'emprise et la résolution des grilles et qui sera lu par le modèle MARS * TEST.glo : fichier utilisé par BMGTOOLS pour retrouver la projection, l'emprise et la taille des grilles * RootGrid_Test.nc : fichier de grille au format Netcdf contenant les variables H0,HX,HY *vides* ie avant interpolation de la bathymétrie .. seealso :: Pour plus d'info sur le module *CreateBMG* voir la documentation complete dans le répertoire *create_bmg-5.0.0/documentation/IFR-BMGV5-D1B-Create-User-Manual-V5.0.0.pdf* .. note :: Exemple : voir exercice de formation :ref:`formation` Interpolation de sondes bathymétriques sur la grille ===================================================== L'étape suivant est de remplir le fichier Netcdf en interpolant des données de bathymétrie sur la grille du modèle. Ces interpolations sont gérées à l'aide de programmes en fortran et sont pilotés par un fichier *namelist* en entrée. Plusieurs types d'interpolations existent : 1. Le programme communément appelé **INTERP_BATHY.exe** qui permet de produire deux types d'interpolation : * Interpolation d'un semi de point (lon,lat,z) vers la grille. C'est une interpolation de type nuage de points vers grille structurée. Dans la namelist ce module est appelé *interp_sounding2grid*. Il est utilisé typiquement à partir de sondes bathymétriques ou de relevés LIDAR qui ne sont pas déjà grillés. * Interpolation grille à grille à partir d'un MNT (modèle numérique de terrain) vers la grille. Comme son nom l'indique, cette interpolation est utilisée quand le jeu de données est déjà grillé (ETOPO,GEBCO,MNT IFREMER ou bathy déjà existante) 2. Un autre programme d'interpolation de sondes sur la grille existe. C'est un programme fortran mais qui utilise un algorithme de Krigeage et la notion de qualité de jeu de sondes. Il est nommé **interpolation_sondes.exe** et utilise une namelist différente du programme vu en 1. Utilisation de INTERP_BATHY.exe -------------------------------- En entrée :: /home1/caparmor/mcaillau/TOOLS/libs/marmo/Bathymetry/interp_bathy/trunk/INTERP_BATHY.exe /home1/caparmor/mcaillau/TOOLS/libs/marmo/Bathymetry/interp_bathy/trunk/namelist paramétrisation de la namelist ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Choix du mode d'interpolation (sondes vers grille ou grille à grille) 2. Selon le choix remplir la section de la namelist correspondant et laisser les autres valeurs par défaut : * *interp_soundings2grid* * *data_catalog* : catalogue de sondes contenant la liste des fichiers de sondes au format sdg. Exemple :: cat sondes.cat /home1/caparmor/spetton/MARS/FORMATION/BATHY/SONDES/MNT_100m_SHOM_IFREMER_ZH.sdg /home1/caparmor/spetton/MARS/FORMATION/BATHY/SONDES/MNT_LIDAR_10m_WGS84_GEO_ZeroHydro.sdg * *grid_file* : fichier Netcdf crée par le module *CreateBMG* (cf `Construction d'un maillage avec le module CreateBMG`_) * *coastfile* : fichier de trait de côte au format exemple :: /home11/caparmor/mars/BMGTOOLS_Data/france.line * *nivmoypath* : Fichier de niveau moyens au format ASCII :: /home13/dedale/BATHY/NiveauxMoyens/niveaux_moyens_CST_FRANCE_24062009.nmoy * *interp_grid2grid* * *data_catalog* : liste de MNT au format netcdf. Exemple :: cat mnt.cat /home13/dedale/BATHY/MNT/IFR_MBAN_MANCHEATL_100_02_R/BN-depth2010.mnt.bmg.nc /home13/dedale/BATHY/MNT/IFR_MBAN_MANCHEATL_100_02_R/BS-depth2010.mnt.etendu_nord_sud.bmg.nc * *grid_file* : cf *interp_soundings2grid* * *nivmoypath* : cf *interp_soundings2grid* .. warning :: L'ordre des fichiers dans le catalogue de MNT est très important !!! Il faut mettre en premier les MNT à la résolution la plus haute .. warning :: Pour le trait de côte dans le partie *interp_grid2grid* c'est celui de la section *interp_soundings2grid* qui est utilisé Lancement de l'exécutable ^^^^^^^^^^^^^^^^^^^^^^^^^ L'exécutable lit en entrée le fichier nommé *namelist* :: ./INTERP_BATHY.exe Utilisation du programme de Krigeage ------------------------------------- En entrée :: /home1/caparmor/mcaillau/TOOLS/BATHY/INTERP_BMG/sound/namelist /home1/caparmor/mcaillau/TOOLS/BATHY/INTERP_BMG/sound/interpolation_sondes.exe Préparation du jeu de sondes avec indice de qualité ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Les fichiers de sondes bathymétriques doivent posséder un indice de qualité pour chaque sonde (1 pour le meilleur et des indices croissants plus la qualité diminue) * Fichier de qualité moyenne :: head /home1/caparmor/spetton/MARS/FORMATION/BATHY/SONDES/MNT_100m_SHOM_IFREMER_ZH.sdg -4.841002476 -4.190371783 48.050929917 48.566770237 WGS84 zero_hydro 124496 -4.841002476 48.050929917 4.310000000 5 -4.839711542 48.050929917 5.720000000 5 -4.838420608 48.050929917 5.740000000 5 * Fichier de meilleure qualité (MNT LIDAR plus fine résolution) :: head /home1/caparmor/spetton/MARS/FORMATION/BATHY/SONDES/MNT_LIDAR_10m_WGS84_GEO_ZeroHydro.sdg -5.067547448 -4.148677333 47.980455915 48.471360732 WGS84 zero_hydro 1482809 -5.055748700 48.057680463 23.438653959 1 -5.055735029 48.057590943 22.223798337 1 -5.055601496 48.057600107 21.683784277 1 -5.055467963 48.057609272 21.858770217 1 Regrouper ces fichiers dans un catalogue (peut importe l'ordre). Le programme va lire chaque sonde et son indice de qualité et définir par sous zones du domaine quel est le meilleur jeu de sondes disponible. Paramétrisation de la namelist ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note :: Dans l'algorithme de Krigeage on défini une fonction de répartition des points de sondes dans l'espace via leur covariance Semi variogramme exponentiel : f( h ) = C( 1 - exp( -h/A ) ) Semi variogramme linéaire : f( h ) = C.h/A. Editer la partie *interp_soundings2grid* : * *catalogPath* : chemin vers le catalogue de sondes * *nivmoypath* : chemin vers le niveau moyen :: /home13/dedale/BATHY/NiveauxMoyens/niveaux_moyens_CST_FRANCE_24062009.nmoy * *linecount* : nombre de lignes de la grille de prétraitement (=-1 pour calcul auto) * *columnCount* : nombre de colonnes de la grille de prétraitement (=-1 pour calcul auto) * *gridFile* : Fichier Netcdf crée par BMGTOOLS * *coastlineFile* : même format et fichier que pour INTERP_BATHY * *semiVariogrammType* : type de semi variogramme pour l'algo de Krigeage : 0=exponentiel ; 1=lineaire * *semiVariogrammFactorA* : facteur A du semi variogramme (defaut=1.5) * *semiVariogrammFactorC* : facteur C du semi variogramme (defaut=10.5) * *cellNumberDistance* : Distance max en nombre de mailles de la grille de prétraitement autour du point où l'on veut faire l'interpolation pour la recherche de sondes (defaut=4) * *neighborByPart* : L'algo de Krigeage divise l'espace de recherche de sondes autour du pt d'intérêt en 4 parties. Dans chaque partie l'algo recherche la sonde la plus proche dans la grille de prétraitement. Cette variable définie le nombre maximum de sondes qui sont cherchées dans chaque partie. (defaut=3) * *seaLongitude* : longitude d'un point situé en mer (H0>0.). Dans l'algorithme un premier traitement est effectué pour savoir quelles mailles sont situées à terre ou en mer. Pour cela l'algo a besoin de partir d'une maille en mer. Si on met une longitude absurde (ex: -400), l'algo considère la première maille de la grille (i=0,j=0) en mer (sans vérifier). En précisant une longitude (pt le proche) d'un point en mer on s'assure du bon fonctionnement de l'algo. * *sealatitude* : latitude du point en mer (si latitude absurde on considère la première maille du modèle) * *tidalfile* : fichier de marée au format Netcdf qui utilise le niveau moyen pour définir le trait de côte. ce fichier n'est pas indispensable mais sert à définir mieux le trait de côte comme la côte z=-2*niv_moy Lancement de l'exécutable ^^^^^^^^^^^^^^^^^^^^^^^^^ L'exécutable lit en entrée le fichier nommé *namelist* :: ./interpolation_sondes.exe Retouche d'une bathymétrie avec le programme *CheckBMG* ======================================================= Le module *CheckBMG* permet de retoucher un maillage bathymétrique une fois l'interpolation effectuée : * Soit pour retoucher les valeurs bathymétriques le long du traît de côte * Rajouter une digue ou autre ouvrage en définissant comme valeur à terre certaines mailles * Reboucher certains lacs crées (par erreur d'interpolation) à terre * Creuser des canaux pour mieux prendre en compte le débit des rivières En entrée du module il faut : * un fichier de traît de côte au format compatible line * un fichier de grille au format Netcdf crée par *CreateBMG* Pour lancer le logciel se placer dans le répertoire *check_bmg-5.0.0/* via un terminal et lancer l'exécutable java :: ./CheckBMG.sh 1. Après le lancement cliquer sur le bouton *ouvrir un fichier de grille* en haut à gauche de l'interface 2. Une fenêtre apparait avec les choix suivants : * *Fichier de grille* : allez chercher le fichier Netcdf crée par le module *CreateBMG* * *Fichier de traits de côte* : aller chercher le fichier france.line (ou autre) * *Fichier de sondes* : optionnel fichier de sondes (au format sdg) pour affichier des sondes par dessus la grille pour aide à la modification et pour vérifier le résultats de l'interpolation. * *Fichier rivière* : NE MARCHE PAS .. image :: FIG/TUTORIEL/bmg4.png :width: 800px :height: 600px 3. Description du module : .. image :: FIG/TUTORIEL/bmg5.png :width: 800px :height: 600px * En bas à gauche un bouton *Editer la barre de couleurs* permet d'ajuster la palette * En haut à droite un menu *Mode d'affichage* permet de basculer la visualisation en mode H0. Par défaut, c'est le mode HX/HY qui est utilisé car c'est celui là qui est utile pour faire des modifications .. warning :: Le mode d'affichage H0 n'est valable que pour de la visualisation. Il ne faut pas modifier la bathy dans ce mode et il n'est pas mis à jour si l'on modifie en mode HX/HY * Dans le volet de gauche, si on déroule le menu de la grille, il est possible de faire afficher les *valeurs de grille* .. image :: FIG/TUTORIEL/bmg6.png :width: 800px :height: 600px 4. Outils de retouche Un bouton est disponible dans la barre d'outil pour sélectionner son outil de retouche. 5 types de retouche sont disponibles et diffèrent par le mode de sélection des mailles: * **Point unique** : on sélectionne un bord de maille (HX ou HY) à la fois et en tapant *entrée* on peut attribuer une nouvelle côte à cette maille. * **Séquence** : on peut sélectionner plusieurs mailles de suite et leur attribuer une nouvelle côte * **Polyligne** : permet de sélectionner plusieurs mailles en suivant une ligne par exemple le trait de côte * **Polygone** : Sélection de plusieurs mailles selon un polygone * **Rectangle** : Sélection de plusieurs mailles selon un rectangle .. image :: FIG/TUTORIEL/bmg7.png :width: 800px :height: 600px .. note :: Un historique des changements est conservé dans un fichier texte crée avec l'extension .history. Il est possible d'annuler un ou plusieurs changements via l'onglet *Historique* dans la barre de tâche.