]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
test and doc linear interpolation on xyz bathymetry
authorPaul RASCLE <paul.rascle@edf.fr>
Mon, 4 Jul 2016 08:51:21 +0000 (10:51 +0200)
committerPaul RASCLE <paul.rascle@edf.fr>
Mon, 4 Jul 2016 08:51:21 +0000 (10:51 +0200)
doc/salome/examples/CMakeLists.txt
doc/salome/examples/CTestTestfileInstall.cmake
doc/salome/examples/h017_interpolationLineaire.py [new file with mode: 0644]
doc/salome/tutorial/interpolZ.py
doc/salome/tutorial/interpolationZ.rst
doc/salome/tutorial/maillage.rst
doc/salome/tutorial/preliminaires.rst

index 416092f4924ca401c88004488e46e3dd0606d2ac..71eac864be086c0618e7172d5da49f78ddc41787 100644 (file)
@@ -36,6 +36,7 @@ SET(EXAMPLES_TESTS
   h014_caseDigueManualInterpolZ.py
   h015_normalCaseManualTelemac.py
   h016_pilesPontManualMesh.py
+  h017_interpolationLineaire.py
 )
 
 SET(HYDRO_SAMPLES
index 0c707e22a59a1093e51376eb445c7c63e7c6109c..e6fe5257bb4483583299e8897bb60bbdb357a320 100644 (file)
@@ -38,7 +38,8 @@ SET(EXAMPLES_TESTS
   h014_caseDigueManualInterpolZ
   h015_normalCaseManualTelemac
   h016_pilesPontManualMesh
-)
+  h017_interpolationLineaire
+  )
 
 FOREACH(tfile ${EXAMPLES_TESTS})
   SET(TEST_NAME HYDRO_${tfile})
