fr:tbe:wiki4

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

  • visualisation 3D,
  • comment importer des cartes (sans données topographiques),
  • recherche et remplacement,
  • les cartes et les atlas,
  • ajout de cartes géographiques,
  • exporter les données vers une base de données,
  • importer des données topographiques d’autres programmes.



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).



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:

  • “therion”, format natif de therion, “.thm”;
  • “compass”, fichier “.plt” de Compass;
  • “survex”, fichier “.3d”;
  • “dxf”, fichier AutoCad DXF (Drawing Interchange Format);
  • “vrml”, Virtual Reality Modeling Language;
  • “3dmf”, fichier QuickTime 3D metafile.

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,

  • “Caméra” pour positionner le point du regard,
  • “Modèle” avec deux cases à cocher pour les propriétés du modèle.

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 :

  • utiliser les outils accessibles via la barre d’outils
  • utiliser la souris pour faire tourner la vue 3D et faire des zooms.

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



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:

  • numériser la topographie avec un scanner;
  • pour chaque image, définir la position d’un point topo (virtuel). Cette station sera connectée aux visées topo de la cavité.
  • définir une visée topo (ou un cheminement topo) avec cette station, si elle n’apparaît pas déjà sur une autre topo de la cavité;
  • créer un nouveau scrap dans lequel vous importerez l’image scannée comme fond de scrap;
  • définir l’échelle et la rotation de cette image dans le scrap : si l’image a une barre d’échelle (ex : une règle donnant la représentation de 10 m de longueur), vous pouvez utiliser les deux petits carrés rouge et les positionner sur cette barre, comme vous le faites pour les sections. Positionnez (par glisser-déplacer de la souris) les carrés aux extrémités de l’échelle et indiquez les coordonnées à (0,0) et (X m, 0) ou X est la longueur de la barre, en mètres. Rappelez-vous que la coordonnées ‘x’ pointe vers l’est et la coordonnées ‘y’ vers le nord.
  • dessinez le scrap en utilisant l’image scannée. Ajoutez un point de type “station” pour la connexion au reste de la topo et ajoutez lui l’option “-visibility off”;
  • utilisez la commande “join” pour connecter le scrap aux autres scraps.
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



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



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 :

  • visible ou invisible (option -visibility). Seul les éléments visibles sont exportés dans la carte (map).
  • à l’extérieur des lignes de bordure de la cavité ou continuant au delà (option -clip);
  • masqués car dépendants d’un autre élément qui fournit le contexte (option -context);
  • positionné a un niveau spécifique (option tt{-place}).

visibility (option)

