Table of Contents

4 Dessins avancés

Ce chapitre décrit des caractéristiques complémentaires de xtherion:


4.1 Trucs et astuces


4.1.1 Fichiers topographiques

Il est possible d’ouvrir plusieurs fichiers topo en même temps. La liste des fichiers ouverts est affichée dans la zone “Files” (fichiers) du panneau de contrôle.

move (button)

4.1.2 Réorganiser les objets dans un fichier .th2

Les “Objects” du panneau de contrôle dans l’éditeur de carte contient deux boutons, “Move up” (déplace vers le haut) et “Move down” (déplace vers le bas), ceci déplace les objets sélectionnés respectivement vers le haut ou le bas, dans la liste des objets. Ce déplacement entraîne essentiellement un déplacement des lignes de commande dans le fichier “.th2”. La commande “Move to” permet de spécifier le numéro de la ligne ou l’objet doit être placé. Ces déplacements permettent de réorganiser les objets graphiques en les déplaçant de scraps, mais également d’affiner le rendu du dessin en fixant l’ordre dans lequel ils sont dessinés (lors des superpositions d’objets).

station names

4.1.3 Nom de stations topo

Ces commandes de configuration ajoute les noms des stations dans la carte finale générée:

     export map -layout-debug station-names
  

Pour changer la taille du texte (nom des stations), il faut ajouter des commandes MetaPost, en utilisant la commande code metapost. Ceci est présenté dans la section 5.4.

split (line)

4.1.4 Couper une ligne en deux

Pour découper une ligne en deux sur un de ses points intermédiaires, vous devez sélectionner le point, puis dans le panneau de contrôle de “Line”, sélectionnez l’action “Edit line | Split line” (découper la ligne). Si vous avez besoin de découper une ligne la ou il n’y a pas de point, vous devez d’abord insérer un point sur la ligne (action “Edit line | Insert point” du panneau de contrôle “Line”).

Quand vous découpez une ligne en deux, xtherion remplace cette ligne de commande par deux lignes de commandes. Quand vous découpez une ligne qui fait partie du contour d’une surface, xtherion ne met pas à jour automatiquement la liste des lignes de contours (cad, il ne remplace pas la ligne découpée par les deux nouvelles lignes), mais maintient la référence à l’ancienne ligne. C’est pourquoi la compilation donne une erreur (qu’il faudra corriger à la main).

Pour résoudre ce problème, sélectionnez la surface. La compilation vous indique l’erreur en route (fenêtre de compilation), cliquez dessus et xtherion vous affiche la fenêtre de l’éditeur de carte avec la surface qui a causée l’erreur. Cette surface est sélectionnée. Vérifiez quelle est la ligne qui manque. Vous pouvez trouver l’identifiant de la ligne dans la liste du contrôle “Areas” (surfaces), et chaque identifiant de ligne est affiché dans la ligne de statut en bas de la fenêtre lorsque vous positionnez la souris au dessus de la ligne correspondante (la ligne est surlignée en bleu claire). Quand vous avez trouvé la ligne manquante, sélectionnez la dans le contrôle “Areas”, et cliquez sur l’action “Insert” du même panneau. Maintenant vous pouvez insérer les nouvelles lignes dans la liste des bordures de la surface. Cliquez sur ces lignes (dans l’ordre) pour les insérer. Retournez dans le mode de sélection en pressant sur la touche “ESC”. Enfin, supprimez la vieille ligne de la liste (action “Delete” du panneau “Areas”).

join (.th command)
Les joins sont aussi affectes par le découpage des lignes. Comme l’identifiant de la ligne est perdu lors de son découpage, la commande “join” qui se réfère a cet identifiant devient invalide. therion donne une erreur quand vous compilez le projet. Vous devez donner un id à un (ou les deux) des nouvelles lignes (suite au découpage) et mettre ces id dans la commande “join”.

pillar

4.1.5 Les piliers

Les piliers sont des morceaux de rocher au milieu de la topographie. Par exemple, la portion de rocher au milieu d’une boucle. Ces surfaces n’appartiennent pas à la grotte, et ne doivent pas être coloriés, mais doivent être considérés “outside” (extérieur) aux surfaces définissant les passages des galeries.

Pour indiquer à therion que ces murs appartiennent à des contours de piliers, au milieu d’une grotte, ajoutez l’option “-outline in” sur ces lignes. Cette option indique que le rocher est “inside” (à l’intérieur) des lignes de bordure (la situation normale serait que le rocher soit à l’extérieur des lignes de bordure).


4.2 Visualisation 3D


Pour la visualisation 3D vous avez besoin de tom (et OpenGL). Sous Linux, vous devez aller dans le sous-répertoire “thtom” et lancer “make”. Copiez alors le contenu du répertoire “Tom0.2” dans le répertoire de votre distribution Tcl/Tk.