diff --git a/doc/salome/examples/h017_interpolationLineaire.py b/doc/salome/examples/h017_interpolationLineaire.py
new file mode 100644 (file)
index 0000000..63073d5
--- /dev/null
@@ -0,0 +1,367 @@
+# -*- coding: utf-8 -*-
+
+import os
+HYDRO_SAMPLES = os.path.join( os.environ["HYDRO_ROOT_DIR"], "bin/salome/test/HYDRO")
+
+import sys
+import salome
+
+salome.salome_init()
+theStudy = salome.myStudy
+
+###
+### HYDRO component
+###
+
+from HYDROPy import *
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
+
+hydro_doc = HYDROData_Document.Document( theStudy._get_StudyId() )
+
+hydro_doc.SetLocalCS( 430000.000, 6350000.000 )
+
+Strickler_table_1 = hydro_doc.CreateObject( KIND_STRICKLER_TABLE )
+Strickler_table_1.SetName( "Strickler table_1" )
+
+Strickler_table_1.SetAttrName( "CODE_06" )
+
+Strickler_table_1.Set( u"Pelouses et pâturages naturels", 1.0321 )
+Strickler_table_1.SetAttrValue( u"Pelouses et pâturages naturels", "321" )
+Strickler_table_1.SetColor( u"Pelouses et pâturages naturels", QColor( 204, 242, 77 ) )
+
+Strickler_table_1.Set( u"Aéroports", 1.0124 )
+Strickler_table_1.SetAttrValue( u"Aéroports", "124" )
+Strickler_table_1.SetColor( u"Aéroports", QColor( 230, 204, 230 ) )
+
+Strickler_table_1.Set( u"Systèmes culturaux et parcellaires complexes", 1.0242 )
+Strickler_table_1.SetAttrValue( u"Systèmes culturaux et parcellaires complexes", "242" )
+Strickler_table_1.SetColor( u"Systèmes culturaux et parcellaires complexes", QColor( 255, 230, 77 ) )
+
+Strickler_table_1.Set( u"Cultures annuelles associées à des cultures permanentes", 1.0241 )
+Strickler_table_1.SetAttrValue( u"Cultures annuelles associées à des cultures permanentes", "241" )
+Strickler_table_1.SetColor( u"Cultures annuelles associées à des cultures permanentes", QColor( 255, 230, 166 ) )
+
+Strickler_table_1.Set( u"Forêt et végétation arbustive en mutation", 1.0324 )
+Strickler_table_1.SetAttrValue( u"Forêt et végétation arbustive en mutation", "324" )
+Strickler_table_1.SetColor( u"Forêt et végétation arbustive en mutation", QColor( 166, 242, 0 ) )
+
+Strickler_table_1.Set( u"Décharges", 1.0132 )
+Strickler_table_1.SetAttrValue( u"Décharges", "132" )
+Strickler_table_1.SetColor( u"Décharges", QColor( 166, 77, 0 ) )
+
+Strickler_table_1.Set( u"Végétation clairsemée", 1.0333 )
+Strickler_table_1.SetAttrValue( u"Végétation clairsemée", "333" )
+Strickler_table_1.SetColor( u"Végétation clairsemée", QColor( 204, 255, 204 ) )
+
+Strickler_table_1.Set( u"Prairies et autres surfaces toujours en herbe à usage agricole", 1.0231 )
+Strickler_table_1.SetAttrValue( u"Prairies et autres surfaces toujours en herbe à usage agricole", "231" )
+Strickler_table_1.SetColor( u"Prairies et autres surfaces toujours en herbe à usage agricole", QColor( 230, 230, 77 ) )
+
+Strickler_table_1.Set( u"Périmètres irrigués en permanence", 1.0212 )
+Strickler_table_1.SetAttrValue( u"Périmètres irrigués en permanence", "212" )
+Strickler_table_1.SetColor( u"Périmètres irrigués en permanence", QColor( 255, 255, 0 ) )
+
+Strickler_table_1.Set( u"Plans d'eau", 1.0512 )
+Strickler_table_1.SetAttrValue( u"Plans d'eau", "512" )
+Strickler_table_1.SetColor( u"Plans d'eau", QColor( 128, 242, 230 ) )
+
+Strickler_table_1.Set( u"Territoires agroforestiers", 1.0244 )
+Strickler_table_1.SetAttrValue( u"Territoires agroforestiers", "244" )
+Strickler_table_1.SetColor( u"Territoires agroforestiers", QColor( 242, 204, 166 ) )
+
+Strickler_table_1.Set( u"Forêts mélangées", 1.0313 )
+Strickler_table_1.SetAttrValue( u"Forêts mélangées", "313" )
+Strickler_table_1.SetColor( u"Forêts mélangées", QColor( 77, 255, 0 ) )
+
+Strickler_table_1.Set( u"Glaciers et neiges éternelles", 1.0335 )
+Strickler_table_1.SetAttrValue( u"Glaciers et neiges éternelles", "335" )
+Strickler_table_1.SetColor( u"Glaciers et neiges éternelles", QColor( 166, 230, 204 ) )
+
+Strickler_table_1.Set( u"Plages, dunes et sable", 1.0331 )
+Strickler_table_1.SetAttrValue( u"Plages, dunes et sable", "331" )
+Strickler_table_1.SetColor( u"Plages, dunes et sable", QColor( 230, 230, 230 ) )
+
+Strickler_table_1.Set( u"Zones incendiées", 1.0334 )
+Strickler_table_1.SetAttrValue( u"Zones incendiées", "334" )
+Strickler_table_1.SetColor( u"Zones incendiées", QColor( 0, 0, 0 ) )
+
+Strickler_table_1.Set( u"Tissu urbain continu", 1.0111 )
+Strickler_table_1.SetAttrValue( u"Tissu urbain continu", "111" )
+Strickler_table_1.SetColor( u"Tissu urbain continu", QColor( 230, 0, 77 ) )
+
+Strickler_table_1.Set( u"Chantiers", 1.0133 )
+Strickler_table_1.SetAttrValue( u"Chantiers", "133" )
+Strickler_table_1.SetColor( u"Chantiers", QColor( 255, 77, 255 ) )
+
+Strickler_table_1.Set( u"Estuaires", 1.0522 )
+Strickler_table_1.SetAttrValue( u"Estuaires", "522" )
+Strickler_table_1.SetColor( u"Estuaires", QColor( 166, 255, 230 ) )
+
+Strickler_table_1.Set( u"Marais maritimes", 1.0421 )
+Strickler_table_1.SetAttrValue( u"Marais maritimes", "421" )
+Strickler_table_1.SetColor( u"Marais maritimes", QColor( 204, 204, 255 ) )
+
+Strickler_table_1.Set( u"Forêts de conifères", 1.0312 )
+Strickler_table_1.SetAttrValue( u"Forêts de conifères", "312" )
+Strickler_table_1.SetColor( u"Forêts de conifères", QColor( 0, 166, 0 ) )
+
+Strickler_table_1.Set( u"Surfaces essentiellement agricoles, interrompues par des espaces naturels importants", 1.0243 )
+Strickler_table_1.SetAttrValue( u"Surfaces essentiellement agricoles, interrompues par des espaces naturels importants", "243" )
+Strickler_table_1.SetColor( u"Surfaces essentiellement agricoles, interrompues par des espaces naturels importants", QColor( 230, 204, 77 ) )
+
+Strickler_table_1.Set( u"Tourbières", 1.0412 )
+Strickler_table_1.SetAttrValue( u"Tourbières", "412" )
+Strickler_table_1.SetColor( u"Tourbières", QColor( 77, 77, 255 ) )
+
+Strickler_table_1.Set( u"Extraction de matériaux", 1.0131 )
+Strickler_table_1.SetAttrValue( u"Extraction de matériaux", "131" )
+Strickler_table_1.SetColor( u"Extraction de matériaux", QColor( 166, 0, 204 ) )
+
+Strickler_table_1.Set( u"Réseaux routier et ferroviaire et espaces associés", 1.0122 )
+Strickler_table_1.SetAttrValue( u"Réseaux routier et ferroviaire et espaces associés", "122" )
+Strickler_table_1.SetColor( u"Réseaux routier et ferroviaire et espaces associés", QColor( 204, 0, 0 ) )
+
+Strickler_table_1.Set( u"Mers et océans", 1.0523 )
+Strickler_table_1.SetAttrValue( u"Mers et océans", "523" )
+Strickler_table_1.SetColor( u"Mers et océans", QColor( 230, 242, 255 ) )
+
+Strickler_table_1.Set( u"Equipements sportifs et de loisirs", 1.0142 )
+Strickler_table_1.SetAttrValue( u"Equipements sportifs et de loisirs", "142" )
+Strickler_table_1.SetColor( u"Equipements sportifs et de loisirs", QColor( 255, 230, 255 ) )
+
+Strickler_table_1.Set( u"Forêts de feuillus", 1.0311 )
+Strickler_table_1.SetAttrValue( u"Forêts de feuillus", "311" )
+Strickler_table_1.SetColor( u"Forêts de feuillus", QColor( 128, 255, 0 ) )
+
+Strickler_table_1.Set( u"Vergers et petits fruits", 1.0222 )
+Strickler_table_1.SetAttrValue( u"Vergers et petits fruits", "222" )
+Strickler_table_1.SetColor( u"Vergers et petits fruits", QColor( 242, 166, 77 ) )
+
+Strickler_table_1.Set( u"Végétation sclérophylle", 1.0323 )
+Strickler_table_1.SetAttrValue( u"Végétation sclérophylle", "323" )
+Strickler_table_1.SetColor( u"Végétation sclérophylle", QColor( 166, 230, 77 ) )
+
+Strickler_table_1.Set( u"Landes et broussailles", 1.0322 )
+Strickler_table_1.SetAttrValue( u"Landes et broussailles", "322" )
+Strickler_table_1.SetColor( u"Landes et broussailles", QColor( 166, 255, 128 ) )
+
+Strickler_table_1.Set( u"Tissu urbain discontinu", 1.0112 )
+Strickler_table_1.SetAttrValue( u"Tissu urbain discontinu", "112" )
+Strickler_table_1.SetColor( u"Tissu urbain discontinu", QColor( 255, 0, 0 ) )
+
+Strickler_table_1.Set( u"Cours et voies d'eau", 1.0511 )
+Strickler_table_1.SetAttrValue( u"Cours et voies d'eau", "511" )
+Strickler_table_1.SetColor( u"Cours et voies d'eau", QColor( 0, 204, 242 ) )
+
+Strickler_table_1.Set( u"Oliveraies", 1.0223 )
+Strickler_table_1.SetAttrValue( u"Oliveraies", "223" )
+Strickler_table_1.SetColor( u"Oliveraies", QColor( 230, 166, 0 ) )
+
+Strickler_table_1.Set( u"Vignobles", 1.0221 )
+Strickler_table_1.SetAttrValue( u"Vignobles", "221" )
+Strickler_table_1.SetColor( u"Vignobles", QColor( 230, 128, 0 ) )
+
+Strickler_table_1.Set( u"Rizières", 1.0213 )
+Strickler_table_1.SetAttrValue( u"Rizières", "213" )
+Strickler_table_1.SetColor( u"Rizières", QColor( 230, 230, 0 ) )
+
+Strickler_table_1.Set( u"Zones portuaires", 1.0123 )
+Strickler_table_1.SetAttrValue( u"Zones portuaires", "123" )
+Strickler_table_1.SetColor( u"Zones portuaires", QColor( 230, 204, 204 ) )
+
+Strickler_table_1.Set( u"Zones industrielles ou commerciales et installations publiques", 1.0121 )
+Strickler_table_1.SetAttrValue( u"Zones industrielles ou commerciales et installations publiques", "121" )
+Strickler_table_1.SetColor( u"Zones industrielles ou commerciales et installations publiques", QColor( 204, 77, 242 ) )
+
+Strickler_table_1.Set( u"Marais salants", 1.0422 )
+Strickler_table_1.SetAttrValue( u"Marais salants", "422" )
+Strickler_table_1.SetColor( u"Marais salants", QColor( 230, 230, 255 ) )
+
+Strickler_table_1.Set( u"Marais intérieurs", 1.0411 )
+Strickler_table_1.SetAttrValue( u"Marais intérieurs", "411" )
+Strickler_table_1.SetColor( u"Marais intérieurs", QColor( 166, 166, 255 ) )
+
+Strickler_table_1.Set( u"Espaces verts urbains", 1.0141 )
+Strickler_table_1.SetAttrValue( u"Espaces verts urbains", "141" )
+Strickler_table_1.SetColor( u"Espaces verts urbains", QColor( 255, 166, 255 ) )
+
+Strickler_table_1.Set( u"Lagunes littorales", 1.0521 )
+Strickler_table_1.SetAttrValue( u"Lagunes littorales", "521" )
+Strickler_table_1.SetColor( u"Lagunes littorales", QColor( 0, 255, 166 ) )
+
+Strickler_table_1.Set( u"Roches nues", 1.0332 )
+Strickler_table_1.SetAttrValue( u"Roches nues", "332" )
+Strickler_table_1.SetColor( u"Roches nues", QColor( 204, 204, 204 ) )
+
+Strickler_table_1.Set( u"Terres arables hors périmètres d'irrigation", 1.0211 )
+Strickler_table_1.SetAttrValue( u"Terres arables hors périmètres d'irrigation", "211" )
+Strickler_table_1.SetColor( u"Terres arables hors périmètres d'irrigation", QColor( 255, 255, 168 ) )
+
+Strickler_table_1.Set( u"Zones intertidales", 1.0423 )
+Strickler_table_1.SetAttrValue( u"Zones intertidales", "423" )
+Strickler_table_1.SetColor( u"Zones intertidales", QColor( 166, 166, 230 ) )
+
+
+Strickler_table_1.Update()
+
+contour = hydro_doc.CreateObject( KIND_POLYLINEXY )
+contour.SetName( "contour" )
+
+contour.SetZLevel( 0 )
+
+contour.AddSection( "Section_1", 0, 1 )
+contour.AddPoint( 0, gp_XY( 56217.97, 14517.47 ) )
+contour.AddPoint( 0, gp_XY( 58938.24, 14526.73 ) )
+contour.AddPoint( 0, gp_XY( 58947.49, 13277.63 ) )
+contour.AddPoint( 0, gp_XY( 56208.72, 13286.88 ) )
+
+contour.Update()
+
+
+Cloud_02 = hydro_doc.CreateObject( KIND_BATHYMETRY )
+Cloud_02.SetName( "Cloud_02" )
+
+Cloud_02.SetAltitudesInverted( 0 )
+if not(Cloud_02.ImportFromFile( os.path.join(HYDRO_SAMPLES, "Cloud_02.xyz" ))):
+  raise ValueError('problem while loading bathymetry')
+
+Cloud_02.Update()
+
+
+domaine = hydro_doc.CreateObject( KIND_IMMERSIBLE_ZONE )
+domaine.SetName( "domaine" )
+
+domaine.SetZLevel( 1 )
+
+domaine.SetAltitudeObject( Cloud_02 )
+domaine.SetPolyline( contour )
+
+domaine.Update()
+
+
+# Calculation case
+etude = hydro_doc.CreateObject( KIND_CALCULATION )
+etude.SetName( "etude" )
+
+etude.SetAssignmentMode( HYDROData_CalculationCase.MANUAL )
+etude.AddGeometryObject( domaine )
+
+case_geom_group = domaine.GetGroup( 0 )
+etude.AddGeometryGroup( case_geom_group )
+etude.SetBoundaryPolyline( contour )
+
+# Start the algorithm of the partition and assignment
+etude.Update()
+etude_Reg_1 = hydro_doc.FindObjectByName( "etude_Reg_1" )
+etude_Zone_1 = hydro_doc.FindObjectByName( "etude_Zone_1" )
+etude_Zone_1.SetColor( QColor( 124, 192, 64 ))
+etude_Reg_1.AddZone( etude_Zone_1 )
+etude_Reg_1.SetName( "etude_Reg_1" )
+
+# Export of the calculation case
+etude_entry = etude.Export( theStudy._get_StudyId() )
+
+# Get geometry shape and print debug information
+import GEOM
+print "Entry:", etude_entry
+HYDRO_etude_1 = salome.IDToObject( str( etude_entry ) )
+print "Geom shape:", HYDRO_etude_1
+print "Geom shape name:", HYDRO_etude_1.GetName()
+
+
+###
+### GEOM component
+###
+
+import GEOM
+from salome.geom import geomBuilder
+import math
+import SALOMEDS
+
+
+geompy = geomBuilder.New(theStudy)
+
+#geomObj_1 = geompy.CreateGroup(HYDRO_etude, geompy.ShapeType["EDGE"])
+#geompy.UnionIDs(geomObj_1, [7, 9])
+#geomObj_3 = geompy.CreateGroup(HYDRO_etude, geompy.ShapeType["EDGE"])
+#geompy.UnionIDs(geomObj_3, [4, 11, 17, 24, 26, 28, 14, 19, 20, 22, 31, 39, 41, 33, 35, 37])
+etude_domaine_Outer = geompy.CreateGroup(HYDRO_etude_1, geompy.ShapeType["EDGE"])
+geompy.UnionIDs(etude_domaine_Outer, [3, 6, 8, 10])
+domaine = geompy.CreateGroup(HYDRO_etude_1, geompy.ShapeType["FACE"])
+geompy.UnionIDs(domaine, [1])
+geompy.addToStudyInFather( HYDRO_etude_1, etude_domaine_Outer, 'etude_domaine_Outer' )
+geompy.addToStudyInFather( HYDRO_etude_1, domaine, 'domaine' )
+
+###
+### SMESH component
+###
+
+import  SMESH, SALOMEDS
+from salome.smesh import smeshBuilder
+
+smesh = smeshBuilder.New(theStudy)
+relief = smesh.Mesh(HYDRO_etude_1)
+NETGEN_2D = relief.Triangle(algo=smeshBuilder.NETGEN_1D2D)
+NETGEN_2D_Parameters_1 = NETGEN_2D.Parameters()
+NETGEN_2D_Parameters_1.SetMaxSize( 25 )
+NETGEN_2D_Parameters_1.SetSecondOrder( 0 )
+NETGEN_2D_Parameters_1.SetOptimize( 1 )
+NETGEN_2D_Parameters_1.SetFineness( 3 )
+NETGEN_2D_Parameters_1.SetMinSize( 10 )
+NETGEN_2D_Parameters_1.SetUseSurfaceCurvature( 1 )
+NETGEN_2D_Parameters_1.SetFuseEdges( 1 )
+NETGEN_2D_Parameters_1.SetQuadAllowed( 0 )
+isDone = relief.Compute()
+domaine_1 = relief.GroupOnGeom(domaine,'domaine',SMESH.FACE)
+domaine_2 = relief.GroupOnGeom(domaine,'domaine',SMESH.NODE)
+smesh.SetName(relief, 'relief')
+try:
+  relief.ExportMED( r'/tmp/relief.med', 0, SMESH.MED_V2_2, 1, None ,1)
+except:
+  print 'ExportToMEDX() failed. Invalid file name?'
+
+
+## Set names of Mesh objects
+smesh.SetName(domaine_1, 'domaine')
+smesh.SetName(NETGEN_2D.GetAlgorithm(), 'NETGEN_2D')
+smesh.SetName(relief.GetMesh(), 'relief')
+smesh.SetName(domaine_2, 'domaine')
+smesh.SetName(NETGEN_2D_Parameters_1, 'NETGEN 2D Parameters_1')
+
+
+if salome.sg.hasDesktop():
+  salome.sg.updateObjBrowser(1)
+
+#----------------------
+# --- Z interpolation with HYDRO
+#----------------------
+
+from salome.hydrotools.interpolZ import interpolZ, createZfield2
+from salome.hydrotools.controls import controlStatZ
+
+# --- nom du cas dans HYDRO
+nomCas = 'etude'
+
+# --- fichier med 2D(x,y) du cas, produit par SMESH
+fichierMaillage = '/tmp/relief.med'
+
+# --- dictionnaire: (clé = nom de groupe med, valeur= nom de région)
+dicoGroupeRegion= dict(domaine  = 'etude_Reg_1',
+                      )
+
+# --- méthode d'interpolation sur les nuages de points de bathymétrie
+#     interpolMethod = 0 : interpolation au point le plus proche
+#     interpolMethod = 1 : interpolation linéaire de l'altitude par triangulation du nuage de points
+interpolMethod = 1
+
+# --- valeur de Z à prendre quand le noeud n'est pas trouvé dans la région (détection de problèmes)
+zUndef = 90
+
+# --- Z interpolation Z sur la bathymetrie/altimetrie aux noeuds du maillage
+statz = interpolZ(nomCas, fichierMaillage, dicoGroupeRegion, zUndef, interpolMethod)
+refstatz = {'domaine': (27.101, 168.257)}
+controlStatZ(statz, refstatz)
+
+# --- add a field on nodes of type double with z values, named "BOTTOM"
+createZfield2(fichierMaillage)
index 0f55586bd9c5615c12f3eab5dbd25b33fb9d2619..cbee01a1cb5a5c77d26da5636e958da3f079d516 100644 (file)
@@ -14,6 +14,12 @@ dicoGroupeRegion= dict(litMineur  = 'garonne_1_litMineur',
                       riveDroite = 'garonne_1_riveDroite',
                       riveGauche = 'garonne_1_riveGauche',
                       )
