Salome HOME
test and doc linear interpolation on xyz bathymetry
[modules/hydro.git] / doc / salome / tutorial / preliminaires.rst
1 ..
2    Copyright (C) 2015-2016 EDF
3
4    This file is part of SALOME HYDRO module.
5
6    SALOME HYDRO module is free software: you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation, either version 3 of the License, or
9    (at your option) any later version.
10
11    SALOME HYDRO module is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
18
19 #########################################
20 Notions préliminaires
21 #########################################
22
23  * **Géoréférencement** : Le système de projection à utiliser dépend de
24    la localisation géographique de l'étude et doit être choisi et noté
25    pour faciliter la reprise de l'étude. En France métropolitaine, la
26    projection de référence est Lambert 93.
27    Toutes les données importées dans SALOME HYDRO doivent être dans le même réferentiel.
28    SALOME HYDRO ne propose pas de convertisseur.
29
30  * **Repère Local** : Les coordonnées planes, **toujours exprimées en mètres**,
31    dans la projection utilisée correspondent souvent à des grands nombres.
32    Par exemple, les coordonnées en Lambert 93 d'un point du territoire
33    métropolitain sont par exemple de l'ordre de (400 000, 6 500 000).
34    Le repère local consiste en un simple décalage de l'origine, permettant
35    de manipuler de plus petits nombres.
36    Pour améliorer la précision numérique dans les différentes étapes de
37    l'étude (géométrie, maillage, calcul...),
38    **il est très fortement recommandé de prendre un repère local**.
39    SALOME HYDRO affiche les coordonnées dans les deux repères (local et global)
40    et assure les translations automatiquement à l'import et à l'export.
41
42  * **ligne de contrainte** : Ligne sur laquelle le maillage va s'appuyer.
43    Dans SALOME, ces lignes sont définies dans la Géométrie (module GEOM) en tant que "edge".
44    Toutes les lignes que l'on construit dans le module HYDRO ne sont pas forcément gardées dans la géométrie.
45
46  * **axe hydraulique** : Ligne d'écoulement d'une rivière.
47    Souvent obtenue en reliant les points bas d'une succession de profils en travers.
48
49  * **ligne de crête** : Ligne reliant les points les plus hauts d'une digue.
50
51  * **partition** : Il s'agit d'une partition de l'espace en **zones** et **régions**.
52    Les concepts de zones et de régions sont introduits par la pratique dans l'exercice plus bas.
53    Les frontières d'une région correspondent aux lignes de contrainte du maillage. Les régions peuvent
54    être découpées en plusieurs zones. Une zone correspond à un mode de calcul de la bathymétrie.
55
56
57 ################################################
58 Principales étapes d'une étude avec SALOME-HYDRO
59 ################################################
60
61 .. |etapesEtude| image:: /_static/etapesEtude.png
62    :align: middle
63
64 SALOME contient l’ensemble des modules nécessaires au lancement d’une étude Telemac.
65
66 L’application SALOME-HYDRO concentre les modules HYDRO et HYDRO-SOLVER au sein de la plate-forme SALOME
67 et intègre le système Telemac2D.
68
69 La figure ci-dessous résume les étapes générales et les outils utilisés au sein de la plate-forme SALOME.
70
71   |etapesEtude|
72
73 L’étude se déroulera en passant par les différents modules de SALOME :
74
75  * HYDRO
76
77  * GEOM
78
79  * MESH
80
81  * HYDROSOLVER
82
83  * PARAVIS
84
85 Fonctionnement :
86
87  * HYDRO : on importe des images et/ou des plans
88
89  * HYDRO : on crée ou importe des lignes de contour d'**objets naturels** (rivières, iles...)
90    et **artificiels** (digues, canaux, obstacles...),
91
92  * HYDRO : on importe des champs de bathymétrie / altimétrie, ou des séries de profils de rivière,
93
94  * HYDRO : on constitue des objets naturels et artificiels,
95
96  * HYDRO : on constitue un **cas de calcul** en choisissant les objets utiles au cas,
97    on regroupe les **zones** (une zone correspond à un mode de calcul particulier de la bathymétrie)
98    en **régions** (Les frontières des régions correspondent aux lignes de contrainte du maillage,
99    ce sont les faces de la géométrie finale SALOME),
100
101  * HYDRO : on exporte le cas vers GEOM,
102
103  * GEOM : on reprend le cas dans GEOM, pour compléter l'identification des groupes liés aux différentes régions du domaine
104    et des conditions limites,
105
106  * SMESH : on choisit les algorithmes et hypothèses de maillage, on calcule le maillage et exporte le fichier MED du maillage,
107
108  * HYDRO : on calcule l'interpolation en Z, a partir du fichier MED et du cas de calcul,
109
110  * HYDROSOLVEUR : on définit le paramétrage physico numérique du calcul (fichier cas),
111
112  * HYDROSOLVEUR : on exécute le calcul,
113
114  * PARAVIS : on dépouille les résultats
115
116 Dans le module HYDRO lui-même, la logique d’enchaînement des étapes est la suivante
117 (voir les différents types d’objets manipulés dans l’arbre de gauche) :
118
119 Il s’agit ici de la description d’un déroulement type, des allers-retours entre les différentes étapes
120 sont tout à fait possibles et se produiront certainement.
121
122  * IMAGES :
123
124 L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler
125 pour situer les différents éléments de l’étude., Ces images devront être géoréférencées
126 dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple).
127 Il peut s’agir de capture d’écran du géoportail par exemple.
128
129  * BATHYMETRIE :
130
131 Les bathymétries constituées de nuages de points et/ ou de profils qui constituent le modèle de terrain
132 sur lequel va s’appuyer le maillage sont importées dans le projet.
133
134  * POLYLINES :
135
136 Les polylignes (importées et/ou construites dans SALOME) permettent de définir les contours des différents objets
137 naturels et artificiels qui vont intervenir dans le cas de calcul. Ce sont des lignes fermées dans le cas général.
138 Certaines de ces lignes constitueront les lignes de contrainte du maillage.
139 Les polylignes splines permettent de définir des contours sans que le maillage qui
140 s’y appuiera ne doive utiliser strictement les points de la ligne. Seule la forme générale compte.
141 On peut tracer les lignes à la souris ou les importer à partir d’un fichier.
142
143  * NATURAL OBJECTS :
144
145 Il s’agit des éléments constitués par exemple de l’emprise d’un domaine, d’îles, de lacs...
146 On sait en général leur associer une bathymétrie.
147
148  * ARTIFICIAL OBJECTS :
149
150 Il s’agit de construire des éléments tels que des digues ou des canaux de géométrie connue.
151
152  * CALCULATION CASES :
153
154 Lors de la définition du cas de calcul on sélectionne les objets à mailler et on résout les conflits
155 de recouvrement des bathymétries.
156
157 données préalables
158 ==================
159
160 * Pour les fichiers image : disposer de fichiers images des fonds carto ou photo et avoir repéré dans le système de travail
161   les coordonnées de 2 ou 3 points bien répartis sur l’image (suffisament éloignés pour améliorer la précision).
162   Avec trois points, on peut faire une transformation affine de l'image, pour le cas improbable ou celle-ci ne
163   correspondrait pas à une projection verticale.
164
165 * Disposer des données de bathy au format ASCII.
166
167 Pour l’instant les fichiers de bathymetrie doivent porter l’extension .xyz (3 colonnes x,y,z) ou .asc
168 (format de type grille a pas régulier, tel que fourni dans la BD Alti de l'IGN, par exemple).
169
170 Import d'images
171 ================
172
173 Il est possible d’importer des plans, cartes, et photos dans le module Hydro dans le dossier Images de l’arbre de l'étude.
174 L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler,
175 géoréférencées dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple).
176 Il est possible de récupérer l’intersection de deux images, de les fusionner, de restreindre une image à partir d’une polyline.
177
178 Les manipulations d'images sont introduites dans l'exercice plus bas.
179
180 Choix d'un repère local
181 =======================
182
183 Il est vivement conseillé de changer l’origine du système de coordonnées local
184 pour éviter de manipuler de très grands nombres et avoir plus de précisions dans les différents calculs, notamment pour le maillage.
185
186 Pour cela il faut utiliser le menu *Hydro/change local CS* et renseigner les coordonnées de la nouvelle origine.
187
188 Import de Bathymetries
189 =======================
190
191 Le mode opératoire est expliqué dans l'exercice plus bas.
192
193  * **remarque** : Si les altitudes sont inférieures à 0, la bathymétrie peut être cachée par les cartes ou photos
194    (qui sont à Z = 0 par convention). Si l'on a besoin de voir simultanément la bathymétrie et les images,
195    on peut, par exemple, soit passer en vue de dessous, soit éditer la bathymetrie (menu contextuel "edit imported bathymetry")
196    pour inverser les z, le temps de contrôler la superposition des cartes et de la bathymétrie
197    (ne pas oublier d'enlever l'inversion de z après !).
198
199 Récupération de données de bathymétrie d'un ancien maillage
200 -----------------------------------------------------------
201
202 Pour les différentes opérations ci-dessous, le mode opératoire précis reste à détailler. Les scripts Python cités
203 ne sont pas fournis avec cette version, is nécesitent des adaptations au cas par cas.
204
205  * Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant  avec un convertisseur
206    intégré dans SALOME-HYDRO du format selafin (.slf) au format .med (format dédié pour la plate-forme Salomé en général).
207
208  * A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000)
209    à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu).
210
211  * Puis la bathymétrie (champ de fond Z) est récupérée à l’aide d’un script Python qui crée un fichier .xyz
212    (position x du nœud, position y du nœud, Champ Z associé).
213
214  * Ce fichier .xyz est converti en Lambert93 grâce au logiciel libre Circé (sous Windows).
215
216  * Ensuite les positions des nœuds des bords sont récupérées à l’aide d’un script Python qui parcourt les nœuds,
217    constate si ils sont au bord et crée un fichier dans lequel chaque bord récupéré est mis en forme pour un import direct
218    dans le module HYDRO.
219
220  * On peut isoler de cette façon le contour de l’emprise, des piles de ponts, et les îles éventuelles.
221
222 Import d'objets de type lignes
223 ==================================
224
225 Le format SinusX (ASCII) décrit en annexe permet de décrire plusieurs types de lignes et de profils.
226 Les fichiers au format SinusX qui respectent les conventions décrites en annexe peuvent être importés
227 dans SALOME HYDRO.
228
229 polylignes
230 -----------
231
232 définition : lignes dans le plan XY, généralement utilisées pour définir des contours, des zones.
233
234 profils
235 ----------
236
237 Deux types de profils : géoréférencés ou non.
238
239 Les profils géoréférencés sont définis dans XYZ, les autres dans XZ (XY).
240 Utilité : section de digue, de canal, de rivière.
241
242 On définit une seule section pour un canal ou une digue, une série de profils pour une rivière.
243
244 Pour une digue, la valeur Z=0 correspond à la ligne de crête, pour un canal, c'est la ligne de fond.
245
246 On considère uniquement des profils symétriques (par rapport à la ligne de crête ou de fond).
247
248
249 Streams
250 --------
251
252 Rivière décrite par une succession de profils en travers, ordonnés via une ligne amont-aval qui passe par ces profils.
253 Cette ligne peut être l'axe hydraulique, mais ce n'est pas obligatoire.
254
255 Les fichiers de stream peuvent être des fichiers XYZ pour lequels chaque profil est séparé par une ligne vide.
256
257
258 Dessin de lignes
259 =================
260
261 Les contours de type polyligne sont nécessaires à la création de la géométrie.
262 Ils permettent la construction de l’emprise du modèle, des îles, du lit mineur d’un fleuve, ainsi que des digues, des canaux, des routes...
263
264 On peut afficher la bathymetrie ou les cartes lors de la saisie des contours pour se repérer.
265
266 polylines
267 ---------
268
269 Dans SALOME les polylignes sont de deux types :
270
271  *  polylignes (ligne brisée constituée d'une série de segments droits, pour décrire un objet géométrique)
272
273  *  splines (suite d’arcs qui donne une courbe à dérivée continue,
274     pour décrire une courbure naturelle, qui s’adaptera à la finesse de la discrétisation).
275
276 L’utilisation de splines permet de définir des contours sans que le maillage qui s’appuie dessus
277 ne s’accroche à tous les points de la ligne : seule la forme générale compte.
278
279 Le mode opératoire est détaillé dans l'exercice ci-dessous.
280
281 profils de digue ou canal
282 --------------------------
283
284 On peut importer ou dessiner ce type de profils.
285 Le mode opératoire du dessin est détaillé dans l'exercice ci-dessous.
286
287 profils de rivière
288 ------------------
289
290 Seul l'import de ces profils est prévu.
291
292 Création d'objets "naturels" type "zone immersible"
293 ===================================================
294
295 Une **zone immersible** est une zone qui sera maillée. Les iles qui ne sont pas submersibles peuvent être exclues du maillage.
296 Dans SALOME HYDRO, on distingue les îles du reste en désactivant leur attribut **Submersible**.
297
298 Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment.
299 On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative)
300 que l’on souhaite associer à cette zone géographique.
301
302  * Remarque : la bathymétrie est facultative dans la création des objets naturels, notamment dans le cas des îles.
303
304  * Remarque : Il est  possible de changer l’ordre d’affichage des différents objets naturels et artificiels qui sont tous par convention
305    dans le plan z=0, pour remettre "dessus" les petits objets.
306
307 Création d'objets "naturels" type "stream"
308 ==========================================
309
310 Le mode opératoire est détaillé dans l'exemple plus bas.
311
312 Création d'objet "artificiel" type digue ou canal
313 =================================================
314
315 Le mode opératoire est détaillé dans l'exemple plus bas.
316
317 Obstacles
318 ============
319
320 Objets géométriques complexes (bâtiments...) importés depuis GEOM,
321 pour constituer des zones non submersibles ("iles" ou assimilés).
322 Il faut mettre ces objets dans le repère local avant des les importer.
323
324 Tables de coefficients de Strickler, Land Cover maps
325 ====================================================
326
327 A compléter, la prise en compte des coefficients de strickler et des Land Cover Maps n'est pas finalisée dans la version 1.0 de mars 2016.
328
329 Constitution d'un cas de calcul
330 ================================
331
332 Lors de la constitution d'un cas de calcul, il est possible de ne sélectionner que certains des objets définis précedemment.
333 A partir d'une même base d'objets, on peut créer plusieurs cas de calculs plus ou moins complexes (prise en compte ou non
334 de détails comme des piles de ponts, par exemple).
335
336 L'emprise du domaine est définie par un contour polygonal particulier.
337
338 Le chevauchement des différents objets crée des zones "en conflit" pour lesquelles il faut faire des choix pour le calcul de
339 la bathymétrie.
340
341 Le résultat du découpage en zones des différents objets se chevauchant constitue l'opération dite de **partition**.
342
343 On peut regrouper des zones en régions homogènes dans la structure du maillage visée,
344 pour s’affranchir des contours que l'on ne veut pas garder en tant que lignes de contraintes.
345
346 Dans le cas de calcul, il est possible d'identifier certaines lignes qui serviront de support aux conditions limites.
347
348 Le resultat est exporté dans le module de géométrie.
349
350 Le mode opératoire est détaillé dans l'exemple plus bas.
351
352 Géométrie: Module GEOM
353 ======================
354
355 Une fois le cas de calcul terminé et exporté il apparaît dans le module GEOM.
356
357 Il faut activer ce module pour pouvoir visualiser et modifier le cas exporté.
358
359 Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s)
360 choisis au moment au moment de la définition du cas de calcul.
361
362 Il se peut qu’on ait besoin d'identifier certaines parties :
363
364  * Faces : pour mailler de façon différentes certaines zones
365
366  * Segments : pour définir les conditions aux limites.
367
368 Le mode opératoire est détaillé dans l'exemple plus bas.
369
370  * remarque : Il est possible d'utiliser le module de géométrie pour définir un certain nombre de
371    contraintes sur le maillage. par exemple, on peut définir des points fixes de notre maillage
372    (qui vont par exemple correspondre à des points de mesure).
373    **Toute modification de la géométrie se traduit par la création d'un nouvel objet et la perte des groupes
374    définis dans l'objet initial. Il faut donc créer les groupes en dernier, sur la géométrie finale,
375    et, si possible éviter les modifications qui font perdre les définitions automatiques du module HYDRO.**
376
377 Maillage: Module SMESH
378 =======================
379
380 On se réferera aux formations SALOME pour l'utilisation du module SMESH.
381
382 Le mode opératoire pour SALOME HYDRO est détaillé dans l'exemple plus bas.
383
384 Interpolation en Z
385 ===================
386
387 principes
388 ---------
389
390 En hydrodynamique il est primordial de connaître la valeur de la bathymétrie en chaque nœud de calcul.
391
392 Le calcul de la bathymétrie est fait zone par zone, a chaque zone est associé un mode de calcul de la bathymétrie :
393
394  * à partir des nuages de points
395
396  * à partir des profils de rivière
397
398  * à partir de l'axe et de la section des digues et canaux
399
400  * à partir de la CAO des obstacles
401
402 Pour les nuages de points, en version 1.0 on dispose d’un script qui permet d’interpoler la bathymétrie sur le maillage.
403 Ce script utilise un algorithme qui prend soit la valeur du Z du point le plus proche, soit la valeur Z interpolée
404 sur une triangulation préalable du maillage.
405
406 Le mode opératoire est détaillé dans l'exemple plus bas.
407
408 Mise en données Physico-numérique pour TELEMAC
409 ===============================================
410
411 Cette mise en données fait intervenir le module HYDROSOLVEUR pour l'assemblage du cas de calcul.
412
413 description des conditions limites
414 ----------------------------------
415
416 Chaque zone de condition limite correspond à un groupe nommé dans le maillage.
417 Les types de conditon limites associés à un groupe sont définis dans un fichier dont la syntaxe est donnée en exemple plus bas.
418
419 édition du fichier Cas
420 ----------------------
421
422 Les paramètres de calcul sont définis dans le fichier Cas avec la syntaxe TELEMAC 2D (avec un éditeur de texte standard).
423
424 inventaire des fichiers utilisés
425 --------------------------------
426
427 A compléter, voir l'exemple ci-dessous.
428
429 Lancement et suivi du calcul
430 ============================
431
432 Le module HYDROSOLVEUR permet de lancer TELEMAC 2D.
433
434 Le mode opératoire est détaillé dans l'exemple plus bas.
435
436 Dépouillement des résultats
437 ===========================
438
439 Le module PARAVIS est utilisé pour l'exploitation des résultats.
440 On se réferera aux formations SALOME pour l'utilisation du module PARAVIS.