Le visualisateur 3D affiche le modèle dans le format natif, cad “.xvi”. Cependant (S. Mudrak, 2006-04):

  Mais nous ne développerons plus le visualisateur xtherion. 
  Les images sur le web proviennent du nouveau visualisateur 3D,
  Que nous souhaiterions distribuer en Août de cette année.

Remarque : depuis la version 0.5, le visualisateur 3D est un programme distinct de xtherion.

4.2.1 Créer le modèle

Pour créer un modèle 3D, ajouter la commande export model au fichier de configuration (ouvert par xtherion). Par exemple, “export model -fmt therion”. Le format natif de therion est celui utilisé par le visualisateur (dans xtherion). Vous pouvez également exporter le modèle 3Ddans d’autres formats:

Après la compilation, vous aurez un fichier avec l’extension “.thm”. Si vous ne spécifiez pas l’option “-output”, le nom par défaut sera “cave.thm”. Ce fichier peut être ouvert avec xtherion.

Quand vous exportez en format DXF (fichier par défaut “cave.dxf”), le modèle est très simple. Il contient uniquement trois objets graphiques : le cheminement topo (CENTERLINE), une triangularisation des murs (WALLS), et les bornes du parallélogramme contenant la topo (BBOX). Tous les symboles et les textes qui composent le dessin ne sont pas exportés.

passage_height (point type)
dimension (point type)
Le modèle est généré à partir du contour de la topo, cad, les lignes extérieurs (outlines) des scraps. La hauteur des passages est calculée en tenant compte les points de type “passage_height” (hauteur de galerie) et des points de type “dimension”, qui indiquent les dimensions de la galerie dans la direction perpendiculaire du dessin [thbook 36, thwiki 2]. Par Exemple “point dimension -value 4.0 2.0 m” indique un point ou le plafond est situé 4 mètres au dessus de la visée topo et le sol est deux mètres en dessous [thbook 21]. L’unité de mesure est optionnelle.

4.2.2 Visualisation

Pour voir le modèle avec xtherion lancer le binaire Loch situé dans le répertoire d’installation de Therion (ou dans le menu d’installation de xtherion). La fenêtre apparait sur fond noir avec des arrêtes rouge d’un cube. Cette fenêtre a deux contrôles,

Une barre d’outils au sommet de l’écran permet d’afficher ou non certains éléments du dessin. Pour déplacer l’angle de vue de la camera, vous pouvez, soit :

Les mouvements de la souris (gauche-droite et haut-bas) sont associés avec tous les mouvements (rotations, déplacement latérale, zoom) possible avec la camera. Pour cela, cliquez sur un bouton de la souris et déplacez la en gardant le bouton appuyé. Essayez successivement avec les 3 boutons pour effectuer les différents mouvements. L’usage est assez intuitif.

 Vue du Modèle 3d


4.3 Importation de topographies


station (type)
visibility (option)
join (.th command)
therion peut importer des topos de grottes pour lesquelles vous n’avez pas de données topographiques [thwiki 6]. Pour cela, vous avez besoin de:

4.3.1 Exemple

Cet exemple utilise des données fictives. Nous supposons avoir un fichier image, nodata.gif. Créez un nouveau fichier topo, nodata.th2, pour créer un scrap sans données topo.

Dans le fichier de donnée nodata.th définir la “topo” nodata avec l’unique station virtuelle “1”, et utilisez la commande “equate” pour établir l’équivalence avec une vrai station topo de la grotte. Vous n’avez pas à définir de bloc centerline.

    survey nodata
      input nodata.th2
    endsurvey
 
    equate 1@nodata 4@s1
 
    join linea_sx@nodata:0   s1_sxf@s1:end
    join linea_dx@nodata:end s1_dxf@s1:0

Dans le fichier nodata.th2 importez l’image nodata.gif comme image de fond. Créez un nouveau scrap (id “scrap_nodata”), indiquez sa projection (“plan”) dans le panneau “Scraps”, et utilisez les petits carrés rouge pour indiquer l’échelle et l’orientation du scrap.

Ajoutez un point de type “station” pour la station virtuelle “1”. Dessinez les lignes du crap et tous les autres symboles et textes. Enfin, connectez ce scrap aux autres avec la commande “join” comme indiqué dans le code ci-dessus.

Ce graphique présente le scraps et le résultat final.

Scrap sans topographie


4.4 Rechercher


search
L’éditeur de texte et l’éditeur de carte de xtherion ont un outil pour rechercher du texte dans un fichier de données ouvert.

4.4.1 Editeur de texte