+
+# --- méthode d'interpolation sur les nuages de points de bathymétrie
+#     interpolMethod = 0 : interpolation au point le plus proche
+#     interpolMethod = 1 : interpolation linéaire de l'altitude par triangulation du nuage de points
+interpolMethod = 0
+
 # --- valeur de Z à prendre quand le noeud n'est pas trouvé dans la région (détection de problèmes)                       
 zUndef = 90
 
@@ -31,7 +37,7 @@ theStudyId = salome.myStudyId
 from salome.hydrotools.interpolZ import interpolZ, createZfield2
 
 # --- Z interpolation Z sur la bathymetrie/altimetrie aux noeuds du maillage
-statz = interpolZ(nomCas, fichierMaillage, dicoGroupeRegion, zUndef)
+statz = interpolZ(nomCas, fichierMaillage, dicoGroupeRegion, zUndef, interpolMethod)
 
 # --- ajout d'un champ aux noeud, de nom "BOTTOM", content les valeurs Z
 createZfield2(fichierMaillage)
index 9b8ebc7df6701c05f46eaaa213026d886ac7bd97..173ed74568a2f541a1bdebda2bd4ab630e30a48a 100644 (file)
@@ -55,15 +55,22 @@ avec des suffixes différents, rangés dans le répertoire du fichier d'origine
 
 * garonne_1.med  : fichier d'origine (coordonnée z = 0)
 * garonne_1.xyz  : fichier xyz (ASCII) des altitudes aux noeuds
