]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
tutoriel : spescs format sinusx, français et anglais
authorPaul RASCLE <paul.rascle@edf.fr>
Wed, 16 Dec 2015 16:22:53 +0000 (17:22 +0100)
committerPaul RASCLE <paul.rascle@edf.fr>
Wed, 16 Dec 2015 16:22:53 +0000 (17:22 +0100)
doc/salome/tutorial/CMakeLists.txt
doc/salome/tutorial/format_sinusx.rst [new file with mode: 0644]
doc/salome/tutorial/index.rst
doc/salome/tutorial/sinusX_Format.rst [new file with mode: 0644]

index 8fe572216b24408a075197ccbedbff3b86211c4d..b5bfa74fcb69ca59734e18108d23362f87b94b67 100644 (file)
@@ -19,6 +19,7 @@ SET(RSTFILES
   casCalcul.rst
   depouillementCalcul.rst
   donneesPrealables.rst
+  format_sinusx.rst
   geometrie.rst
   import.rst
   importBathy.rst
@@ -34,6 +35,7 @@ SET(RSTFILES
   piegesAEviter.rst
   polylignes.rst
   preliminaires.rst
+  sinusX_Format.rst
   streams.rst
 )
 
diff --git a/doc/salome/tutorial/format_sinusx.rst b/doc/salome/tutorial/format_sinusx.rst
new file mode 100644 (file)
index 0000000..f2aa74c
--- /dev/null
@@ -0,0 +1,563 @@
+..
+   Copyright (C) 2015-2016 EDF
+
+   This file is part of SALOME HYDRO module.
+
+   SALOME HYDRO module is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   SALOME HYDRO module is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+######################################
+Interprétation du format SinusX
+######################################
+
+Structure du fichier et types de lignes
+=======================================
+
+Le fichier ASCII est structuré en blocs de données.
+
+Les lignes commencant par *B* sont des délimiteurs de bloc.
+
+Les lignes commencant par *CN* ou *CP* complètent la définition du bloc.
+
+Les autres lignes commencant par *C* sont des commentaires.
+
+Les lignes commencant par des nombres sont les points du bloc.
+
+On peut décrire des semis de points, des courbes xyz, des profils, des courbes de niveau.
+
+Selon le format, les courbes peuvent être reliées ou non, fermées ou non.
+En pratique, une courbe non reliée est une sorte de semis de point...
+
+Le module HYDRO de SALOME prend en compte des points xyz, des courbes dans le plan XoY (z=0),
+des courbes dans le plan XoZ (profils). 
+Pour traiter les courbes dans l'espace (Z quelconque, variable ou non),on peut faire 3 types
+de traitements lors de l'import dans le module HYDRO :
+
+* projeter en z=0 pour avoir une courbe reliée dans le plan XoY.
+* créer une ligne dans le plan XoZ (abscisse curviligne de la courbe XoY, altitude).
+* importer les points x,y,z non reliés comme Bathymétrie/altimétrie.
+
+Le premier import est le plus important et doit être fait systématiquement.
+
+Le second est utile pour des courbes xyz, quand Z est variable.
+
+Le troisieme n'est pas facile à utiliser directement dans le module HYDRO, au delà de la simple visualisation
+des champs de points de Bathymétrie/altimétrie en 3D. Pour l'interpolation d'altitude au noeuds du maillage,
+on a besoin du contour du champ de Bathymetrie/altimétrie dans le plan XoY.
+Ce contour n'a pas vraiment de sens pour une ligne.
+Par contre, en combinant les points de plusieurs lignes (par exemple une série de courbes de niveau)
+dans un même nuage de points, on peut reconstituer une Bathymétrie/altimétrie.
+
+Délimiteur de bloc
+==================
+
+::
+
+  B type x1 y1 z1 dx dy dz rapport
+
+type
+----
+
+* type = S semis de point    
+* type = C courbe xyz
+* type = P profil xyz
+* type = N courbe de niveau
+
+x1 y1 z1 dx dy dz rapport
+-------------------------
+
+Origine et deltas pour convertir les mesures de la table à digitaliser en mètres.
+
+On n'en tient pas compte à l'import.
+
+exemples de lignes B
+--------------------
+
+::
+
+  B S +4.290000E+05 +2.420000E+05 +0.000000E+00 +1.500000E+03 +2.000000E+03 +1.000
+  B N +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +1.000000E+00 1
+  B C +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +1.000000E+00 1
+  B C +0.000000E+00 +0.000000E+00 +0.000000E+00 +3.200000E+04 +2.400000E+04 +1.000
+  B C -3.333333E+03 +4.875000E+04 +0.000 A000E+00 +3.333330E+02 +1.666670E+02 +1.000000E+00 0.659154
+  B C -3.333330E+03 +4.875000E+04 +0.000 A000E+00 +3.333330E+02 +1.666670E+02 +1.000000E+00 0.658869
+
+export
+------
+
+::
+
+  B type   0.0  0.0  0.0    1.0  1.0  1.0    1.0
+
+ou plutôt, à préférer
+
+::
+
+  B type
+
+
+Nom du bloc
+===========
+
+::
+
+  CN le_nom_du_bloc
+
+Import
+------
+
+Remplacer les espaces par '_' (exemple : courbe 1 --> courbe_1)
+
+Export
+------
+
+Les noms des objets dans le module HYDRO. Eviter les espaces et caractères accentués dans les noms.
+
+Liaison Fermeture
+=================
+
+Définition historique
+---------------------
+
+::
+
+  CP fermé relié
+
+Deux booleens indiquant si la courbe est fermée, et si les points sont reliés
+
+*exemple* : CP 0 1 : courbe ouverte, points reliés.
+
+En pratique, on ne doit pas avoir besoin de points non reliés, sauf les semis.
+
+Proposition d'interprétation et export
+--------------------------------------
+
+::
+
+  CP fermé spline
+
+Deux booleens indiquant si la courbe est fermée, et si elle est de type spline ou ligne brisée.
+Il faudra corriger manuellement les jeux de données existant pour les courbes fermées, et les polygones.
+
+Plan de définition
+==================
+
+::
+
+  CP numeroPlan
+
+Le numéro du plan vaut 0, 1 ou 2 (0 : plan XoY, 1 : plan YoZ, 2 : plan XoZ)
+
+La plupart des blocs sont dans le plan XoY : CP 0
+
+On peut utiliser les plans 1 ou 2 pour définir des profils / section dans un plan normal à l'axe hydraulique,
+avec deux coordonnées utiles. En pratique, on utilisera sytématiquement le plan 2.
+
+Paramètres complémentaires selon le type de blocs
+=================================================
+
+type = S semis de point
+-----------------------
+
+Sans objet
+
+type = C courbe xyz
+-------------------
+
+::
+
+  CP (16 indicateurs réels)
+
+Inutilisé - pas interprété à l'import.
+
+Soit on fait un export compatible::
+
+  CP 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
+
+Soit on ne met rien : préférable.
+
+type = P profil xyz
+-------------------
+
+Définition historique
+~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+  CP Zref Xref dz dx
+
+Je n'ai pas compris comment c'était utilisé en altitude...
+
+interprétation proposée pour un profil dans le plan *XoZ*
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+En pratique profil dans un plan vertical avec la donnée des 2extrémités géoreférencées.
+On suppose que la troisieme coordonnée des points est à 0.
+
+::
+
+  CP Xorig Yorig Xfin Yfin
+
+(Xorig, Yorig) et (Xfin, Yfin) extrémités géoréférencées du profil.
+
+On passe d'un point (x,z) au point géoréférencé (ref +x*dx, yref +x*dy, z), avec (dx,dy) vecteur horizontal 
+normé calculé à partir des 2 extrémités géoréférencées.
+
+interprétation proposée pour un profil dans le plan *XoY*
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+On suppose que les points sont déjà géoréférencés, avec leurs 3 coordonnées valides.
+
+On peut regrouper plusieurs profils dans SALOME HYDRO pour créer un objet rivière ('stream')
+
+type = N courbe de niveau
+-------------------------
+
+::
+
+  CP altitude
+
+Altitude de la courbe de niveau. On retrouve la valeur dans la coordonnée Z de chaque point.
+
+import : prendre cette valeur en référence,
+ignorer la coordonnée Z des points (toujours la même valeur dans les exemples) ?
+
+Lignes de Commentaires
+======================
+
+::
+
+  C texte quelconque
+
+ignoré à l'import
+
+on peut mettre en tête de fichier des infos d'export à définir, par exemple : 
+
+C SALOME HYDRO version xxx
+
+C nom de l'étude SALOME
+
+C date 
+
+Lignes de points
+================
+
+::
+
+  X Y Z touche texte
+
+touche
+------
+
+inutilisé, ignorer
+
+texte
+-----
+
+un label associé au point : inutilisé, ignorer
+
+import
+------
+
+Pour les courbes de niveau, on peut ignorer Z, il est défini au niveau du bloc.
+
+Quand deux points consécutifs ont les mêmes coordonnées, il faut ignorer le deuxième point.
+(cas rencontré dans des jeux de données).
+
+export
+------
+
+Selon la nature des courbes, on met à zéro la coordonnée inutile.
+
+remarque : les courbes de niveau importées sont transformées en courbes dans le plan Z=0
+et regroupées en semis de points. On perd l'information courbe de niveau dans SALOME et on ne saura pas
+les exporter en tant que courbe de niveau avec l'altitude renseignée.
+
+Pour les courbes projetées dans le plan XoY::
+
+  X Y 0.0
+
+Pour les courbes projetées dans le plan XoZ::
+
+  X 0.0 Z 
+
+Pour les profils géoréférencés XoY::
+
+  X Y Z
+
+exemple de courbe XYZ
+=====================
+
+Ici, il s'agit en réalité d'une courbe de niveau Z=9.0, mais elle n'est pas définie comme telle.
+
+import
+------
+
+::
+
+  B C -3.333330E+03 +4.875000E+04 +0.000000E+00 +3.333330E+02 +1.666670E+02 +1.000000E+00 0.658992
+  CN trait_cote_ile
+  CP 1 1 
+  CP  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00 
+  CP 0 
+  C 
+     211563.340     133489.165      9.000 A
+     211604.013     133517.519      9.000 A
+     211645.047     133544.734      9.000 A
+     211684.597     133585.430      9.000 A
+     211716.859     133584.277      9.000 A
+     211777.488     133597.853      9.000 A
+     211828.211     133609.896      9.000 A
+     211896.886     133618.448      9.000 A
+     211945.422     133633.990      9.000 A
+     211996.891     133649.326      9.000 A
+     212044.447     133622.576      9.000 A
+     212067.681     133584.157      9.000 A
+     212056.937     133521.369      9.000 A
+     212007.716     133482.464      9.000 A
+     211959.462     133428.999      9.000 A
+     211925.576     133392.362      9.000 A
+     211885.762     133376.207      9.000 A
+     211817.310     133404.427      9.000 A
+     211783.848     133416.811      9.000 A
+     211742.545     133413.025      9.000 A
+     211681.493     133421.775      9.000 A
+     211644.814     133436.616      9.000 A
+     211597.633     133447.736      9.000 A
+     211569.826     133461.954      9.000 A
+
+
+``B C -3.3...``
+  bloc de type C (courbe xyz), parametres de digitalisation ignorés
+
+``CN ...``
+  nom du bloc = trait_cote_ile
+
+``CP 1 1``
+  courbe fermée, spline
+
+``CP +0.0...``
+  ignoré
+
+``CP 0``
+  plan XoY (ça doit toujours être le plan 0)
+
+``C ...``
+  les commentaires sont ignorés
+
+``211563.340     133489.165      9.000 A``
+  point x, y, z.  Les infos supplémentaires sont ignorées.
+
+Si toutes les valeurs Z du bloc sont à zéro, les valeurs Z sont ignorées.
+Si au moins une valeur Z du bloc est différente de zéro, alors les points alimentent un semis
+regroupant les différentes courbes du fichier.
+
+export
+------
+
+Courbe projetée dans le plan XoY sous forme de courbe de niveau à Z=0.
+C'est une courbe fermée, spline.
+
+::
+
+  B N
+  CN trait_cote_ile
+  CP 1 1 
+  CP 0.0
+  CP 0
+  C
+     211563.340     133489.165     0.000
+     211604.013     133517.519     0.000
+     211645.047     133544.734     0.000
+     211684.597     133585.430     0.000
+     211716.859     133584.277     0.000
+     211777.488     133597.853     0.000
+     211828.211     133609.896     0.000
+     211896.886     133618.448     0.000
+     211945.422     133633.990     0.000
+     211996.891     133649.326     0.000
+     212044.447     133622.576     0.000
+     212067.681     133584.157     0.000
+     212056.937     133521.369     0.000
+     212007.716     133482.464     0.000
+     211959.462     133428.999     0.000
+     211925.576     133392.362     0.000
+     211885.762     133376.207     0.000
+     211817.310     133404.427     0.000
+     211783.848     133416.811     0.000
+     211742.545     133413.025     0.000
+     211681.493     133421.775     0.000
+     211644.814     133436.616     0.000
+     211597.633     133447.736     0.000
+     211569.826     133461.954     0.000
+
+
+exemple de courbe de niveau
+===========================
+
+Ici, on a repris l'exemple précédent en changeant le type de courbe : B N au lieu de B C
+et indication de l'altitude dans l'en tête : CP 9.0.
+
+import
+------
+
+::
+
+  B N -3.333330E+03 +4.875000E+04 +0.000000E+00 +3.333330E+02 +1.666670E+02 +1.000000E+00 0.658992
+  CN trait_cote_ile
+  CP 1 1 
+  CP 9.0 
+  CP 0 
+  C 
+     211563.340     133489.165      9.000 A
+     211604.013     133517.519      9.000 A
+     211645.047     133544.734      9.000 A
+     211684.597     133585.430      9.000 A
+     211716.859     133584.277      9.000 A
+     211777.488     133597.853      9.000 A
+     211828.211     133609.896      9.000 A
+     211896.886     133618.448      9.000 A
+     211945.422     133633.990      9.000 A
+     211996.891     133649.326      9.000 A
+     212044.447     133622.576      9.000 A
+     212067.681     133584.157      9.000 A
+     212056.937     133521.369      9.000 A
+     212007.716     133482.464      9.000 A
+     211959.462     133428.999      9.000 A
+     211925.576     133392.362      9.000 A
+     211885.762     133376.207      9.000 A
+     211817.310     133404.427      9.000 A
+     211783.848     133416.811      9.000 A
+     211742.545     133413.025      9.000 A
+     211681.493     133421.775      9.000 A
+     211644.814     133436.616      9.000 A
+     211597.633     133447.736      9.000 A
+     211569.826     133461.954      9.000 A
+
+
+``B N -3.3...``
+  bloc de type N (courbe de niveau), paramètres de digitalisation ignorés
+
+``CN ...``
+  nom du bloc = trait_cote_ile
+
+``CP 1 1``
+  courbe fermée, spline
+
+``CP 9.0``
+  altitude de la courbe.
+
+``CP 0``
+  plan XoY
+
+``C ...``
+  les commentaires sont ignorés
+
+``211563.340     133489.165      9.000 A``
+  point x, y, z.  Les infos supplémentaires sont ignorées.
+
+Les valeurs Z des points sont ignorées. On alimente le semis de points
+avec les points de la courbe avec z forcé à 9.0.
+
+export
+------
+
+Courbe projetée dans le plan XoY sous forme de courbe à Z=0.
+C'est une courbe fermée, spline.
+
+::
+
+  B N
+  CN trait_cote_ile
+  CP 1 1 
+  CP 0.0
+  CP 0
+  C
+     211563.340     133489.165     0.000
+     211604.013     133517.519     0.000
+     211645.047     133544.734     0.000
+     211684.597     133585.430     0.000
+     211716.859     133584.277     0.000
+     211777.488     133597.853     0.000
+     211828.211     133609.896     0.000
+     211896.886     133618.448     0.000
+     211945.422     133633.990     0.000
+     211996.891     133649.326     0.000
+     212044.447     133622.576     0.000
+     212067.681     133584.157     0.000
+     212056.937     133521.369     0.000
+     212007.716     133482.464     0.000
+     211959.462     133428.999     0.000
+     211925.576     133392.362     0.000
+     211885.762     133376.207     0.000
+     211817.310     133404.427     0.000
+     211783.848     133416.811     0.000
+     211742.545     133413.025     0.000
+     211681.493     133421.775     0.000
+     211644.814     133436.616     0.000
+     211597.633     133447.736     0.000
+     211569.826     133461.954     0.000
+
+
+Courbe projetée dans le plan XoZ selon l'abscisse curviligne.
+C'est une courbe ouverte de type spline, définie par convention dans le plan XoZ.
+
+::
+
+  B P
+  CN altitude_trait_cote_ile
+  CP 0 1
+  CP 0.0 0.0 0.0 0.0
+  CP 2
+  C
+    0.0 9.0
+    ...
+    x   9.0
+
+*Les extrémités ne sont pas géoréférencées, on s'appuie sur une autre courbe XoY*.
+Pour distinguer les profils XoZ non géoréférencés de ceux qui le sont (par leur extrémités),
+on utilise une valeur particulière du champ CP avec des coordonnées nulles::
+
+  CP 0.0 0.0 0.0 0.0
+
+Les valeurs x des abscisses curvilignes sont exprimées en mètre le long de la courbe,
+ou sont normalisées entre 0 et 1. **A revoir**
+
+Synthèse
+========
+
+Dans le module HYDRO de SALOME, lors de l'importation des fichiers SinusX existant,
+
+- les semis de points sont transformés en Bathymétries.
+- les courbes de niveau sont transformées en courbes à Z=0 et profils dans le plan XoZ,
+  non géoréférencés (abscisse curviligne, z).
+- les courbes xyz sont transformées en courbes à Z=0 et en profils dans le plan XoZ,
+  non géoréférencés (abscisse curviligne, z).
+- les profils XoZ géoréférencés par les coordonnées des extrémites sont convertis
+  en profils où tous les points sont définis par leurs 3 coordonnées X, Y, Z (profils XoY).
+- les profils XoZ non géoréférencés sont importés tels que
+  (utilisés comme ligne d'altitude pour une autre ligne dans le plan XoY,
+  ou comme section pour un canal, une digue...)
+- les profils XoY sont conservés tels quels (tous les points sont définis par leurs 3 coordonnées X, Y, Z).
+- l'ensemble des points des courbes de niveau (avec Z différent de 0) et des courbes xyz servent
+  à créer un champ de Bathymétrie.
+
+Lors de l'export, 
+
+- les polylignes sont exportées en courbes de niveau Z=0, ouvertes ou fermées, spline ou ligne brisée. 
+  (Que fait-on des sections ? Utiliser un commentaire de début de section sur le point ?)
+- les profils sont exportés en tant que profils (à approfondir)
+- Doit on exporter les bathymétries au format SinusX ou au format xyz ? (ne diffère que par la présence d'un en tête).
+
+
+  :ref:`ref_formatsSpecs`
index fecfd3c0670c125a0204eb5d9ca8fda30b936faf..d29cc06ede107e46db62dd2c2e1259bd06a7a198 100644 (file)
@@ -116,4 +116,18 @@ On introduit ici quelques concepts non abordés dans l'exemple simple précéden
    streams.rst
    objetsArtificiels.rst
    landCoverMap.rst
-   
\ No newline at end of file
+
+.. _ref_formatsSpecs:
+
+###################################
+Formats et specifications
+###################################
+
+On introduit ici quelques formats d'import-export.
+
+.. toctree::
+   :numbered:
+   :maxdepth: 3
+
+   format_sinusx.rst
+   sinusX_Format.rst
diff --git a/doc/salome/tutorial/sinusX_Format.rst b/doc/salome/tutorial/sinusX_Format.rst
new file mode 100644 (file)
index 0000000..6d6e140
--- /dev/null
@@ -0,0 +1,514 @@
+..
+   Copyright (C) 2015-2016 EDF
+
+   This file is part of SALOME HYDRO module.
+
+   SALOME HYDRO module is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   SALOME HYDRO module is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with SALOME HYDRO module.  If not, see <http://www.gnu.org/licenses/>.
+
+##############################################
+Format SinusX for SALOME HYDRO: specifications
+##############################################
+
+Introduction
+============
+
+SinuxX is an ASCII format used at EDF for for free surface flow studies with Telemac.
+SinusX format as been defined a long time ago for a digitizing software used for maps, isocontours...
+The sofware is not used any more, but there are still parameters related to the software
+in the format specification and the data files.
+The goal of this specification is provide an editable ASCII format for import and export of SALOME HYDRO module data,
+and allow import of existing SinusX data files.
+The parameters related to the old SinusX software will be ignored on import in SALOME HYDRO module,
+and default values will be provided on export from SALOME HYDRO module, to keep a consistent format between
+old and new data.
+Some existing files does not follow correctly the format and must be manually corrected. For instance,
+closed parameter is not handled correctly in a lot of files.
+
+Contents and general structure of SinusX format, correspondance with HYDRO data types
+=====================================================================================
+
+HYDRO data types to import and export
+-------------------------------------
+
+HYDRO module data contains Bathymetry fields and 2D or 3D polylines. 2D polylines are either polylines in the XoY plane (Z=0)
+or profiles in a vertical plane.
+
+The bathymetry fields are a list of x,y,z points.
+
+The polylines, in the XoY plane, are defined by an ordered list of x,y points. the polylines are either closed or open,
+spline or not. Sections are not yet taken into account here.
+
+The profiles are defined in a vertical plane, by an ordered list of u,z points. The profiles are georeferenced or not,
+are used to describe variables sections of a river (stream object), constant sections of channel or enbankments,
+or altitude lines to be combined with XoY lines in order to build 3D lines.
+
+All the HYDRO module objects are named.
+
+general structure of SinusX format
+----------------------------------
+
+The file is structured in blocs of data.
+There are several types of blocs:
+
+* Scatter plot: field of Bathymetry or Altimetry, contains a list of x,y,z points
+* XYZ profile: for instance a vertical profile on river, defined by a list of x,y,z points (in a vertical plane)
+* isocontour: a line at a constant altitude, defined by a list of x,y,z points (with z constant)
+* XYZ curve : a line in 3D, defined by a list of x,y,z points
+
+All Blocs begin with a line starting by 'B type ...'.
+
+A bloc contains several parameter lines starting with 'CN name' or 'CP parameters...'.
+
+Comments are lines starting with 'C ...' and are ignored.
+
+A bloc contains several point lines (one x,y,z point per line) after the bloc start and parameter lines.
+
+SinusX lines format
+-------------------
+
+Bloc Delimiter
+~~~~~~~~~~~~~~
+
+::
+
+  B type several ignored parameters
+
+**type:**
+
+* type = S: Scatter plot    
+* type = C: XYZ curve
+* type = P: XYZ profile
+* type = N: isocontour
+
+There are other types in some old files. These blocs are ignored.
+The parameters after the type are ignored.
+
+Bloc name
+~~~~~~~~~
+
+::
+
+  CN le_nom_du_bloc
+
+Avoid spaces and special characters (for instance accents) in name.
+
+Closed and spline parameters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+  CP closed spline
+
+Closed and spline are two booleans (0 or 1). 
+for instance,
+::
+
+  CP 1 1
+
+means a closed line of type spline.
+
+This parameter is significant only for curves, profiles and isocontour (types C, P, N)
+and is present but not interpreted for Scatter plot. 
+
+specific curve parameters, depending on curve type
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Following the type of curve (C, P, N), this parameter is different:
+
+**type = C: XYZ curve**
+
+::
+
+  CP real1 real2... real16
+
+These 16 real parameters are ignored at import, and can be set to 0.0 at export.
+
+**type = P: XYZ profile**
+
+::
+
+  CP x1 y1 x2 y2
+
+Folowing the plane definition parameter (see below), the values define the start and end points
+or are ignored.
+
+If the plane definition is XoY (horizontal), all the point of the profile are fully defined with their 3 coordinates x,y,z.
+All the points are supposed to be in the same vertical plane.
+The x1,y1 and x2,y2 values are ignored (and set to 0.0 at export).
+
+If the plane definition is XoZ (vertical), the points of the profile are defined with 2 coordinates x,z (or u,z).
+The y coordinate of the profile points are set to 0.0.
+The two extremities are defined by origin: p1(x1,y1,0) and end: p2(x2,y2,0).
+The Points of the profile are in the plane defined by the line p1,p2 and the vertical.
+The x or u coordinate represents the abcissa in meters on the line p1,p2 counted from origin p1.
+
+If the plane definition is XoZ (vertical) and x1, y1, x2, y2 are all null, the profile is not georeferenced.
+
+**type = N: isocontour**
+
+::
+
+  CP altitude
+
+Altitude value for isocontour. This value is also in the Z coordinate of each point of the bloc,
+but the Z coordinates are ignored, only the altitude parameter is taken into account.
+
+plane definition parameter
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+::
+
+  CP plane
+
+Plane parameter is an integer value: 0 1 ou 2.
+
+* 0: plane XoY
+* 1: plane YoZ
+* 2: plane XoZ
+
+Plane 0 is used for XYZ curve, XYZ profile and isocontour.
+
+Plane 1 is not used.
+
+Plane 2 is used for XYZ profile.
+
+Plane parameter is present but not interpreted for Scatter plots.
+
+Point line
+~~~~~~~~~~
+
+::
+
+  x y z ignored comments
+
+There are always 3 coordinates.
+Everything after the coordinates is ignored.
+
+At export, the real values must be with a fixed format with 3 decimals. For instance::
+
+  275982.120   128441.000      -7.500
+
+Coordinates are in meter, in Lambert 93 projection: x, y absolutes values are less then 10000000.000.
+Z abolute values are less than 10000.000.
+
+SinusX blocs description and format
+===================================
+
+Scatter plot bloc
+=================
+
+example of scatter plot bloc
+----------------------------
+
+*import from existing data file:*
+::
+
+  C 
+  B S +0.000000E+00 +0.000000E+00 +0.000000E+00 +1.000000E+00 +1.000000E+00 +1.000000E+00 1
+  CN semis_de_points
+  CP 0 1
+  CP 0
+  C an ignored comment
+  +2.759820E05 +1.284410E05 -7.500000E00 A
+  +2.759970E05 +1.284470E05 -7.500000E00 A
+  +2.760120E05 +1.284530E05 -7.500000E00 A
+  +2.759760E05 +1.283920E05 +3.000000E00 A
+  +2.759900E05 +1.283970E05 -2.450000E00 A
+  +2.760030E05 +1.284030E05 -4.000000E00 A
+  +2.760160E05 +1.284080E05 -5.450000E00 A
+  +2.760300E05 +1.284130E05 -4.250000E00 A
+  +2.760440E05 +1.284190E05 -7.500000E-01 A
+  +2.760570E05 +1.284240E05 +3.250000E00 A
+
+The only parameters used are the type of bloc and the name. Closed, spline parameter and plane parameter are ignored.
+For each point, only the x y z value are used.
+
+*export:*
+::
+
+  C 
+  B S
+  CN semis_de_points
+  CP 0 0
+  CP 0
+  275982.000    128441.000   -7.500
+  275997.000    128447.000   -7.500
+  276012.000    128453.000   -7.500
+  275976.000    128392.000    3.000
+  275990.000    128397.000   -2.450
+  276003.000    128403.000   -4.000
+  276016.000    128408.000   -5.450
+  276030.000    128413.000   -4.250
+  276044.000    128419.000   -7.500
+  276057.000    128424.000    3.250
+
+example of XYZ profile
+----------------------
+
+profile defined by two georeferenced extremities
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+*import from existing data file:*
+::
+
+  B P 
+  CN profil_with_extremities
+  CP 0 1
+  CP +2.759820E05 +1.284410E05 +2.760570E05 +1.284240E05
+  CP 2
+    1.120  0.000 -1.250 
+    x y z values lines with y=0.0
+    ...
+
+The profile of name *profil_with_extremties* is vertical, is an open line of type spline.
+The two extremities are (+2.759820E05 +1.284410E05 0.0) and (+2.760570E05 +1.284240E05 0.0)
+
+*export:*
+::
+
+  B P 
+  CN profil_with_extremities
+  CP 0 1
+  CP   275982.000  128441.000    276057.000    128424.000 
+  CP 2
+    1.120  0.000 -1.250 
+    x y z values lines with y=0.0
+    ...
+
+profile not georeferenced
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+*import from existing data file:*
+::
+
+  B P 
+  CN profil_not_georeferenced
+  CP 0 0
+  CP 0.0 0.0 0.0 0.0
+  CP 2
+    -10.0  0.0  0.0
+     -8.0  0.0 -5.0
+      8.0  0.0 -5.0
+     10.0  0.0  0.0
+
+The profile of name *profil_not_georeferenced* is vertical, is an open line of type polyline.
+The 4 real parameters are null, meaning there are no georeferenced extremities.
+
+*export:*
+::
+
+  B P 
+  CN profil_not_georeferenced
+  CP 0 0
+  CP 0.0 0.0 0.0 0.0
+  CP 2
+    -10.0  0.0  0.0
+     -8.0  0.0 -5.0
+      8.0  0.0  5.0
+     10.0  0.0  0.0
+
+profile with fully georeferenced points
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+*import from existing data file:*
+::
+
+  B P 
+  CN profil_fully_georeferenced
+  CP 0 1
+  CP +1.00000E+02 +2.00000E+02  +1.00000E+01  +2.00000E+01
+  CP 0
+    275982.000    128441.000   -7.500
+    x y z values lines
+    ...
+
+The profile of name *profil_fully_georeferenced* is defined in plane 0 (XoY),
+meaning all the points are fully georeferenced (x y z significants).
+The 4 real parameters are not used.
+
+*export:*
+::
+
+  B P 
+  CN profil_fully_georeferenced
+  CP 0 1
+  CP 0.0 0.0 0.0 0.0
+  CP 0
+    275982.000    128441.000   -7.500
+    x y z values lines
+    ...
+
+example of XYZ curve
+--------------------
+
+*import from existing data file:*
+::
+
+  B C -3.333330E+03 +4.875000E+04 +0.000000E+00 +3.333330E+02 +1.666670E+02 +1.000000E+00 0.658992
+  CN trait_cote_ile
+  CP 1 1 
+  CP  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00  +0.000000E+00 
+  CP 0 
+  C 
+     211563.340     133489.165      8.750 A
+     211604.013     133517.519      9.000 A
+     211645.047     133544.734      9.100 A
+     211684.597     133585.430      9.150 A
+     211716.859     133584.277      9.050 A
+     211777.488     133597.853      8.950 A
+     211828.211     133609.896      9.000 A
+     211896.886     133618.448      9.200 A
+     211945.422     133633.990      9.250 A
+     211996.891     133649.326      9.150 A
+     212044.447     133622.576      9.050 A
+     212067.681     133584.157      9.000 A
+     212056.937     133521.369      9.000 A
+     212007.716     133482.464      9.000 A
+     211959.462     133428.999      9.000 A
+     211925.576     133392.362      9.000 A
+     211885.762     133376.207      9.000 A
+     211817.310     133404.427      9.000 A
+     211783.848     133416.811      9.000 A
+     211742.545     133413.025      9.000 A
+     211681.493     133421.775      9.000 A
+     211644.814     133436.616      9.000 A
+     211597.633     133447.736      9.000 A
+     211569.826     133461.954      9.000 A
+
+The curve of name *trait_cote_ile* is closed, of type spline, defined in plane XoY (XoY is the only possible value here).
+Other parameters are not used.
+
+This 3D curve is converted in a polyline and a profile in HYDRO module:
+
+* One polyline (with z=0).
+* One vertical profile (u,z) representing the altitude along the polyline defined above.
+
+The u parameter of the vertical profile is the curvilign abcissa (in meters) along the isocontour.
+
+
+*export* 
+
+See isocontour and XYZ profile not georeferenced
+
+example of isocontour
+---------------------
+
+*import from existing data file:*
+::
+
+  B N -3.333330E+03 +4.875000E+04 +0.000000E+00 +3.333330E+02 +1.666670E+02 +1.000000E+00 0.658992
+  CN trait_cote_ile
+  CP 1 1 
+  CP 9.0 
+  CP 0 
+  C 
+     211563.340     133489.165      9.000 A
+     211604.013     133517.519      9.000 A
+     211645.047     133544.734      9.000 A
+     211684.597     133585.430      9.000 A
+     211716.859     133584.277      9.000 A
+     211777.488     133597.853      9.000 A
+     211828.211     133609.896      9.000 A
+     211896.886     133618.448      9.000 A
+     211945.422     133633.990      9.000 A
+     211996.891     133649.326      9.000 A
+     212044.447     133622.576      9.000 A
+     212067.681     133584.157      9.000 A
+     212056.937     133521.369      9.000 A
+     212007.716     133482.464      9.000 A
+     211959.462     133428.999      9.000 A
+     211925.576     133392.362      9.000 A
+     211885.762     133376.207      9.000 A
+     211817.310     133404.427      9.000 A
+     211783.848     133416.811      9.000 A
+     211742.545     133413.025      9.000 A
+     211681.493     133421.775      9.000 A
+     211644.814     133436.616      9.000 A
+     211597.633     133447.736      9.000 A
+     211569.826     133461.954      9.000 A
+
+
+The isocontour of name *trait_cote_ile* is closed, of type spline, defined in plane XoY
+(XoY is the only possible value here).
+The constant altitude is 9.0. the Z values of the points are ignored.
+
+This 3D curve is converted in a polyline and a profile in HYDRO module:
+
+* One polyline (with z=0).
+* One vertical profile (u,z) representing the altitude along the polyline defined above, with a constant Z.
+
+The u parameter of the vertical profile is the curvilign abcissa (in meters) along the isocontour.
+
+*export of an isocontour with z=0:*
+::
+
+  B N
+  CN trait_cote_ile
+  CP 1 1 
+  CP 0.0
+  CP 0
+  C
+     211563.340     133489.165     0.000
+     211604.013     133517.519     0.000
+     211645.047     133544.734     0.000
+     211684.597     133585.430     0.000
+     211716.859     133584.277     0.000
+     211777.488     133597.853     0.000
+     211828.211     133609.896     0.000
+     211896.886     133618.448     0.000
+     211945.422     133633.990     0.000
+     211996.891     133649.326     0.000
+     212044.447     133622.576     0.000
+     212067.681     133584.157     0.000
+     212056.937     133521.369     0.000
+     212007.716     133482.464     0.000
+     211959.462     133428.999     0.000
+     211925.576     133392.362     0.000
+     211885.762     133376.207     0.000
+     211817.310     133404.427     0.000
+     211783.848     133416.811     0.000
+     211742.545     133413.025     0.000
+     211681.493     133421.775     0.000
+     211644.814     133436.616     0.000
+     211597.633     133447.736     0.000
+     211569.826     133461.954     0.000
+
+
+See also XYZ profile not georeferenced
+
+
+Synthesis
+=========
+
+In SALOME HYDRO module, when importing SinusX files,
+
+- scatter plots are imported as Bathymetries,
+- isocontours are converted as polylines (z=0) and profiles not georeferenced (lines with z=constant),
+- XYZ curves are converted as polylines (z=0) and profiles not georeferenced (curvilign abcissa, z),
+- XYZ profiles with georeferenced extremities are imported as is (stream profiles for instance),
+- XYZ profiles with with fully georeferenced points are converted in profiles with georeferenced extremities (see stream profiles),
+- XYZ profiles not georeferenced are imported as is (used for section of a channel or embankment, or altitude line...),
+- **all points of XYZ curves and isocontour with z different of 0 are regrouped to build a Bathymetry field**,
+  (Isocontour with z=0 are not significant in that case,
+- when 2 successive points have the same coordinates, the second point must be removed (there are some old data files with this problem).
+
+When exporting SinusX files, all the polylines and profiles can be exported in a single file:
+
+- polylines are exported as isocontour with z=0, (open or closed, spline or not),
+  *(what about sections ? add a comment after the first point of a section?)*
+- profiles are exported as is, georeferenced or not...
+- **bathymetries are exported on demand (volume may be huge).**
+
+
+  :ref:`ref_formatsSpecs`