L’outil “Recherche & Remplace”, dans l’éditeur de texte, permet de rechercher un mot ou une phrase dans le fichier qui est affiché [thwiki 4]. Une case à cocher permet d’indiquer si la recherche doit différentier les majuscules/minuscules ou non. La recherche peut être limitée à une option de fichier, en sélectionnant la zone de recherche, puis en cliquant sur la case “search selection only” (recherche uniquement la selection).

Ecrivez le mot (ou la phrase) que vous voulez rechercher dans le champ situé sous le label “search” (rechercher) puis cliquez sur le bouton “First” (premier) pour obtenir la première instance du mot surlignée en rouge dans le fichier. Avec le bouton “Next” (suivant) vous vous déplacez sur l’instance suivante, qui est elle aussi surlignée en rouge. Quand vous avez termine la recherche et qu’il n’y a plus d’instances nouvelles dans le fichier, xtherion fait un bip.

Avec le bouton “All” (toutes) toutes les instances du mot recherche sont surlignées en rouge. Avec le bouton “Clear” (efface) elles redeviennent en vert.

Recherche de texte

Si la case à cocher “replace” est cochée, le texte situé dans la zone sous la case est substitué au résultat de la recherche. Le texte remplacé est surligné en rouge dans le fichier.

Les expressions régulières sont autorisées dans le texte de recherche, mais la case à cocher “regular expressions” doit être cochée.

4.4.2 Editeur de scraps

Les fichiers de données peuvent faire l’objet de recherche (de texte) avec n’importe quel éditeur de texte car ils sont de simples fichiers textes. Mais il est généralement plus simple d’utiliser l’éditeur de carte de therion. Celui-ci a le panneau “Search & Select” (recherche et sélectionne) qui permet de rechercher du texte dans le fichier ouvert et de surligner le résultat dans le graphique.

Le panneau a un champ permettant d’écrire une expression de recherche. Celle-ci peut être sensible aux majuscules/minuscules ou non, mais également être une expression régulière. Il y a 4 boutons: “Find first” (cherche le premier), “Find next” (cherche le suivant), “Show all” (montre tous) et “Clear all” (masque tout). Ils fonctionnent comme ceux de l’éditeur de texte dans son panneau de recherche (voir chapitre précédent).

Par exemple, si vous cherchez le mot “station” (station topo) vous aurez tous les points de type “station” affichés en rouge sur la fenêtre graphique.

Recherche de station


4.5 Cartes


Pour créer et exporter des cartes topographiques, therion collecte toutes les information des commandes contenues dans les fichiers de données et des fichiers de configuration (mise en page de la topo) puis réalise le dessin des différents niveaux. Ce procédé est expliqué dans le “Therion Book” [thbook 36-37].

4.5.1 Eléments graphiques

context (option)
Les éléments graphiques sont des points (symboles et textes), des lignes et des surfaces. Chaque élément peut être :

visibility (option)

4.5.1.1 Visibilité

Un élément graphique est visible (cad, il apparaît sur la sortie) si :

symbol-hide (layout option)
Lors de la configuration (définition du layout), il est possible de cacher des éléments graphiques suivant leur type. Par exemple, vous pouvez utiliser l’option de layout “symbol-hide line wall” (masque les lignes de mur) pour masquer le dessin des parois des murs de la cavité sur la topo. Les autre exemples, sont “symbol-hide point cave-station” (masque le symbole point topo) et “symbol-hide point surface-station” (masque symbole points de topos de surface), pour masquer les stations topo de la cavité et respectivement les stations topo faites en surface

group
Le type “group” définit des symboles de groupe [thbook 41],

L’option “symbol-hide group all” masque tous les éléments de la carte, sauf ceux explicitement marques avec l’option “symbol-show”. Par exemple, vous pouvez utiliser l’option “symbol-show line survey” pour dessiner uniquement les stations après avoir masqué tous les autres éléments.

clip (option)

4.5.1.2 Masque

Certains symboles sont masques par défaut et visible uniquement à l’intérieur des bords des galeries.

Certains éléments graphiques qui sont normalement masques (hors des galeries), peuvent etre étendue en dehors des limites en utilisant l’option -clip off.

groups
layer
place (option)

4.5.1.3 Ordre de dessin

Chaque élément graphique appartient à un layer (une couche de dessin) ou un groupe. Les éléments graphiques sont ajoutés dans la topographie en suivant l’ordre des layer (niveau de dessin). Il y a 5 niveaux :

Le niveau default contient tous les éléments qui n’appartiennent pas à un autre niveau. L’ordre des éléments graphiques dans un même niveau suit les commandes dans le fichier de donnée. Les éléments graphiques sont dessinés en commençant par le dernier (jusqu’au premier). C’est pourquoi, un élément est dessiné par-dessus ceux qui sont situés en dessous de lui dans le fichier. Donc pour dessiner l’objet A par-dessus l’objet B, positionnez l’objet A avant l’objet B dans le fichier de dessin .th2.