-* garonne_1Z.med : étape intermédiaire du script 
+* garonne_1Z.med : étape intermédiaire du script
 * garonne_1F.med : coordonnée Z à sa valeur calculée, et champ "BOTTOM" avec la valeur Z aux noeuds
 
-Il faut recopier le script et l'adapter en fonction des noms utilisés dans le cas de calcul 
-et pour le maillage.
+Il faut recopier le script et l'adapter en fonction des noms de régions utilisés dans le cas de calcul
+et des noms de groupes de noeuds dans le maillage.
+
+L'interpolation sur les nuages de points peut se faire de deux manières, selon que les nuages sont plus
+denses que le maillage, ou l'inverse.
+Pour des nuages de points très denses, il suffit de prendre l'altitude du point le plus proche du nuage.
+quand le maillage est plus dense que le nuage, il vaut mieux prendre l'altitude linéarisée, obtenue par
+une triangulation préalable du nuage de points. Cette dernière méthode est plus précise
+mais un peu plus coûteuse.
 
 Pour exécuter le script, il faut que le module HYDRO soit bien actif dans l'étude.
 Si l'on reprend une étude précédemment sauvegardée, il faut avoir activé le module HYDRO avant
-de lancer le script (il suffit de sélectionner HYDRO au moins une fois, 
+de lancer le script (il suffit de sélectionner HYDRO au moins une fois,
 pour que les données stockées dans le fichier d'étude soient lues).
 Nous exécutons le script avec la commande du menu *File / Load Script...*.
 Le script bloque l'interface graphique le temps de son exécution. Il affiche une trace d'exécution dans la console
@@ -88,18 +95,18 @@ Le champ s'affiche dans la vue 3D. Le menu contextuel de la vue 3D propose la co
 Visualisation dans le module SMESH
 ----------------------------------
 
-A la fin de l'exécution du script d'interpolation, le maillage *HYDRO_Garonne_1* est apparu une seconde fois dans l'arbre d'étude, 
+A la fin de l'exécution du script d'interpolation, le maillage *HYDRO_Garonne_1* est apparu une seconde fois dans l'arbre d'étude,
 sous la première instance, avec une icône différente. S'il n'y est pas, le menu contextuel de l'arbre d'étude propose la commande *Refresh*.
 
 Nous affichons ce maillage dans le module SMESH, avec la commande *show*.
 Pour mieux voir le relief, il faut modifier l'échelle en Z avec l'icône |occ_view_scaling| de la vue 3D. Ici, il suffit de prendre un facteur 3 pour Z.
 
-*Rappel* : pour manipuler l'objet dans la vue 3D, il faut utiliser la touche <CTRL> et les boutons de la souris, ou la molette pour le zoom. 
+*Rappel* : pour manipuler l'objet dans la vue 3D, il faut utiliser la touche <CTRL> et les boutons de la souris, ou la molette pour le zoom.
 
 Voici la vue des groupes correspondant aux régions :
 
   |Capture_meshZ|
-  
+
 .. only:: html
- 
+
    :ref:`ref_exempleInondation`
index 663491c70b4674e913cdd448afc995277d65af4c..2b4f642f2d7ee0cf993e3d7ba73355d78530321d 100644 (file)
@@ -79,13 +79,13 @@ Lorsque la géométrie est prête, nous activons le module de maillage, *SMESH*.
 Introduction au fonctionnement de SMESH
 =======================================
 
-Pour spécifier le maillage, on définit en général un algorithme par défaut avec son paramétrage : 
+Pour spécifier le maillage, on définit en général un algorithme par défaut avec son paramétrage :
 dans SMESH, on parle des *hypothèses* de l'algorithme.
 
 Cet algorithme et ces hypothèses s'appliquent partout sauf modification portant sur une partie de
 la géométrie (*sub shape*).
 
-On peut donc créer des sous maillages sur une face ou un groupe de faces, 
+On peut donc créer des sous maillages sur une face ou un groupe de faces,
 une edge ou un groupe d'edges, pour définir des algorithmes et/ou des hypothèses spécifiques.
 
 Lors du maillage, la géométrie de la pièce à mailler est explorée en partant de la dimension 1 (edges),
@@ -98,7 +98,7 @@ Quand ces algorithmes tolèrent que l'on impose le maillage de certaines edges,
 la définition de sous maillages de la ou des faces concernées sera prise en compte, sinon non.
 De même, suivant l'algorithme choisi pour une face, l'onglet 1D du dialogue de maillage est actif on non.
 
-Il en résulte que, dans certains cas, pour certaines *sub shapes*, plusieurs algorithmes et/ou hypothèses 
+Il en résulte que, dans certains cas, pour certaines *sub shapes*, plusieurs algorithmes et/ou hypothèses
 sont définis, et il faut alors établir des priorités. Ces situations sont détectées automatiquement
 et l'utilisateur se voit proposer des choix.
 
@@ -112,11 +112,11 @@ Nous sélectionnons la géométrie *HYDRO_garonne_1* dans l'arbre d'étude, et l
 menu *Mesh/Create Mesh* ou icône |mesh_init|.
 
 Dans le dialogue *Create Mesh*, nous choisissons l'algorithme de maillage *Netgen 1D-2D* qui va s'appliquer
-par défaut sur l'ensemble de la géométrie. 
+par défaut sur l'ensemble de la géométrie.
 
   |Capture_CreateMesh|
 
-Il faut préciser les hypothèses de maillage : 
+Il faut préciser les hypothèses de maillage :
 
 Nous cliquons sur le bouton actif dans la ligne *Hypothesis* pour choisir un type d'hypothèses,
 et choisissons *Netgen 2D Parameters*.
@@ -132,7 +132,7 @@ Le maillage apparaît sous le nom *Mesh_1* dans l'arbre avec une icône indiquan
 
 Il est possible de renommer le maillage, soit directement, soit via le dialogue d'édition, à partir du menu contextuel.
 
-Toujours à partir du dialogue d'édition |mesh_edit|, il est possible changer l'algorithme, 
+Toujours à partir du dialogue d'édition |mesh_edit|, il est possible changer l'algorithme,
 ou de modifier les hypothèses : |mesh_hypo_edit|.
 
 Sous maillages
@@ -147,7 +147,7 @@ Elle l'est par défaut.
 Il est utile de renommer tout de suite le sous-maillage (première ligne du dialogue).
 
 Nous choisissons l'algorithme *Quadrangle (Medial Axis projection)*. Cet algorithme reconstruit un axe hydraulique fictif,
-découpe la rivière en quadrangles, normalement à l'axe hydraulique. 
+découpe la rivière en quadrangles, normalement à l'axe hydraulique.
 
   |Capture_CreateSubMesh|
 
@@ -156,14 +156,14 @@ Dans l'onglet *1D* du dialogue du sous maillage *litMineur*, nous choisissons l'
 l'hypothèse *Local Length*, et prenons une longueur de 100 (mètres). Il est utile de renommer l'hypothèse à ce stade.
 
 **remarque** : Les hypothèses et algorithmes peuvent être partagés entre plusieurs maillages et sous maillages,
-ce qui permet de modifier en un seul endroit tout ce qui doit rester cohérent. du coup, il est utile d'avoir des noms 
+ce qui permet de modifier en un seul endroit tout ce qui doit rester cohérent. du coup, il est utile d'avoir des noms
 significatifs pour les identifier.
 
   |Capture_HypothesisLocalLength|
 
 Nous validons la définition du sous maillage avec le bouton *Apply and Close*.
 
-La longueur que nous avons défini s'applique à la fois longitudinalement et transversalement. Pour contrôler le 
+La longueur que nous avons défini s'applique à la fois longitudinalement et transversalement. Pour contrôler le
 nombre de mailles transversales, il faut un nouveau sous maillage, appliqué au groupe d'edges *SectionsGaronne*.
 
 Nous créons donc un sous maillage sur *SectionsGaronne*, en prenant cette fois comme algorithme *Wire Discretisation*
@@ -190,11 +190,11 @@ Une boite d'information s'affiche à la fin du calcul et donne des statistiques
 L'icône du maillage a changé dans l'arbre d'étude, et indique l'état *généré correctement*.
 
 Le maillage n'est pas encore fini pour nos besoins, mais nous pouvons déjà le voir.
-Pour l'afficher, *show* puis *FitAll* |vtk_view_fitall| et vue de dessus |vtk_view_top| (*-OZ*) 
+Pour l'afficher, *show* puis *FitAll* |vtk_view_fitall| et vue de dessus |vtk_view_top| (*-OZ*)
 dans la barre d'icônes du viewer 3D.
 
 Pour découper les quadrangles, nous utilisons le menu *Modification/Cutting of Quadrangles*.
-Dans le dialogue, nous cochons *apply to all*, *use diagonal 1-3* puis *preview* : 
+Dans le dialogue, nous cochons *apply to all*, *use diagonal 1-3* puis *preview* :
 la modification proposée apparaît,
 il est possible de zoomer avec la molette de la souris pour vérifier.
 Nous validons par *Apply and Close*.
@@ -214,7 +214,7 @@ de la vue 3D du maillage. Cette commande dessine une flèche par triangle. Sur l
 Pour voir les flèches, il faut changer l'angle de vue.
 
 Pour réorienter les faces, nous utilisons le menu *Modification / Orientation* et cochons l'option *Apply to All*.
-Après validation, les faces changent de couleur (bleu  plus clair). 
+Après validation, les faces changent de couleur (bleu  plus clair).
 
 Triangles surcontraints
 -----------------------
@@ -232,9 +232,12 @@ l'edge interne du triangle en cause.
 Création des groupes, Enregistrement du maillage
 ================================================
 
-Pour définir les groupes dans le maillage, nous utilisons la commande *Create Groups from Geometry* 
+Les groupes de noeuds et d'éléments sont utiles pour 'étape d'interpolation de la bathymétrie,
+et pour la définition des conditions limites.
+
+Pour définir les groupes dans le maillage, nous utilisons la commande *Create Groups from Geometry*
 du menu contextuel du maillage.
-Nous sélectionnons tous les groupes et sub Shapes de la géometrie *HYDRO_garonne_2* 
+Nous sélectionnons tous les groupes et sub Shapes de la géometrie *HYDRO_garonne_2*
 et constituons successivement des groupes d'**éléments** et de **noeuds**.
 
   |Capture_CreateGroupsFromGeometry|
@@ -247,5 +250,5 @@ Pour enregistrer le maillage dans un fichier au format MED, après avoir sélect
 nous utilisons la commande du menu *File / Export / MED file*.
 
 .. only:: html
- 
+
    :ref:`ref_exempleInondation`
index 50554b276f69bab98f06ae0ff8e762db543189bf..15822f3a3eb30bdd6f99938f9147b78ea7f4b8c7 100644 (file)
    along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
 
 #########################################
-Notions préliminaires 
+Notions préliminaires
 #########################################
 
- * **Géoréférencement** : Le système de projection à utiliser dépend de 
+ * **Géoréférencement** : Le système de projection à utiliser dépend de
    la localisation géographique de l'étude et doit être choisi et noté
    pour faciliter la reprise de l'étude. En France métropolitaine, la
    projection de référence est Lambert 93.
    Toutes les données importées dans SALOME HYDRO doivent être dans le même réferentiel.
-   SALOME HYDRO ne propose pas de convertisseur. 
-   
+   SALOME HYDRO ne propose pas de convertisseur.
+
  * **Repère Local** : Les coordonnées planes, **toujours exprimées en mètres**,
    dans la projection utilisée correspondent souvent à des grands nombres.
    Par exemple, les coordonnées en Lambert 93 d'un point du territoire
@@ -52,7 +52,7 @@ Notions préliminaires
    Les concepts de zones et de régions sont introduits par la pratique dans l'exercice plus bas.
    Les frontières d'une région correspondent aux lignes de contrainte du maillage. Les régions peuvent
    être découpées en plusieurs zones. Une zone correspond à un mode de calcul de la bathymétrie.
-   
+
 
 ################################################
 Principales étapes d'une étude avec SALOME-HYDRO
@@ -63,10 +63,10 @@ Principales étapes d'une étude avec SALOME-HYDRO
 
 SALOME contient l’ensemble des modules nécessaires au lancement d’une étude Telemac.
 
-L’application SALOME-HYDRO concentre les modules HYDRO et HYDRO-SOLVER au sein de la plate-forme SALOME      
+L’application SALOME-HYDRO concentre les modules HYDRO et HYDRO-SOLVER au sein de la plate-forme SALOME
 et intègre le système Telemac2D.
 
-La figure ci-dessous résume les étapes générales et les outils utilisés au sein de la plate-forme SALOME. 
+La figure ci-dessous résume les étapes générales et les outils utilisés au sein de la plate-forme SALOME.
 
   |etapesEtude|
 
@@ -86,49 +86,49 @@ Fonctionnement :
 
  * HYDRO : on importe des images et/ou des plans
 
- * HYDRO : on crée ou importe des lignes de contour d'**objets naturels** (rivières, iles...) 
-   et **artificiels** (digues, canaux, obstacles...), 
+ * HYDRO : on crée ou importe des lignes de contour d'**objets naturels** (rivières, iles...)
+   et **artificiels** (digues, canaux, obstacles...),
 
- * HYDRO : on importe des champs de bathymétrie / altimétrie, ou des séries de profils de rivière, 
+ * HYDRO : on importe des champs de bathymétrie / altimétrie, ou des séries de profils de rivière,
 
- * HYDRO : on constitue des objets naturels et artificiels, 
+ * HYDRO : on constitue des objets naturels et artificiels,
 
- * HYDRO : on constitue un **cas de calcul** en choisissant les objets utiles au cas, 
+ * HYDRO : on constitue un **cas de calcul** en choisissant les objets utiles au cas,
    on regroupe les **zones** (une zone correspond à un mode de calcul particulier de la bathymétrie)
    en **régions** (Les frontières des régions correspondent aux lignes de contrainte du maillage,
    ce sont les faces de la géométrie finale SALOME),
 
  * HYDRO : on exporte le cas vers GEOM,
 
- * GEOM : on reprend le cas dans GEOM, pour compléter l'identification des groupes liés aux différentes régions du domaine 
+ * GEOM : on reprend le cas dans GEOM, pour compléter l'identification des groupes liés aux différentes régions du domaine
    et des conditions limites,
 
  * SMESH : on choisit les algorithmes et hypothèses de maillage, on calcule le maillage et exporte le fichier MED du maillage,
 
- * HYDRO : on calcule l'interpolation en Z, a partir du fichier MED et du cas de calcul, 
+ * HYDRO : on calcule l'interpolation en Z, a partir du fichier MED et du cas de calcul,
 
- * HYDROSOLVEUR : on définit le paramétrage physico numérique du calcul (fichier cas), 
+ * HYDROSOLVEUR : on définit le paramétrage physico numérique du calcul (fichier cas),
 
  * HYDROSOLVEUR : on exécute le calcul,
 
  * PARAVIS : on dépouille les résultats
 
-Dans le module HYDRO lui-même, la logique d’enchaînement des étapes est la suivante 
+Dans le module HYDRO lui-même, la logique d’enchaînement des étapes est la suivante
 (voir les différents types d’objets manipulés dans l’arbre de gauche) :
 
 Il s’agit ici de la description d’un déroulement type, des allers-retours entre les différentes étapes
 sont tout à fait possibles et se produiront certainement.
 
- * IMAGES : 
+ * IMAGES :
 
-L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler 
-pour situer les différents éléments de l’étude., Ces images devront être géoréférencées 
-dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple). 
+L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler
+pour situer les différents éléments de l’étude., Ces images devront être géoréférencées
+dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple).
 Il peut s’agir de capture d’écran du géoportail par exemple.
 
  * BATHYMETRIE :
 
