From: Paul RASCLE Date: Mon, 4 Jul 2016 08:51:21 +0000 (+0200) Subject: test and doc linear interpolation on xyz bathymetry X-Git-Tag: v1.6~91 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=743055506b683aa4ec7c34403675827b14e5d6b8;p=modules%2Fhydro.git test and doc linear interpolation on xyz bathymetry --- diff --git a/doc/salome/examples/CMakeLists.txt b/doc/salome/examples/CMakeLists.txt index 416092f4..71eac864 100644 --- a/doc/salome/examples/CMakeLists.txt +++ b/doc/salome/examples/CMakeLists.txt @@ -36,6 +36,7 @@ SET(EXAMPLES_TESTS h014_caseDigueManualInterpolZ.py h015_normalCaseManualTelemac.py h016_pilesPontManualMesh.py + h017_interpolationLineaire.py ) SET(HYDRO_SAMPLES diff --git a/doc/salome/examples/CTestTestfileInstall.cmake b/doc/salome/examples/CTestTestfileInstall.cmake index 0c707e22..e6fe5257 100644 --- a/doc/salome/examples/CTestTestfileInstall.cmake +++ b/doc/salome/examples/CTestTestfileInstall.cmake @@ -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 index 00000000..63073d54 --- /dev/null +++ b/doc/salome/examples/h017_interpolationLineaire.py @@ -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) diff --git a/doc/salome/tutorial/interpolZ.py b/doc/salome/tutorial/interpolZ.py index 0f55586b..cbee01a1 100644 --- a/doc/salome/tutorial/interpolZ.py +++ b/doc/salome/tutorial/interpolZ.py @@ -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) diff --git a/doc/salome/tutorial/interpolationZ.rst b/doc/salome/tutorial/interpolationZ.rst index 9b8ebc7d..173ed745 100644 --- a/doc/salome/tutorial/interpolationZ.rst +++ b/doc/salome/tutorial/interpolationZ.rst @@ -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 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 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` diff --git a/doc/salome/tutorial/maillage.rst b/doc/salome/tutorial/maillage.rst index 663491c7..2b4f642f 100644 --- a/doc/salome/tutorial/maillage.rst +++ b/doc/salome/tutorial/maillage.rst @@ -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` diff --git a/doc/salome/tutorial/preliminaires.rst b/doc/salome/tutorial/preliminaires.rst index 50554b27..15822f3a 100644 --- a/doc/salome/tutorial/preliminaires.rst +++ b/doc/salome/tutorial/preliminaires.rst @@ -17,16 +17,16 @@ along with SALOME HYDRO module. If not, see . ######################################### -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 _N auquel est attaché le (ou les) contour(s) +Dans GEOM, on voit notre cas de calcul sous le nom _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.