4.5.2 La construction de la carte

La topographie de la grotte est construite par étapes :

  1. le dessin de la surface remplit avec la couleur de fond ( color map-bg).
  2. s’il y a un commande surface et une option de layout (positionnement de la couche) surface bottom, l’image de la surface est dessinée.
  3. Les lignes de bordure de chaque scrap de la topo sont remplies avec du blanc, ainsi elles pourront être dessinées a la prochaine étape.
  4. si le layout a l’option grid bottom la grille rectangulaire est dessinée (avec la dimension spécifiée).
  5. S’il y a un map (carte) avec comme option “map” la valeur preview below (visualisation dessous), alors elle est dessinée.
  6. pour chaque niveau de la commande map, en commençant par le dernier niveau (le plus bas):
  1. - les lignes extérieur de chaque scrap sont remplie avec la couleur (de premier plan) option, color map-fg.
  2. - les surfaces de chaque scrap sont affichées, découpées suivant les lignes de bordure.
  3. - pour chaque scrap, tous les éléments inclus dans les galeries (dont le trace est inscrit dans la galerie) sont dessines, suivant l’ordre de définition (dans le fichier .th2)
  4. - les visées topo sont dessinées
  5. - pour chaque scrap, tous les éléments non circonscrits aux limites de la grotte sont dessines, en suivant l’ordre de définition (dans le fichier).
  6. - les points topo sont dessinés.
  7. - tous les libelles (ainsi que les wall-altitude (hauteur de mur)) sont ajoutés.
  1. s’il y a la carte preview above (pré-visu dessus), celle-ci est dessinée avec la couleur spécifiée par color preview-above.
  2. s’il y a un dessin de surface et que le layout (le niveau de dessin) a l’option surface top (surface en haut), l’image de la surface est dessinée.
  3. la grille est dessinée si le layout a l’option grid top.

map-header (layout option)

4.5.3 Cartouche de la topographie

Le contenu et la position du header du cartouche de la topographie sont configurable. L’option “map-comment” permet d’insérer un commentaire dans le cartouche, par exemple map-comment “Echelle 1:500”.

L’option “map-header-bg” a pour argument “on” ou “off” (par défaut). S’il est “on” le cartouche est écrit en arrière plan, ce qui peut masquer une partie de la topo.

La position du cartouche est indiqué via l’option de layout “map-header”. Celle-ci a trois arguments : la valeur de X, la valeur de Y et un texte qui indique la position. Il peut être “n” (nord), “ne” (nord-est), “e” (est), …, “nw” (nord-ouest), “center” (centré), “off”. Si la valeur est “off” le cartouche n’est pas affiché. Les autres valeurs indiquent la position du coin inférieur gauche du dessin en fonction de la position du cartouche. Une valeur positive de X indique le décalage vers la droite (en mètres). Une valeur positive de Y indique le décalage vers le bas.

 Cartouche de topographie

statistics (layout option)
L’option “statistics” ajoute, ou non, dans le cartouche les informations de statistiques sur la topographie. Elle a un argument qui peut être un nombre, ou “off” ou “all”. Le nombre indique combien de données doivent être écrites. Par exemple “statistics topo 3” signifie qu’il faut écrire seulement des noms des 3 premiers topographes. La valeur “off” indique de ne rien écrire, et “all” d’écrire toutes les données. Les statistiques sont :

author
copyright
Les auteurs sont définis par l’option “author” dans les scraps. Par exemple -author 2005 “marco corvi”. Les “copyright” sont définit de façon similaires (pour chaque scrap). Les noms des auteurs apparaissent en bas du cartouche. “Drawn by:” (dessine par), les noms du copyright apparaissent après le symbole de copyright “©”.

4.5.4 Les options PDF

La commande “export” a quelques options concernant le document PDF [thbook 44]:

Par exemple, Vous pouvez définir un layout (style) avec ces option et l’inclure dans la commande “export” (en utilisant l’option “-layout xpdf”),

    layout xpdf
       doc-author "your name"
       doc-keywords "cave, system"
       doc-subject "plan map of cave"
       doc-title "cave - plan"
    endlayout

Si vous ouvrez le document PDF de la topographie avec acroread, dans le menu “Fichier | Propriétés du document ”, vous pouvez voir les propriétés comme indiquées dans la figure ci-dessous.

 Propriétés de la topo PDF


4.6 Atlas


atlas (layout option)
Un atlas est une topographie de grotte, subdivisée en pages. C’est utile quand vous voulez imprimer la topographie dans une dimension supérieure à la taille du papier de l’imprimante. Dans ce cas, vous imprimez la topo pages par pages, et collez les pièces entre elles pour composer la topo globale.