-Les bathymétries constituées de nuages de points et/ ou de profils qui constituent le modèle de terrain 
+Les bathymétries constituées de nuages de points et/ ou de profils qui constituent le modèle de terrain
 sur lequel va s’appuyer le maillage sont importées dans le projet.
 
  * POLYLINES :
@@ -136,8 +136,8 @@ sur lequel va s’appuyer le maillage sont importées dans le projet.
 Les polylignes (importées et/ou construites dans SALOME) permettent de définir les contours des différents objets
 naturels et artificiels qui vont intervenir dans le cas de calcul. Ce sont des lignes fermées dans le cas général.
 Certaines de ces lignes constitueront les lignes de contrainte du maillage.
-Les polylignes splines permettent de définir des contours sans que le maillage qui 
-s’y appuiera ne doive utiliser strictement les points de la ligne. Seule la forme générale compte. 
+Les polylignes splines permettent de définir des contours sans que le maillage qui
+s’y appuiera ne doive utiliser strictement les points de la ligne. Seule la forme générale compte.
 On peut tracer les lignes à la souris ou les importer à partir d’un fichier.
 
  * NATURAL OBJECTS :
@@ -151,17 +151,17 @@ Il s’agit de construire des éléments tels que des digues ou des canaux de g
 
  * CALCULATION CASES :
 