4.5.1.1 Visibilité

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

  • son option -visibility n’est pas “off” (elle est “on” par défaut pour chaque élément);
  • il n’est pas caché par les options de layout (symbol-hide);
  • il ne dépend pas d’un contexte qui a été caché.

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],

  • “group cave-centerline” (groupe des visées topo dans la grotte)
  • “group surface-centerline” (groupe des visées topo de surface)
  • “group centerline” (groupe toutes les visées topo)
  • “group sections” (groupe les sections)
  • “group all” (groupe tout)

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.

  • les symboles de remplissage (“sand” (sable), “mud” (argile), “guano” (guano), …).
  • les lignes qui n’ont pas l’option -outline (ligne extérieur), sauf section, arrow (flèche), label (libelle), gradient (gradient) et water-flow (cours d’eau).
  • toutes les surfaces

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 :

  • bottom (bas), le niveau le plus bas. Il ne contient que les éléments qui ont l’option -place bottom.
  • default-bottom (défaut-bas). Il contient les surfaces.
  • default;
  • default-top (défaut-haut). Il contient les ceiling-step (marches de plafond) et les chimney cheminées par défaut.
  • top (haut). Il contient les éléments qui ont l’option -place top.

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 :

  • “topo”, informations sur qui a fait les topos (options “team” du bloc “centerline”) et l’année. Les noms sont triés par longueur de topo. En cas d’égalité, l’ordre est alphabétique. Il est possible de spécifier précisément ce qu’il faut écrire en utilisant l’option de layout “code tex-map” contenant les commandes \def\topoteam{…}
  • “carto”, la date de l’auteur de la topo;
  • “copyright”, les informations de copyright;
  • “explo”, les informations sur les personnes ayant explorées la grotte (dans “centerline” options “explo-team”);
  • “explo-length”, cette option peut être “on” ou “off”, et elle indique s’il faut inclure les données de longueur de cavité explorées pour chaque spéléo;
  • “topo-length”, cette option peut être “on” ou “off”, et elle indique s’il faut inclure les données de longueur de cavité topographiées pour chaque spéléo.

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]:

  • “doc-author” indique les auteurs du document PDF;
  • “doc-keywords”, listes les mots clés du document;
  • “doc-subject”, est une courte description du contenu du document;
  • “doc-title”, pour le titre du document.

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



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:

  • “page-sutup L1 H1 L2 H2 MG MH units”, ou L1 et H1 sont la largeur et la hauteur du papier, L2 et H2 sont celles de la page, et MG est la marge gauche, MH la marge haut. Par exemple, la valeur par défaut est “page-setup 21 29.7 20 28.7 0.5 0.5 cm”.
  • “exclude-pages page_list”, indique quelles pages doivent être omises sur le document final. Par exemple “exclude-pages on 2,4-7,9” supprime les pages 2, 4, 5, 6, 7, et 9. Pour trouver les bons numéros de page, vous pouvez dans un premier temps faire un atlas avec l’option “own-pages 0” et “title-pages off”, et vérifier sur ce document les numéros de page que vous voulez supprimer. Quand vous créerez l’atlas final (sans ces deux options) vous indiquerez les mêmes numéros d page dans l’option “exclude-pages”. (Les numéros de pages dans le PDF final peuvent être différents, mais vous devez vous référer aux numéros que vous avez eus précédemment dans “exclude-pages”).
  • “nav-factor” indique le facteur d’échelle de la grille de navigation. Par défaut la valeur est “nav-factor 30”.
  • “size L H units” Indique la dimension des cellules de l’atlas. Par défaut elle est “size 18 22.2 cm” (valeur bonne pour du papier A4).
  • “own-pages N” indique le numéro de la première page. Par exemple, si vous indiquez “own-pages 100” la première page a le numéro 101.



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



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:

  • “SURVEY”, pour les visées topo;
  • “CENTRELINE”, pour les blocs centerlines (séances topo);
  • “PERSON”, pour les personnes (topographes et explorateurs);
  • “EXPLO”, pour les relations personne-centerline (en tant qu’exploreurs);
  • “TOPO”, pour les relations personne-centerline (en tant que topographe);
  • “STATION”, pour les stations topo;
  • “STATION_FLAG”, pour les stations de flags;
  • “SHOT”, pour les branches (centerline shots);
  • “SHOT_FLAG”, pour les shot flags.

 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.



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:

  • ”-surveys“ définie comment interpréter les noms des stations, en respectant le format interne des noms de therion. La valeur peut être “create” (par défaut), “use” (utilise) ou “ignore”.
  • ”-filter“ suivit par préfixe (chaine de caractères), indique de supprimer les préfixes des noms de station. Par exemple, avec ”-filter top.“ le nom des stations “top.middle.sub.1” est filtré en “middle.sub.1” avant d’insérer le nom dans la hiérarchie.

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.

  • Il est important de mettre la commande “import” dans une commande “survey”. En fait, dans Therion les stations topo et les visées doivent être dans un conteneur survey .
  • Il est possible d’importer deux fois une même station ; therion ne donne aucune erreur. Si ce n’était pas le cas, vous ne pourriez pas travailler avec des fichiers .3d locaux et globaux sans modifier les données des fichiers (cad, mettre en commentaire les commandes “import” sur le niveau local lorsqu’un “import” de niveau global est présent).
  • Il peut être nécessaire d’ajouter des commandes “survey” vide après des commandes “import”, si l’option ”-surveys use“ est spécifiée. Ainsi, les noms des topos sont définies dans la hiérarchie de therion, qui ainsi collera avec les noms utilisés dans les dessins.
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”.



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

  • \mapbox , la boite (rectangle) avec le dessin de la topo. Elle la dimension size_width + 2 * overlap et size_height + 2 * overlap (largeur + 2 * le recouvrement et hauteur + 2 * recouvrement).
  • \navbox , la boite pour le grille de navigation. Sa dimension est size_width * (1 + 2 * nav_size_x) / nav_factor (soit largeur*(1+2*taille_nav_x)/facteur_nav) et size_height * (1 + 2 * nav_size_y) / nav_factor (soit hauteur*(1+2*taille_nav_y)/facteur_nav) .
  • \pointerE \pointerW \pointerN \pointerS , contient le nombre de pages vers l’est, l’ouest, le nord et le sud ( ou une valeur 0 si la page est manquante);
  • \pagenum est le numéro de la page courante;
  • \pagename est le nom de la map (carte);
  • \pagelabel est le libelle des pages. Il est spécifié par l’option de layout “origin” et “origin-label”.

Les autres variables globales sont:

  • \hsize (dimension horizontale)
  • \vsize (dimension verticale)
  • \ifpagenumbering : variable positionnée a vrai ou faux suivant l’option “page-numbers” du layout

Enfin therion utilise les macros

  • \showpointer#1 , pour afficher un des points cardinaux;
  • \showpointlist#1 pour \pointerU et \pointerD ;
  • \processpointeritem#1|#2|#3\endarg , pour le formatage. Il agrandit vers la hbox avec le bon lien: \hbox{\pdfstartlink attr {/Border[0 0 0]} goto name {#3} #2 (#1)\pdfendlink}
  • \size[#1] est utilise pour changer la taille de la fonte du texte;
  • \rm \it \bf \ss \si sont utilises pour changer le style de la fonte du texte;
  • insertmap insert les dessins.

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:

  • \explotitle \exploteam \explodate
  • \topotitle \topoteam \topodate
  • \cartotitle cartoteam \cartodate
  • \comment
  • \copyright
  • \cavelength \cavelengthtitle
  • \cavedepth \cavedepthtitle
  • \atlastitlepage is a combination of these
  • \iflegend \legendtitle \insertlegent et \formattedlegend qui se combine avec les 3 premières;
  • \ifnortharrow \northwarrow
  • \ifscalebar \scalebar

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


  • fr/tbe/wiki4.txt
  • Last modified: 13 years ago
  • (external edit)