Pour faire un atlas, vous indiquez l’option “atlas” au lieu de “map” dans la commande “export”,

     export atlas ...
  

Chaque page de l’atlas a les coordonnées de la page et son numéro entre parenthèses. Il y a aussi le nombre de page vers le nord, l’est, le sud et l’ouest, ainsi que vers le niveau supérieur ou inférieur. Le nombre de pages est omis si vous indiquez l’option de layout “page-numbers off”.

select (thconfig command)
Si l’option “title-pages on” est indiquée, les titres de page sont inclus pour chaque chapitre de l’atlas. Il y a des chapitres quand le fichier de configuration a plusieurs commandes “select”. Par exemple, les lignes suivantes du fichier de configuration produisent deux chapitres de l’atlas, le premier avec le titre map7 et le second avec le titre map1,

    select map7@test7 
    select map1@s1.test7
  

origin (atlas option)
L’option (dans le layout) “origin X Y Z m” indique la position de l’origine de la grille. Par exemple, en positionnant les coordonnées géographiques de l’entrée de la grotte par la commande “fix 1 1529802.9 5089076.7 2214.6” dans la le fichier de données topo, et si vous mettez “origin 1529802.9 5089076.7 2214.6 m” (dans le fichier layout), le coin inférieur gauche du carré central du quadrillage coïncidera avec l’entrée. L’option “origin-label” indique les indices sur le quadrillage. Par exemple, “origin-label K 2” assigne l’indice (K,2) au carré central en utilisant des lettres pour les lignes et des nombres pour les colonnes, comme indiqué dans la figure ci-dessous (réalisée en utilisant l’option “origin-label K 2”).

 Origine de la grille

Les pages de l’atlas contiennent également une grille de navigation 5×5 avec la carte de la topographie en petit. Le carré central de la grille correspond à la carte du centre de la page. La taille de cette grille de navigation peut être définie avec l’option de layout “nav-size”. Par exemple “nav-size 1 2” Indique de mettre 3 cellules horizontales et 5 verticales.

overlap
Le bord de la page consiste en une zone de recouvrement avec les pages voisines. Il y a également des liens qui permettent de naviguer dans l’atlas vers les pages voisines (en cliquant sur les bords de la topo). La largeur de ces bordures peut être définit avec l’option “overlap”. La valeur par défaut est 1 cm.

 Pages de l'Atlas

legend (layout option)
L’option du layout “legend on” ajoute une dernière page avec la légende de la carte.

Les autres options de l’atlas concernent les dimensions des pages:


4.7 Cartes Topographiques


topographic map
surface (.th command)
La commande surface du fichier de données est utilisée pour positionner la topographie de la grotte sur une carte topographique [thbook 26]. Cette commande prend en argument le nom de fichier d’une image (dans un format supporte par therion, tel que PNG), ou une grille de données 3D.

Dans le premier cas la syntaxe est

     surface 
       bitmap filename calibration
     endsurface
  

Ici “filename” est le nom du fichier avec la carte de surface, et “calibration” est un ensemble de 8 valeurs qui indiquent les correspondances de coordonnées de deux points de l’image (en unité de pixel) et deux point sur le terrain (coordonnées géographiques, les unités sont en mètres par défaut). Vous avez besoin de 2 points pour positionner les l’image cartographique en respectant la topographie de la grotte. En fait, l’image est pivotée, mise à l’échelle et translatée (pas de cisaillement). Par exemple :

    surface 
      bitmap grigna.png [0 1176 1529079.8 5089914.6 854 186 1529802.9 5089076.7]
    endsurface
  

Dans cet exemple, l’image a la dimension 1900×1176, les coordonnées de l’entrée sur l’image sont (854,990) [pixels]: X est la distance horizontale de la gauche vers la droite, Y la distance verticale du bas vers le haut. Dans la calibration, l’axe Y est considéré vers le haut, c’est pourquoi au lieu de 990, il y a 186=1176-990. De même, le coin supérieur gauche de l’image a pour coordonnées (0,1176). La dimension du pixel est de 0.847 dans chaque direction, c’est pour cela que ce coin a pour coordonnées en mètres 1529802.9 - 854*0.847 = 1528949.7 et 5089076.7 + 990*.847 = 5089914.6.

Dans le second cas, la syntaxe est

      surface
        grid-units units
        grid x y dx dy nx ny
        grid-flip flip
        data
      endsurface
  