-Lors de la définition du cas de calcul on sélectionne les objets à mailler et on résout les conflits 
+Lors de la définition du cas de calcul on sélectionne les objets à mailler et on résout les conflits
 de recouvrement des bathymétries.
 
 données préalables
 ==================
 
-* Pour les fichiers image : disposer de fichiers images des fonds carto ou photo et avoir repéré dans le système de travail 
+* Pour les fichiers image : disposer de fichiers images des fonds carto ou photo et avoir repéré dans le système de travail
   les coordonnées de 2 ou 3 points bien répartis sur l’image (suffisament éloignés pour améliorer la précision).
   Avec trois points, on peut faire une transformation affine de l'image, pour le cas improbable ou celle-ci ne
   correspondrait pas à une projection verticale.
+
 * Disposer des données de bathy au format ASCII.
 
 Pour l’instant les fichiers de bathymetrie doivent porter l’extension .xyz (3 colonnes x,y,z) ou .asc
@@ -171,7 +171,7 @@ Import d'images
 ================
 
 Il est possible d’importer des plans, cartes, et photos dans le module Hydro dans le dossier Images de l’arbre de l'étude.
-L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler, 
+L’idée est de partir d’images satellitaires et/ou de cartes de la zone à mailler,
 géoréférencées dans le même système de coordonnées que l’ensemble des données (Lambert93 par exemple).
 Il est possible de récupérer l’intersection de deux images, de les fusionner, de restreindre une image à partir d’une polyline.
 
