From b6b0fe5efe9b2443d3028720b079c96a5d18c735 Mon Sep 17 00:00:00 2001 From: Paul RASCLE Date: Wed, 16 Dec 2015 17:22:53 +0100 Subject: [PATCH] =?utf8?q?tutoriel=20:=20spescs=20=20format=20sinusx,=20fr?= =?utf8?q?an=C3=A7ais=20et=20anglais?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/salome/tutorial/CMakeLists.txt | 2 + doc/salome/tutorial/format_sinusx.rst | 563 ++++++++++++++++++++++++++ doc/salome/tutorial/index.rst | 16 +- doc/salome/tutorial/sinusX_Format.rst | 514 +++++++++++++++++++++++ 4 files changed, 1094 insertions(+), 1 deletion(-) create mode 100644 doc/salome/tutorial/format_sinusx.rst create mode 100644 doc/salome/tutorial/sinusX_Format.rst diff --git a/doc/salome/tutorial/CMakeLists.txt b/doc/salome/tutorial/CMakeLists.txt index 8fe57221..b5bfa74f 100644 --- a/doc/salome/tutorial/CMakeLists.txt +++ b/doc/salome/tutorial/CMakeLists.txt @@ -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 index 00000000..f2aa74c2 --- /dev/null +++ b/doc/salome/tutorial/format_sinusx.rst @@ -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 . + +###################################### +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` diff --git a/doc/salome/tutorial/index.rst b/doc/salome/tutorial/index.rst index fecfd3c0..d29cc06e 100644 --- a/doc/salome/tutorial/index.rst +++ b/doc/salome/tutorial/index.rst @@ -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 index 00000000..6d6e1403 --- /dev/null +++ b/doc/salome/tutorial/sinusX_Format.rst @@ -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 . + +############################################## +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` -- 2.39.2