Ici les “units” sont les unités de la grille de donnée. Par défaut, elles sont en mètres. L’origine de la grille est positionnée au point de coordonnées(x,y). La grille a un pas de mesure (dx,dy) et nx nœuds horizontaux, et ny verticaux. La grille de donnée “data” est placée après. C’est une suite d’altitudes (au-dessus du niveau de la mer), démarrant à l’origine et suivant les lignes de la grille de l’ouest vers l’est et du sud vers le nord. La commande “grid-flip” est optionnelle. Elle est utilisée quand la grille de données est donnée dans un autre ordre. Elle peut prendre les valeurs “none” (aucun), “vertical” ou “horizontal”.

Il est possible d’indiquer en même temps l’image et la grille d’altitude. (S. Mudrak 2005-11-30),

   # surface command for entering surface
   surface
     # grid to specify position of surface
     # grid X-start Y-start X-step Y-step C-columns R-rows
     grid 400080 5419750 10 10 190 68
     # calibrated surface texture - not yet supported in 3D viewer
     bitmap <filename> [calibration-parameters]
     # followed by CxR altitudes matrix
     1520 1530 ...
     ...
     1680 1690 ...
   endsurface
  
4.7.1 Exemple

Comme exemple chargez l’image de surface “sovra.png” dans la carte d’exemple “gm-therion”. Ajoutez les commandes suivantes dans le fichier de donnée

     surface
        bitmap sovra.png [114 107 0 0 88 56 -33 -64]
     endsurface
  

Les valeurs pour la calibration sont trouvées à partir de la position de l’entrée de la grotte (0,0 dans la topo) sur l’image de surface du terrain, et à partir de l’échelle et de la résolution de l’image.

Dans le fichier de configuration vous avez besoin d’ajouter les options de layout pour inclure la surface

      -layout-transparency on \
      -layout-surface bottom \
      -layout-surface-opacity 80
  

La première option active la transparence de la topo (la valeur par défaut de l’option “opacity” est 70). La seconde option positionne la surface sur le niveau le plus bas du dessin (le niveau “bottom”).

Le résultat est présenté dans la figure ci-dessous : l’a grotte d’exemple est plutôt petite, et elle disparaît un peut dans la carte topographique.

 Surface


4.8 Base de donnée


Avec therion vous pouvez exporter les données topographiques dans un script avec lequel vous pouvez créer et remplir une base de données [thbook 49].

4.8.1 Préparation du SQL

La commande dans le fichier de configuration est

    export database -output "fichier.sql"
  

Le résultat est un fichier avec des commandes SQL pour créer les tables de base de données et des commandes pour remplir ces tables avec les données topo.

En particulier, les tables suivantes sont crées:

 Base de données

La structure de la base de données est assez simple et peut être vue dans la figure ci-dessus. Néanmoins, il est possible de créer des requêtes intéressantes. Par exemple, la longueur topographiée a une certaine période:

    select sum(LENGTH) from SHOT S, CENTRELINE C 
       where S.CENTRELINE_ID = C.ID
          and C.TOPO_DATE between '2004-01-01 and '2004-12-31';
  
4.8.2 Utilisation de la base de données

Pour cet exemple, nous utilisons “sqlite” http://www.sqlite.org. La commande pour créer la base de données est

    sqlite3 filename.db \lt filename.sql
  

Maintenant vous pouvez ouvrir une session sur la base de donnée que vous venez de créer (commande “sqlite3 filename.db”) et sur le prompte “sqlite3” vous pouvez écrire la requête et voir le résultat:

    $ sqlite3 filename.db
    sqlite> select sum(LENGTH) from SHOT S, CENTRELINE C ... ;
    215.22
    sqlite>.quit
  
4.8.3 Maintenir la base de données

Il y a un problème si vous voulez importer les données d’une topo dans une base de données existante (crée avec des données d’autres topos). Cela arrive quand vous avez besoin d’ajouter une série de topo dans une grotte ou un grand réseau.

Dans ce cas, la commande “export database” n’a pas d’éléments pour annuler la génération du code SQL créant les tables. C’est pourquoi vous devez éditer le fichier sql et supprimer les premières lignes, c'est-à-dire celles commençant par le mot “CREATE”. Les lignes suivantes remplissent la base de données avec les données topographiques. Ensuite vous pouvez exécuter le fichier sql comme précédemment : “sqlite3 filename.db < filename.sql”.

Faites attention de ne pas remplir deux fois la base de donnée avec le même fichier SQL, sinon les données seront insérées deux fois et comptabilisées en double. En d’autres mots, la base de données ne contrôle pas que les enregistrements sont en double.

Cette méthode de contournement du problème (contrôler les doublons par la base de données) ne serait pas une solution. Il pourrait y avoir des conflits de noms entre les données des scripts sql et les données stockées dans la base de donnée. Du coup, la base de données arrêterait ses mises à jour et elle resterait dans un état instable, ce qui n’est surement pas ce que vous souhaiteriez.


4.9 Importer des topographies