@@ -180,8 +180,8 @@ Les manipulations d'images sont introduites dans l'exercice plus bas.
 Choix d'un repère local
 =======================
 
-Il est vivement conseillé de changer l’origine du système de coordonnées local 
-pour éviter de manipuler de très grands nombres et avoir plus de précisions dans les différents calculs, notamment pour le maillage. 
+Il est vivement conseillé de changer l’origine du système de coordonnées local
+pour éviter de manipuler de très grands nombres et avoir plus de précisions dans les différents calculs, notamment pour le maillage.
 
 Pour cela il faut utiliser le menu *Hydro/change local CS* et renseigner les coordonnées de la nouvelle origine.
 
@@ -196,27 +196,27 @@ Le mode opératoire est expliqué dans l'exercice plus bas.
    pour inverser les z, le temps de contrôler la superposition des cartes et de la bathymétrie
    (ne pas oublier d'enlever l'inversion de z après !).
 
-Récupération de données de bathymétrie d'un ancien maillage 
+Récupération de données de bathymétrie d'un ancien maillage
 -----------------------------------------------------------
 
 Pour les différentes opérations ci-dessous, le mode opératoire précis reste à détailler. Les scripts Python cités
 ne sont pas fournis avec cette version, is nécesitent des adaptations au cas par cas.
 
- * Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant  avec un convertisseur 
+ * Il est possible de récupérer un ancien maillage d’un cas d’étude, en le transformant  avec un convertisseur
    intégré dans SALOME-HYDRO du format selafin (.slf) au format .med (format dédié pour la plate-forme Salomé en général).
 
- * A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000) 
-   à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu). 
+ * A partir de l’ancien maillage, il peut être nécessaire d’appliquer une translation (par exemple +2 000 000)
+   à la position y des nœuds pour passer en système de géoréférencement connu (par exemple LambertIIEtendu).
 
- * 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 
+ * 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
    (position x du nœud, position y du nœud, Champ Z associé).
+
  * Ce fichier .xyz est converti en Lambert93 grâce au logiciel libre Circé (sous Windows).
 
  * Ensuite les positions des nœuds des bords sont récupérées à l’aide d’un script Python qui parcourt les nœuds,
    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
    dans le module HYDRO.