Therion peut importer des séries de visées topo, produites par d’autres programmes et les utiliser pour la génération des cartes.

therion ne peut pas utiliser les données topographiques écrites dans le format survex. Le format des données topo de Therion est légèrement différent de survex et vous ne pouvez pas importer les lignes de données de survex. Vous pouvez cependant importer les fichiers ”.3d“ générés par survex.

4.9.1 Les noms (de station)

import (.th command)
La commande pour cet “import” prend comme argument le nom du fichier à importer et a les options suivantes:

L’effet de l’option ”-surveys“ dépend du niveau ou la commande “import” est positionné dans la hiérarchie. Avec ”-surveys use“ therion utilise les topographies (et sous topos) à ce niveau. Par exemple, regardons l’importation d’un fichier 3d avec des noms de stations “top.middle.sub.1”,

   survey top
     import file.3d -surveys use -filter top.
     survey middle
       survey bottom
         ...
       endsurvey bottom
       ...
     endsurvey middle
   endsurvey top
  

therion va d’abord filtrer le préfixe top, le nom devient alors “middle.sub.1”. Ensuite therion va essayer d’utiliser la topo middle, et comme il y a une topo de ce nom au niveau “import”, il change les noms en “sub.1@middle”. Ensuite, il va essayer de faire de même pour la sous-topo middle de nom sub, mais il ne la trouve pas, alors les noms restent ainsi (tel que définit précédemment). S’il l’avait trouvé, les noms seraient devenus “1@sub.middle”.

Avec la valeur “create”, les noms des fichiers topo sont crées et insérés dans la hiérarchie therion afin de coller au nom des stations topo. Par exemple, avec les noms de station “top.1” therion crée une topo top et fait référence à la station “1@top”.

Avec “ignore” les fichiers topo (.th) ne sont pas crées.

La commande “scrap” a une option pour les préfixes et les suffixes des noms, ”-station-names prefix suffix“. Par exemple ”-station-names top. []“ indique de préfixer tous les noms dans le scrap avec “top.” Et de les suffixer avec une chaine vide (pas de suffixe). Dans ce cas, le point avec l’option ”-name 1“ est interprété comme si son nom était “top.1”.

Il est également possible d’ajouter des suffixes. Par exemple avec ”-station-names [] @top“ le point ayant l’option ”-name 1“ aura le nom “1@top”.

Quelques remarques.

4.9.2 Importer un fichier .3d

L’exemple suivant a une partie de la topo (visées topo) dans un fichier survex, et une autres dans un fichier therion. Le fichier de configuration a la commande “source global.th”, et le fichier global.th organise les données. Tout est contenu dans la topo middle. C’est pourquoi, les noms des stations dans le fichier .3d de survex sont filtrés par le préfixe top, et que la hiérarchie des topos est utilisée. La topo middle a une sous topo bottom et incluse un fichier scrap middle.th2. Il y a une commande equate pour marquer l’équivalence de deux stations topo, sub.2@middle du fichier 3d de survex et 1@sub.bottom.middle du fichier de données de therion. Enfin, il y a les commandes “join” pour les lignes de mur.

   survey global
     import global.3d -filter top. -surveys use
 
     survey middle
       survey bottom
         input bottom.th
       endsurvey bottom
       input middle.th2
     endsurvey middle
   
     centerline
       equate 1@sub.bottom.middle sub.2@middle
     endcenterline
   
     join m1_sx@middle:0   b2_sx@bottom.middle:end
     join m1_dx@middle:end b2_dx@bottom.middle:0
   
   endsurvey global
  

Le fichier source de survex, a partir duquel le fichier 3d est généré:

   *begin top.middle.sub
   * export 2
   ...
   *end top.middle.sub
  

Notez que la station “2” de ce centerline (bloc de visées topo) doit être référencée au niveau global, comme sub.2@middle car le préfixe top. a été supprime et middle a été utilisé dans la hiérarchie des topos.

Le fichier de données topo de therion bottom.th est

   survey sub
     centerline
       ...
     endcenterline
   endsurvey
   input global_bottom.th2
  

Notez que le scrap est inséré au niveau {bottom.middle.global} de la hiérarchie des topo. C’est pourquoi la commande “join” fait référence aux lignes de mur avec le suffixe @bottom.middle (les commandes sont positionnées au niveau global ). De même, la station “1” dans ce centerline (bloc de données topo) est correctement référencées, au niveau global, avec 1@sub.bottom.middle.

Le fichier de scrap bottom.th2 a le contenu suivant

   scrap scrap1 -projection plan -station-names [] @sub -scale [...]
     ...
     point 419.0 610.0 station -name 1
   endscrap
  