+
  * On peut isoler de cette façon le contour de l’emprise, des piles de ponts, et les îles éventuelles.
 
 Import d'objets de type lignes
@@ -258,10 +258,10 @@ Les fichiers de stream peuvent être des fichiers XYZ pour lequels chaque profil
 Dessin de lignes
 =================
 
-Les contours de type polyligne sont nécessaires à la création de la géométrie. 
+Les contours de type polyligne sont nécessaires à la création de la géométrie.
 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...
-On peut afficher la bathymetrie ou les cartes lors de la saisie des contours pour se repérer. 
+
+On peut afficher la bathymetrie ou les cartes lors de la saisie des contours pour se repérer.
 
 polylines
 ---------
@@ -270,7 +270,7 @@ Dans SALOME les polylignes sont de deux types :
 
  *  polylignes (ligne brisée constituée d'une série de segments droits, pour décrire un objet géométrique)
 
- *  splines (suite d’arcs qui donne une courbe à dérivée continue, 
+ *  splines (suite d’arcs qui donne une courbe à dérivée continue,
     pour décrire une courbure naturelle, qui s’adaptera à la finesse de la discrétisation).
 
 L’utilisation de splines permet de définir des contours sans que le maillage qui s’appuie dessus
@@ -295,11 +295,11 @@ Création d'objets "naturels" type "zone immersible"
 Une **zone immersible** est une zone qui sera maillée. Les iles qui ne sont pas submersibles peuvent être exclues du maillage.
 Dans SALOME HYDRO, on distingue les îles du reste en désactivant leur attribut **Submersible**.
 
-Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment. 
-On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative) 
+Créer une zone immersible consiste à créer une face géométrique à partir d’un des contours dessinés précédemment.
+On renseigne donc pour cela la polyline (obligatoire) sur laquelle va reposer la face et la bathymétrie (facultative)
 que l’on souhaite associer à cette zone géographique.
 
- * Remarque : la bathymétrie est facultative dans la création des objets naturels, notamment dans le cas des îles. 
+ * Remarque : la bathymétrie est facultative dans la création des objets naturels, notamment dans le cas des îles.
 
  * Remarque : Il est  possible de changer l’ordre d’affichage des différents objets naturels et artificiels qui sont tous par convention
    dans le plan z=0, pour remettre "dessus" les petits objets.
@@ -317,7 +317,7 @@ Le mode opératoire est détaillé dans l'exemple plus bas.
 Obstacles
 ============
 
-Objets géométriques complexes (bâtiments...) importés depuis GEOM, 
+Objets géométriques complexes (bâtiments...) importés depuis GEOM,
 pour constituer des zones non submersibles ("iles" ou assimilés).
 Il faut mettre ces objets dans le repère local avant des les importer.
 
@@ -330,7 +330,7 @@ Constitution d'un cas de calcul
 ================================
 
 Lors de la constitution d'un cas de calcul, il est possible de ne sélectionner que certains des objets définis précedemment.
-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 
+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
 de détails comme des piles de ponts, par exemple).
 
 L'emprise du domaine est définie par un contour polygonal particulier.
@@ -339,8 +339,8 @@ Le chevauchement des différents objets crée des zones "en conflit" pour lesque
 la bathymétrie.
 
 Le résultat du découpage en zones des différents objets se chevauchant constitue l'opération dite de **partition**.
-On peut regrouper des zones en régions homogènes dans la structure du maillage visée, 
+
+On peut regrouper des zones en régions homogènes dans la structure du maillage visée,
 pour s’affranchir des contours que l'on ne veut pas garder en tant que lignes de contraintes.
 
 Dans le cas de calcul, il est possible d'identifier certaines lignes qui serviront de support aux conditions limites.
@@ -356,7 +356,7 @@ Une fois le cas de calcul terminé et exporté il apparaît dans le module GEOM.
 
 Il faut activer ce module pour pouvoir visualiser et modifier le cas exporté.
 
-Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s) 
+Dans GEOM, on voit notre cas de calcul sous le nom <nom de cas>_N auquel est attaché le (ou les) contour(s)
 choisis au moment au moment de la définition du cas de calcul.
 
 Il se peut qu’on ait besoin d'identifier certaines parties :
@@ -368,12 +368,12 @@ Il se peut qu’on ait besoin d'identifier certaines parties :
 Le mode opératoire est détaillé dans l'exemple plus bas.
 
  * remarque : Il est possible d'utiliser le module de géométrie pour définir un certain nombre de
-   contraintes sur le maillage. par exemple, on peut définir des points fixes de notre maillage 
+   contraintes sur le maillage. par exemple, on peut définir des points fixes de notre maillage
    (qui vont par exemple correspondre à des points de mesure).
    **Toute modification de la géométrie se traduit par la création d'un nouvel objet et la perte des groupes
    définis dans l'objet initial. Il faut donc créer les groupes en dernier, sur la géométrie finale,
    et, si possible éviter les modifications qui font perdre les définitions automatiques du module HYDRO.**
-   
+
 Maillage: Module SMESH
 =======================
 
@@ -399,17 +399,9 @@ Le calcul de la bathymétrie est fait zone par zone, a chaque zone est associé
 
  * à partir de la CAO des obstacles
 
-Pour les nuages de points, en version 1.0 on dispose d’un script qui permet d’interpoler la bathymétrie sur le maillage. 
-Ce script utilise un algorithme qui prend juste la valeur du Z du point le plus proche. 
-  
-L'amélioration de ce script est prévue dans les prochaines versions.
-
-Plusieurs approches possibles, quand la bathymétrie n'est pas assez dense par rapport au maillage :
-
- * densifier artificiellement la bathymétrie (interpolation linéaire, outils et scripts à proposer)
- * utiliser TELEMAC avec le mot clé FICHIER DES FONDS (il faut regrouper les bathymétries dans un fichier unique).
-  
-L'amélioration du script est prévue en 2016.
+Pour les nuages de points, en version 1.0 on dispose d’un script qui permet d’interpoler la bathymétrie sur le maillage.
+Ce script utilise un algorithme qui prend soit la valeur du Z du point le plus proche, soit la valeur Z interpolée
+sur une triangulation préalable du maillage.
 
 Le mode opératoire est détaillé dans l'exemple plus bas.
 
@@ -444,5 +436,5 @@ Le mode opératoire est détaillé dans l'exemple plus bas.
 Dépouillement des résultats
 ===========================
 
-Le module PARAVIS est utilisé pour l'exploitation des résultats. 
+Le module PARAVIS est utilisé pour l'exploitation des résultats.
 On se réferera aux formations SALOME pour l'utilisation du module PARAVIS.