L’option ”-station-names“ indique que le point écrit avec ”-name 1“ a le nom 1@sub. Comme le fichier est inclus au niveau bottom.middle.global, le niveau global fait référence au point en indiquant 1@sub.bottom.middle.

Le fichier de scrap middle.th2 contiend

   scrap scrap1 -projection plan -station-names sub. [] -scale [...]
     ...
     point 622.0 440.0 station -name 2
   endscrap
  

Dans ce cas, le point écrit avec ”-name 2“ a le nom sub.2. Comme le fichier est inclus au niveau middle.global, le niveau global fait référence a ce point en indiquant sub.2@middle.

Les données dans la légende des carte peut devenir incorrect car le fichier ”.3d“ fait référence a la totalité de la cavité. Wookey a demande comment surcharger la valeur de “cavelength” (développement topo) le 2006.09.20. S. Mudrak a répondu

Ajoute simplement des lignes dans le bloc layout:
>   code tex-map
>     \topoteam{Ton nom.}
>     \cavelength{1000\thinspace{}ft}
>     \cavedepth{300\thinspace{}m}
>   endcode
>  


cavelength = développement topo ; cavedepth = profondeur

4.9.3 Importer un fichier .plt

Si vous calculez votre topo avec Compass 12 vous pouvez également transformer vos fichier .dat en fichiers .th de therion avec un simple script, ou vous pouvez importer les fichiers .plt dans therion.

Par exemple supposons que nous avons le fichier “example.dat” suivant (ou le fichier “example.plt” correspondant)

         SURVEY NAME: first.dat
         SURVEY DATE: 7 24 2006  COMMENT:
         SURVEY TEAM: ...
         ...
         FROM  TO  LENGTH BEARING  INC   LEFT  UP    DOWN  RIGHT FLAGS COMMENTS
            1  2   10.00   90.00   0.00  1.00  2.00  0.00  1.00
            2  3   10.00  180.00   0.00  1.00  2.00  0.00  1.00
            3  4   10.00   90.00   0.00  1.00  2.00  0.00  1.00
            4  5   10.00  180.00   0.00  1.00  2.00  0.00  1.00
         ...
  

Vous pouvez écrire un fichier .th qui importe le fichier .plt (et intégrer les cartes .th2),

    survey example
    import example.plt
    input example.th2
    endsurvey
  

Les commandes des stations topo du fichier “example.th2” peuvent faire référence aux noms des stations dans le fichier .plt, par exemple, “point 593.0 241.0 station -name 4”.


4.A Atlas PDF


atlas (layout option)
Cette annexe décrit comment therion crée les fichiers PDF pour les atlas. therion définit plusieurs macros TeX, et a la fin, appelle la commande ” \dopage “ de TeX pour générer le fichier de sortie.

Les variables utilisées pour écrire la page sont

Les autres variables globales sont:

Enfin therion utilise les macros

Les autres variables gérées par therion et qui peuvent être utilisées sont celles qui sont positionnées a travers des options de layout:

A ce point, nous pouvons analyser la définition de \dopage contenu dans les fichiers therion nommés “tex/therion.tex”. La structure commentée ici est présentée dans le graphique ci-dessous. Les vboxes sont bleu et les hboxes sont en rouge.

<code>
 \def\dopage{%
   \vbox{%                           +-- global vbox 
     \centerline{\framed{\mapbox}}         +-- center mapbox
     \bigskip                              +-- a space
     \line{%                               +-- "navigation" line
       \vbox to \ht\navbox{                      +-- vbox high as the "navbox"
         \hbox{\size[20]\the\pagelabel                 +-- label
           \ifpagenumbering\space(\the\pagenum)\fi     +-- number
           \space\size[16]\the\pagename}               +-- name
         \ifpagenumbering
           \medskip                                    +-- spaec
           \hbox{\qquad\qquad                          +-- pointers hbox
             \vtop{%
               \hbox to 0pt{\hss\showpointer\pointerN\hss}
               \hbox to 0pt{\llap{\showpointer\pointerW\hskip0.7em}%
                 \raise1pt\hbox to 0pt{\hss$\updownarrow$\hss}%
                 \raise1pt\hbox to 0pt{\hss$\leftrightarrow$\hss}%
                 \rlap{\hskip0.7em\showpointer\pointerE}}
                 \hbox to 0pt{\hss\showpointer\pointerS\hss}
             }\qquad\qquad
             \vtop{
               \def\arr{$\uparrow$}
               \showpointerlist\pointerU
               \def\arr{$\downarrow$}
               \showpointerlist\pointerD
             }
           }
         \fi
         \vss                                         +-- vertical space
         \ifscalebar\scalebar\fi                      +-- scael-bar
       }\hss                                      +-- horizontal space
       \box\navbox                                +-- navbox
     }
   }
 }
</code>  

 Atlas PDF