projet geomatiqueprojet geomatique …masig.ensg.eu/pdf/isolignes.pdf · projet geomatiqueprojet...

39
PROJET GEOMATIQUE PROJET GEOMATIQUE PROJET GEOMATIQUE PROJET GEOMATIQUE 2007 2007 2007 2007- - -2008 2008 2008 2008 CREATION D’ISOLIGNES 3D A PARTIR D’UN SEMIS DE POINT Thierry LALLEMANT Julien PLACE Vincent TOUPENSE

Upload: vanthuy

Post on 13-Sep-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

PROJET GEOMATIQUEPROJET GEOMATIQUEPROJET GEOMATIQUEPROJET GEOMATIQUE 2007200720072007----2008200820082008

CREATION D’ISOLIGNES 3D

A PARTIR D’UN SEMIS DE POINT

Thierry LALLEMANT Julien PLACE

Vincent TOUPENSE

Page 2: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

SSOOMM MM AAII RREE Sommaire ............................................................................................................................................2 Introduction........................................................................................................................................3 I. L’analyse du sujet..........................................................................................................................4

a. Les méthodes retenues ................................................................................................................4 b. La structure HBDS......................................................................................................................6 c. La Théorie ...................................................................................................................................7

II. Description de la méthode de calcul ...........................................................................................9

a. Le graphe d’enchaînement ..........................................................................................................9 b. Les différentes étapes................................................................................................................10 c. Le graphe d’appel......................................................................................................................17

III. L’affichage et l’IHM ................................................................................................................18

a. La navigation............................................................................................................................18 b. Les paramètres d’initialisation.................................................................................................19 c. Les modes d’affichage ..............................................................................................................20 d. Les aspects du MNT ................................................................................................................22 e. Evénements d’actions et d’informations ..................................................................................23

IV. Difficultés rencontrées & suggestions d’amélioration...........................................................24

a. Les difficultés rencontrées ........................................................................................................24 b. Les suggestions d’amélioration.................................................................................................25

V. Les algorithmes.....................................................................................Erreur ! Signet non défini. Conclusion.........................................................................................................................................39

Page 3: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

II NNTTRROODDUUCCTTII OONN Le but de ce projet est, comme l’indique le titre, d’aboutir au tracé automatique d’isolignes en 3 dimensions à partir d’un semis de points, régulier ou non. Notre équipe, composée de 3 étudiants (2 MASIG et 1 IASIG) s’est efforcée de remplir au mieux cet objectif. Ce projet s’articule en trois parties distinctes : une partie Géomatique consistant en l’écriture et la programmation des algorithmes de calcul des isolignes à créer, une seconde partie quant à elle destinée au tracé proprement dit de ces dernières ainsi qu’aux options d’affichage développées et enfin une dernière partie IHM dont le but sera de commander ces routines de tracés auxquelles seront ajoutées d’autres routines de déplacement et d’archivage. Nous présenterons tout d’abord la manière selon laquelle nous avons abordé le sujet, la méthode de calcul avec ses particularités et les difficultés rencontrées. Ensuite nous présenterons les algorithmes de calcul, en ADL et commentés, aboutissant à la création des isolignes souhaitées. Enfin, nous traiterons de l’aspect programmation avec les difficultés rencontrées concernant la partie calcul mais également l’aspect graphique et l’IHM. Remarque : Le langage de programmation utilisé est le Fortran 90 (ou 95). Ce langage n’est pas « orienté objet » ; il nous faudra donc travailler avec des tables et non des TAD. Toutefois, nous présenterons dans ce rapport une structure HBDS correspondant au traitement de cette problématique dans une optique « orienté objet ».

Page 4: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

II .. LL ’’ AANNAALL YYSSEE DDUU SSUUJJEETT

La donnée initiale de notre projet est un fichier texte de coordonnées des points d’un semis pouvant être régulier ou non. Cependant dans notre étude nous avons fait l’hypothèse restrictive d’un semis de point régulier extrait d’un Modèle Numérique de Terrain (MNT). L’emprise de cet extrait est de plus un rectangle parfait, évitant ainsi les problèmes de « dentelle » sur les bords du MNT.

Notre projet s’articule en trois parties : géomatique, graphique, IHM. Nous ne traiterons ici que l’aspect théorique de la partie géomatique.

aa.. LL eess mméétthhooddeess rr eetteennuueess

A propos des isolignes

Afin de tracer aisément les isolignes recherchées, un maillage arbitraire, rectangulaire et régulier, est appliqué sur le semis de points. C’est à partir de ce maillage que nous allons travailler. Cela donnera lieu à différentes méthodes de traitement dont voici les deux approches possibles.

La première consiste en la détection d’une isoligne sur toute sa longueur. Les calculs seront ainsi réalisés sur les mailles situées sur le parcours de l’isoligne. Cependant cette méthode est très coûteuse en terme de temps car cela impliquerait de scanner l’intégralité du maillage pour détecter une seule isoligne donnée et une maille serait étudiée autant de fois que d’isolignes qu’elle contient.

La seconde approche consiste à étudier chacune des mailles indépendamment, le but étant non plus de trouver l’isoligne en entier mais d’en détecter des morceaux. Nous introduisons ici la notion de « chemin » étant la restriction d’une isoligne à une maille (= ensemble de tronçons d’isoligne). Cette méthode est avantageuse car on ne scanne qu’un seule fois chaque maille mais on perd la notion d’unité de l’isoligne. Il faudra alors reconstituer les isolignes en mettant bout à bout les chemins.

C’est bien évidemment cette seconde approche que nous avons adoptée.

Page 5: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

A propos des chemins

Cette création d’isolignes passant par les chemins s’appuie sur des interpolations successives effectuées via la routine INTERXY de Laporte. Cette dernière est une méthode d’interpolation locale basée sur une optimisation de la méthode de paraboloïde hyperbolique nécessitant un minimum théorique de 6 points pour fonctionner. Il est donc nécessaire pour son utilisation en un point donné, de rechercher les points du semis situés dans le voisinage de ce dernier.

Il y a deux méthodes de recherche de points d’interpolation envisageables. Une méthode que l’on qualifiera de « rigoureuse » et l’autre « économique ».

La première consiste à rechercher les points nécessaires à l’interpolation de manière symétrique par rapport à la zone interpolée. (cf. schémas ci-dessous).

La deuxième méthode consiste quant à elle à considérer qu’un bord ou un nœud appartient à cette maille. On recherche donc autour de la maille (cf. Schémas ci-dessous).

Page 6: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Ces méthodes présentent toutes deux l’inconvénient de poser des problèmes de raccords. Pour la première, le problème se situe au sein de chaque maille, tandis que pour la seconde, elle se situe au bord de maille. Néanmoins, la seconde présente l’avantage de n’effectuer qu’une seule fois la recherche des points d’interpolation. C’est donc cette méthode « économique » que l’on choisira.

bb.. LL aa sstt rr uuccttuurr ee HHBBDDSS

La structure HBDS de notre projet est la suivante, on y retrouve le semis de points (en gris), les éléments du maillage (en rose), ainsi que le prototype isoligne (en vert). Cette structure expose la manière dont nous aurions traité le problème si des TAD persistants étaient à notre disposition.

Page 7: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

cc.. LL aa TThhééoorr iiee La théorie, présente ci-dessous, expose chronologiquement les grandes étapes de notre méthode. Elle se décompose en 4 points et nous informe sur les subroutines appelées dans chacune d’elles. Cette partie se terminera sur le graphe d’appel.

Etape 1 : Collecte et stockage des données d’entrée (Semis de points)

Fortran étant un langage non orienté objet, nous travaillons avec des tables. La première chose est donc de créer la table initiale des points du semis par lecture du fichier texte précédemment évoqué. Cette table sera nommée TXYZ. (Lecture_entetemnt et Lecture_suitemnt)

Etape 2 : Construction du maillage

Afin de procéder à la détection des isolignes, nous devons créer un maillage arbitraire qui recouvre le semis de points. Ses caractéristiques sont dictées par les celles du semis lui-même. En effet, l’origine, la largeur de maille ainsi que le nombre de mailles selon les deux axes sont fonctions directes des coordonnées minimales et maximales des points du semis ainsi que du pas du MNT chargé. Nous verrons plus précisément le calcul de ces paramètres dans la suite du rapport. (Lecture_suitemnt)

Pour procéder à l’interpolation en un point, il est nécessaire que chaque maille « connaisse » les points qu’elle contient. Cela est permis par la procédure INVTOPO qui sera décrite plus loin.

Enfin, afin d’éviter un recalcul de l’altitude des nœuds de chaque maille, nous allons consigner dans un vecteur l’ensemble des altitudes de ces nœuds via la routine CREATEZND.

Etape 3 : Création des chemins dans chaque maille

La création des chemins est effectuée par la procédure CHEMIN qui traite les mailles une par une. Cette étape se redivise en deux sous-étapes : la recherche des points d’intersection d’isolignes avec les bords de la maille puis le cheminement (c’est-à-dire la constitution des chemins).

Cette recherche des points d’intersection s’effectue via la routine DICHOTOMIE. Comme son nom l’indique, celle-ci va détecter l’intersection ou non d’isolignes par dichotomies successives du bord de la maille. On notera qu’on ne cherchera la présence d’une isoligne sur un bord de maille qu’uniquement si son altitude est comprise entre les altitudes des nœuds situés aux extrémités de ce bord de maille. L’ensemble des points détectés sera stocké dans une table provisoire nommée DICHO.

Le cheminement est assuré par la procédure CREATECHEM. A partir des points de la table DICHO créée dans DICHOTOMIE, on procède par un cheminement sur les nœuds d’un sous-maillage fictif de pas 1/2^d (où d est le nombre de dichotomies effectuées). Chaque déplacement élémentaire s’effectuera depuis le bord de maille selon les 3 demi-directions correspondantes au schéma suivant.

Page 8: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

L’ensemble des points annexes formant les chemins ainsi que les altitudes et les pointeurs de début et fin de chacun de ces chemins sont stockés dans des tables globales. On sauvegardera également leur orientation sous forme de booléen afin de faciliter la reconstitution des isolignes.

Etape 4 : Reconstitution des isolignes

La dernière étape de la partie géomatique de notre projet consiste à reconstituer les isolignes entières à partir des chemins précédemment créés. Cela s’effectue en plusieurs étapes : on recolle tout d’abord les chemins dont les extrémités sont proches d’une distance inférieure ou égale au pas du sous-maillage en prenant en compte l’orientation des chemins (CREATEISO1) ; on recolle ensuite les chemins dont les extrémités sont proches en augmentant progressivement la sensibilité (CREATEISO2); enfin, on reconstitue les isolignes entières en commençant par celles débutant sur les bords puis les isolignes fermées (COLLAGE).

Remarque : il est nécessaire de parcourir la liste des chemins dans un sens puis dans l’autre lorsque l’on reconstitue des isolignes car dans le cas contraire on s’expose au problème illustré par le schéma suivant. Si l’on parcourt toujours dans le même sens le chemin 53 ne sera jamais relié au chemin 11.

Page 9: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

II II .. DDEESSCCRRII PPTTII OONN DDEE LL AA MM EETTHHOODDEE DDEE CCAALL CCUULL

aa.. LL ee ggrr aapphhee dd’’ eenncchhaaîînneemmeenntt

Les routines précédemment évoquées font intervenir un certain nombre de tables. En voici le graphe d’enchaînement ou graphe « dataflow ». Ces tables seront décrites plus précisément dans la suite de ce rapport.

Page 10: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

bb.. LL eess ddii ff fféérr eenntteess ééttaappeess

Etape 1 : Collecte et stockage des données d’entrée (Semis de points)

Le fichier MNT que nous utiliserons se présentera sous la forme suivante :

Nous effectuons tout d’abord la lecture de l’en-tête du fichier afin de récupérer les informations sur le MNT et de calculer les caractéristiques du semis et du maillage à appliquer à ce dernier. On obtient donc NTXYZ le nombre de points total du semis, X0 et Y0 l’origine du maillage, DX et DY le pas du maillage (que l’on prendra moitié moindre que le pas du MNT afin de conserver une certaine symétrie), et enfin NX et NY le nombre de mailles selon X et Y.

Par une seconde lecture du fichier, on crée une table TXYZ de longueur NTXYZ contenant les coordonnées des points du fichier du MNT considéré. Cette table comporte bien entendu trois colonnes (X, Y et Z). Ces trois coordonnées seront traitées comme des flottants, même si l’on sait qu’un MNT se présente la plupart du temps sous la forme de 2 entiers (X et Y) et 1 réel à 1 décimale (Z). Cela évitera la confusion de type lors des calculs qui vont suivre.

nb_pt_selon_x nb_pt_selon_y xmin xmax ymin ymax zmin zmax z1 z2 z3 z4 …

Page 11: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Etape 2 : Construction du maillage

Après avoir déterminé les caractéristiques du maillage (origine, taille de maille, nombre de mailles) à partir du semis, nous appliquerons une procédure permettant à chaque maille de connaître les points du semis qu’elle contient. Il s’agit de la procédure INVTOPO vue en cours. Cela a pour but de créer deux matrices et un vecteur :

• La matrice C indique le nombre de points topo que contient chaque maille

• La matrice P est une matrice de pointeurs, pointant vers le vecteur PT, dont seuls les indices (i,j) pour lesquels C(i,j) est non nul nous intéressent.

• Le vecteur PT est un vecteur de pointeurs, pointant vers la table des points du semis

Le principe de fonctionnement de ces tables est décrit sur le schéma suivant.

Lors des interpolations, il sera nécessaire au préalable de constituer les tables TX, TY et TZ de longueur NP, qui stockeront les coordonnées (respectivement X, Y et Z) des points topo sélectionnés pour l’interpolation et qui seront en entrée de la routine INTERXY de Laporte.

Préalablement à tout calcul d’isolignes, il est nécessaire de calculer les altitudes des nœuds du maillage car c’est à partir de ces derniers que l’on pourra détecter des isolignes. Voici principe exact de recherche de points concernant l’interpolation effectuée dans CREATEZND, procédure qui permet de calculer ces altitudes.

Page 12: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Etape 3 : Création des chemins dans chaque maille (Dichotomie)

Le calcul des chemins implique au préalable de répertorier les intersections d’isolignes avec les bords de la maille traitée. Ces intersections sont repérées par dichotomie sur chacun des 4 bords de la maille.

Cette dichotomie est effectuée entre les extrémités du segment traité, et s’effectue par 5 dichotomies successives, entraînant de fait une subdivision de la maille en un sous-maillage fictif de pas 1/32e du pas de la maille. On effectue les affectations nécessaires afin de se retrouver dans la situation suivante : on effectue la dichotomie entre le point n°1 et le point n°2 de telle sorte que Z1 est plus bas que Z2.

Au bout des 5 dichotomies successives, deux cas se présentent.

C’est dans la table DICHO, composée de cinq colonnes, que vont être stockés ces points pour la maille courante. Ces cinq colonnes sont tout d’abord les coordonnées X, Y et Z. Puis viennent s’ajouter à ces dernières un booléen de visite qui est mis à vrai lorsqu’un chemin part ou arrive sur le point concerné. Enfin est stocké un entier correspondant au code du côté ou du coin de maille correspondant à ce point (les coins sont communs aux deux côtés, il est important de savoir s’ils sont présents dans DICHO).

Page 13: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Etape 3 bis : Création des chemins dans chaque maille (Cheminement)

Dans un second temps, un cheminement le long des isolignes est effectué dans chacune des mailles. Le principe est le suivant : après avoir trouvé par dichotomie les intersections des isolignes avec les bords de la maille, les chemins (morceaux d’isolignes) seront stockés dans les tables PTCHEM, ZCHEM, DR et REC de longueur NCHEM (nombre total de chemins calculés) et AXY de longueur NAXY (nombre total de points constituant ces chemins). Ces tables sont définies de manière unique pour l’ensemble du maillage.

La table ZCHEM contient l’altitude de l’isoligne à laquelle appartient le chemin. La table PTCHEM quant à elle stocke les pointeurs de début et de fin de ces chemins et pointe sur la table AXY contenant les coordonnées X et Y des points constituant le chemin considéré.

Les tables DR et REC sont des vecteurs de booléens. DR indique si, lors du stockage du chemin, l’altitude du terrain à gauche du chemin était plus élevé (DR(i) mis à vrai) ou plus basse (DR(i) mis à faux). REC quant à lui est mis dans un premier temps à faux et interviendra lors du rassemblement des chemins pour former chaque isoligne.

Le fonctionnement de ces tables est illustré par les schémas ci-dessous.

Page 14: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Le cheminement se déroule de la manière suivante. Pour chaque déplacement élémentaire, on regarde la direction du déplacement précédent. De cette information on en déduit les 3 demi-directions que l’on va tester afin de déterminer quel point sera choisi. On conservera le point d’altitude la plus proche de l’altitude théorique du chemin tracé (c’est-à-dire l’altitude « ronde » de l’isoligne correspondante). Pour faciliter le calcul nous avons mis en place un système d’automates permettant d’automatiser le cheminement.

On remarquera également que les bords de maille sont des cas particuliers. Par convention on a décidé que tout chemin débutant sur un côté sera considéré comme un chemin quelconque venant d’une direction perpendiculaire au côté considéré.

Par contre on ne tracera un chemin issu d’un coin de maille uniquement si l’altitude du premier point est l’une des deux plus proches altitudes parmi celles des 4 points environnants par rapport à l’altitude théorique du chemin. Nous sommes cependant conscients que nous nous exposons à des problèmes dus à l’interpolation car les points utilisés dans INTERXY ne seront pas les mêmes entre deux mailles voisines. Cela donne tout de même de bons résultats.

Afin d’optimiser le nombre de points annexes stockés dans AXY, nous ne conservons uniquement que les points annexes issus d’un déplacement effectué dans une direction différente que celle du déplacement précédent

Page 15: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Etape 4 : Reconstitution des isolignes

Une fois l’ensemble des chemins détectés, nous effectuerons une « relecture » des tables précédemment évoquées afin de constituer les tables PTXY, ZC de longueur NC (nombre total de courbes isolignes) et TXY de longueur NTXY stockant les isolignes définitives, lesquelles seront tracées par le module graphique.

La table PTXY contient les pointeurs de début et de fin d’une isoligne, isoligne dont l’altitude est stockée dans ZC, et pointe sur la table TXY contenant les coordonnées X et Y de chacun des points formant les isolignes.

Nous recollons donc les chemins entre eux avec différentes sensibilités selon le principe décrit ci-dessous, parcourant la table ZC créée par CREATEISO1 alternativement de haut en bas et de bas en haut pour chacune d’elle.

La dernière opération consiste enfin à parcourir la table ZC afin de recréer en premier lieu toutes les isolignes partant du bord du maillage puis les isolignes bouclées.

Page 16: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Etape 5 : Sauvegarde des isolignes

Si l’utilisateur le désire nous prévoyant l’écriture des isolignes crées dans un fichier texte selon la syntaxe suivante :

nb_courbe pointeur_debut_courbe1 pt_fin_courbe1 pointeur_début_courbe2 pt_fin_courbe2 … nb_points_annexes X_pt_annexe1 Y_pt_annexe1 X_pt_annexe2 Y_pt_annexe2 …

Page 17: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

cc.. LL ee ggrr aapphhee dd’’ aappppeell

Toutes les tables évoquées sont utilisées par un ensemble d’algorithmes, présentés précédemment, dont l’articulation s’effectue comme suit.

Entetemnt & Suitemnt : ces algorithmes, faisant intervenir des procédures systèmes ont pour but de remplir la table contenant les coordonnées des points du semis. De plus, les caractéristiques du maillage à appliquer sur ce semis sont calculées dans Suitemnt.

Invtopo : cet algorithme permet à chaque maille de connaître les points du semis qu’elle contient.

CreateZnd : cet algorithme constitue la table des altitudes interpolées des nœuds du maillage.

Chemin : cet algorithme permet, pour chaque maille, tout d’abord le calcul des points d’intersection d’isolignes avec les bords de maille (Dichotomie) puis le calcul du cheminement (CreateChem). Chacune des interpolations utilise la routine INTERXY de Laporte.

CreateIso1 et 2 : ces algorithmes permettent de reconstituer toute ou partie de chaque isoligne à partir des chemins précédemment calculés et assemblant deux chemins aux extrémités proches d’une distance inférieure à une sensibilité fixée.

Collage : cet algorithme permet de reconstituer l’intégralité des isolignes en traitant en premier lieu les isolignes non fermées puis les boucles.

Page 18: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

II II II .. LL ’’ AAFFFFII CCHHAAGGEE EETT LL ’’ II HHMM Bien que le calcul ait été fait sous Fortran 90 l’affichage et l’IHM de notre programme ont été entièrement réalisés sous OpenGL. L’IHM de notre programme peut être décomposé en plusieurs grandes familles de fonctions. Une, constituée d’un ensemble de boutons et d’edit-box dédiées au paramétrage de calcul. Une autre pour la navigation, une pour l’aspect du MNT que l’on souhaite avoir. Et une dernière pour sélectionner les différents modes d’affichages qu’ils soient normaux ou non. Dans cette partie nous décrirons les différentes fonctions que l’on dispose à notre disposition dans l’IHM.

aa.. LL aa nnaavviiggaatt iioonn La navigation est l’une des choses les plus importantes dans une IHM relevant de la géomatique car elle se doit d’être facile à utiliser et compréhensible par tous. Pour reproduire les flèches de déplacement notre équipe a opté pour quatre boutons : un pour un déplacement vers la gauche, un pour la droite, un pour avancer et un dernier pour reculer sur la zone que l’on observe. L’IHM comprend également un autre bouton afin de recentrer la vue de l’utilisateur sur ce qu’il avait lors du lancement du programme. Notre IHM comprend quatre boutons pour permettre à l’utilisateur d’effectuer des rotations dites Verticale et Horizontale qui s’effectuent autour de deux axes à savoir celui des « x » et celui des « z ». Le sens peut être négatif ou positif. Par ces rotations, il faut savoir que c’est l’objet qui tourne et non la caméra censée représenter l’utilisateur. Néanmoins des rotations sont également possible en utilisant la souris, elles sont beaucoup plus fluides et sont fonctionnelles selon l’axe des « x » ou selon l’axe des « y ». Une paire de boutons dans la partie navigation est également présente afin de permettre à l’utilisateur de cette visualisation de pouvoir prendre de l’altitude (ou inversement) sur la zone qu’il observe quelque soit le mode d’affichage ou l’aspect du MNT qu’il a choisi. Une autre fonctionnalité est également accessible pour l’utilisateur, à savoir diminuer ou augmenter sa vitesse de déplacement.

Figure: les boutons de l’IHM relevant de la navigation

Page 19: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

bb.. LL eess ppaarr aammèèttrr eess dd’’ iinnii tt iiaall iissaatt iioonn Dans cette partie de l’IHM nous retrouvons une boîte de dialogue permettant à l’utilisateur de pouvoir rentrer le chemin d’accès au fichier d’extension « txt » représentant le MNT. Ce point précis de l’IHM n’a été que très peu développé par manque de temps. Rappelons que cet aspect n’était que secondaire par rapport au calcul lui-même et au mode de représentations du résultat du calcul d’isolignes. Il reste donc à approfondir ce point en ajoutant à l’IHM la prise en compte de différent format de MNT que l’utilisateur pourrait chargé pour effectuer son calcul d’isolignes. La possibilité de sauvegarder son fichier d’isolignes (résultat du calcul) est offerte à l’utilisateur. Cette possibilité est constitué d’un bouton nommé « Créer » qui prend comme paramètre le chemin d’accès pour sauvegarder ses isolignes que l’utilisateur à entré dans une « editbox » et appelle une subroutine qui sauvegarde les vecteurs du fichier d’isolignes (altitude des isolignes, pointeur de début d’isoligne, pointeur de fin d’isoligne et deux vecteurs de position pour tous les points des isolignes) en lui passant la « directory » de sauvegarde. Si l’utilisateur clique sur le bouton « Créer » alors qu’il n’a pas préalablement rentré une « directory » de sauvegarde, un fenêtre d’avertissement s’affiche: « Le chemin que vous avez saisi est vide. Veuillez saisir une « directory » pour sauvegarder le fichier d'isolignes ». Par défaut les isolignes sont affichées avec une équidistance de 150m. Néanmoins dans l’esprit d’une customisation de la visualisation par l’utilisateur, il est possible de choisir son équidistance et ainsi relancer le calcul intégral pour obtenir de nouvelles isolignes correspondant à l’équidistance. Cependant puisque l’on travail sur un certain MNT, l’allocation des tables de calcul a été faite pour supporter des équidistances supérieure ou égale à 150m.

Figure : fenêtre des paramètres d’initialisations de l’IHM

Page 20: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

cc.. LL eess mmooddeess dd’’ aaff ff iicchhaaggee Au sein de notre IHM nous avons séparé les différents modes d’affichages en plusieurs groupes. Ainsi ressort le mode normal lui-même constitué de plusieurs modes, le mode 2D, le mode stéréoscopique et le mode d’affichage en bloc diagramme. L’utilisateur dispose de plusieurs modes d’affichage dont l’un est de passer en 2D. Ce mode d’affichage plaque automatiquement toutes les isolignes sur le maillage à l’altitude zéro, et place la caméra au dessus de la zone observée à une altitude suffisante pour pouvoir avoir une vision d’ensemble des isolignes de la zone. Cette fonction est activée quand on clique sur le bouton radio nommé « vue 2D » qui désactive le bouton radio « Mode normal » et active les « check box » relatives au maillage et aux isolignes.

La visualisation sous forme de bloc diagramme est accessible en cliquant sur le bouton radio « Bloc diagr » qui désactive tout autre bouton radio et active la « check box » des isolignes. Ce mode reste à améliorer en gérant mieux les parties cachées et en créant une subroutine d’affichage qui dessinerait le dessus des blocs diagrammes. OpenGL ne permet pas de remplir un polygone quand il n’est pas uniquement convexe. Cette problématique n’a donc pas été traitée manque de temps nous n’avons pas pu nous pencher sur cette question.

Page 21: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Un autre mode d’affichage très intéressant au niveau du rendu d’affichage, est le mode stéréo. Il est activable par le bouton radio « Mode stéréo » qui désactive tout autre bouton radio et active par défaut le MNT sous forme de triangles. Elle est également représentable sous forme de carrés. Par ce mode stéréo, le MNT peut être combiné et visualisé avec les isolignes. L’ajustement de l’écart entre la partie rouge et la partie verte se fait à l’aide d’un slider. Ce slider permet à l’utilisateur d’adapter la stéréo à son écart oculaire.

Le mode normal quant à lui est constitué de plusieurs fonctions d’affichage qui permet de visualiser ou non les isolignes (en 3D). Lorsque les isolignes sont présentes, les courbes maîtresses sont calculées et affichées avec une épaisseur de trait plus grande. Bien évidemment ces courbes maîtresses tiennent compte de l’équidistance qui a servi à calculer les isolignes, puisqu’elles se situent toutes les distances égales à 5 fois l’équidistance.

L’affichage du maillage est également possible au sein de ce mode. Il se situe à l’altitude zéro. Il a donc pour but de géolocaliser plus facilement les isolignes ou autres éléments que l’on affiche dans la zone. L’utilisateur a la possibilité d’afficher tous les points du MNT en cliquant sur le bouton « semis », points qui nous ont servi comme données de base pour effectuer nos calculs d’isolignes. On peut également afficher en cliquant sur le bouton « MNT », afficher le MNT soit en mode carrés soit sous forme de triangles à l’aide de boutons radio qui lorsque l’un est activé il désactive l’autre.

Page 22: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

Ci-dessous l’image illustrative des boutons gérant les différents modes d’affichage.

dd.. LL eess aassppeeccttss dduu MM NNTT L’IHM donne la possibilité à l’utilisateur de pouvoir choisir sa propre représentation du MNT. A savoir qu’il peut le représenter sous forme de carré ou bien de triangles, filaire ou bien surfacique. Ces différents choix de représentation du MNT se font à l’aide de boutons radio

L’hypsométrie est également envisageable, elle permet une appréciation plus rapide et plus fine du relief car pour différentes tranches d’altitude a été attribué différentes couleurs. L’hypsométrie est uniquement applicable lorsqu’on affiche le MNT sous sa forme surfacique, elle est activable quand on clique sur la « check-box » nommée « Hypsométrie ». Une dernière fonction, concernant la représentation du MNT et des isolignes, est l’exagération du relief. Cette accentuation se contente uniquement de déformer l’altitude du terrain et/ou les isoligne tout en gardant l’emprise au sol.

Boutons gérant les différents aspects du MNT

Page 23: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

ee.. EEvvéénneemmeennttss dd’’ aacctt iioonnss eett dd’’ iinnffoorr mmaatt iioonnss

Un bouton a été créé pour quitter l’application. Il est nommé « Quitter » et il se trouve en bas de l’IHM. Un autre bouton nommé « à propos » a également été ajouté. Elle permet d’ouvrir une nouvelle fenêtre nous informant sur le projet. Elle contient le titre de notre projet, les noms et prénoms de tous les membres de l’équipe, le nom de la formation dans laquelle ce projet a été effectué. Ainsi qu’un bouton nommé « OK » qui permet de fermer ce message d’information et de revenir à l’IHM principale.

Aperçu de l’IHM complète

Page 24: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

II VV.. DDII FFFFII CCUULL TTEESS RREENNCCOONNTTRREEEESS && SSUUGGGGEESSTTII OONNSS

DD’’ AAMM EELL II OORRAATTII OONN

Si l’on fait un bilan de notre projet, nous constaterons que la plupart des fonctionnalités fixées dans notre « cahier des charges » sont au rendez-vous. Le but principal qui était le tracé automatique d’isolignes a parfaitement été rempli, comme l’atteste la comparaison de nos résultats (à gauche) avec les résultats obtenus par le logiciel Altimètre de la Chaîne Ortho IGN (à droite).

Certaines fonctionnalités n’ont hélas pas pu être abouties, voire pour certaines pas pu être abordées. Nous présenterons ici les principales difficultés que nous avons rencontrées ainsi que les perspectives d’évolution que nous suggérons aux éventuels repreneurs de notre projet.

aa.. LL eess ddii ff ff iiccuull ttééss rr eennccoonnttrr ééeess

La principale difficulté à laquelle nous avons fait face est sans nul doute l’importance de la taille des tables utilisées. Nous nous heurtés aux limitations de nos machines ne pouvant pas dessiné finement nos isolignes. Ainsi nous nous sommes restreints au cas particulier suivant :

• MNT de 81 points de largeur et de longueur (MNTReduitLigne.txt)

• pas du maillage égal à la moitié du pas du MNT

• 5 dichotomies successives (entraînant un cheminement de 1/32e du pas du maillage)

• une équidistance minimale de 150m (les altitudes du MNT de travail s’étendaient entre 304m et 1692m)

Au-deçà de cette valeur d’équidistance, un message d’erreur apparaît : « stack overflow ».

Page 25: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

La seconde difficulté apparue lors de la phase de calcul fut la précision de codage. Nous avions négligé ce facteur dans un premier temps et cela a eu pour conséquence de ne pas permettre un calcul rigoureux du pas du sous-maillage fictif, entraînant une incohérence lors de l’exécution du programme. En effet, les coordonnées sont codées en real mais les coordonnées du MNT étant en Lambert 2, et donc supérieure à 2 millions, nous n’avons pas assez de chiffres significatifs lors des calculs pour le test d’arrêt. Pour limiter le problème nous avons translaté le MNT, plaçant ainsi son origine en (0 ; 0). Le problème n’étant pas totalement géré, nous avons modifié les algorithmes en mettant des inégalités plutôt que de égalités strictes.

La dernière difficulté rencontrée est inhérente à la méthode de calcul. En effet, la méthode raisonne sur une dichotomie sur les bords de mailles. Or, cela implique l’approximation que l’altitude entre deux nœuds d’une maille suit une loi affine, ce qui n’est pas toujours vérifié car INTERXY s’appuie sur une méthode d’interpolation liée au paraboloïde hyperbolique. Cela a pour conséquence de grands écarts entre les extrémités des chemins d’une même isoligne situés dans deux mailles différentes : typiquement lorsque l’isoligne flirte avec le bord de maille. Nous avons dû pallier ce problème en décomposant la procédure CREATEISO initiale en plusieurs procédures de sensibilités différentes.

bb.. LL eess ssuuggggeesstt iioonnss dd’’ aammééll iioorr aatt iioonn

De nombreuses fonctionnalités n’ont pu être développées en raison des délais de production à respecter. Nous évoquerons tout d’abord les fonctionnalités non abouties puis quelques idées d’amélioration.

La principale déception que nous avons eu fut de ne pas avoir géré les parties cachées. Après de nombreux essais, il nous est apparu que cela pourrait être dû à l’orientation de nos repères. Notre référentiel caméra est un trièdre indirect avec l’axe X vers la gauche et l’axe Y situé vers le haut. Notre référentiel objet est quant à lui un trièdre direct avec l’axe X vers la gauche et l’axe Z vers le haut. Cette incohérence de Z entre les deux repères est sûrement la source du problème. Des tests consistant en l’inversion des coordonnées Y et Z dans le repère objet ont été effectués (rapidement) mais n’ont pas été concluants. Ces derniers n’ont pas été poursuivis de peur de perturber certaines fonctionnalités telles que les points de vue prédéfinis et l’anaglyphe. Cependant, nous pensons réellement que la source du problème provient de ce constat. Nous préconisons donc cette voie de recherche pour résoudre ce problème de gestion de parties cachées.

La seconde chose essentielle à développer est la possibilité d’allouer dynamiquement les tables. A l’heure actuelle, la longueur des tables est définie spécifiquement pour l’équidistance 150. Tout calcul avec une équidistance plus grande s’effectue de manière transparente pour l’utilisateur car les tables générées sont a fortiori plus petites. La modification à apporter au code fortran/OpenGL serait de placer les appels aux procédures de calcul ainsi que les allocations directement dans la boucle OpenGL du main(). Cependant cela implique de pouvoir bloquer les fonctionnalités de l’IHM tant que l’utilisateur n’a pas choisi son MNT et son équidistance. Cela est particulièrement délicat et n’a pas pu être traité dans le temps qui nous a été imparti.

Page 26: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

D’autres fonctionnalités plus ou moins optionnelles pourront être développées par la suite.

Tout d’abord, le chargement du MNT est actuellement impossible mais, s’il était accessible, ne pourrait concerner que les MNT au « format ligne ». Il pourrait donc être intéressant de développer des procédures de lecture de MNT différentes (intégrant bien entendu le calcul des caractéristiques du maillage) permettant ainsi de lire des fichiers MNT au format .xyz, .dis, .bil, etc.

Ensuite, il peut être envisagé de sélectionner les fichiers via un explorateur. Cela rend plus agréable la saisie, une simple sélection d’un fichier dans une arborescence de dossiers étant plus ergonomique que l’écriture du chemin entier. Cette fonctionnalité concernerait à la fois le fichier MNT chargé que le fichier d’écriture des isolignes.

La dernière fonctionnalité à laquelle nous avons songé est la fluidité du déplacement. Il peut être envisagé de programmer une sorte de zoom via la molette de la souris. On pourra enfin envisager de rendre dynamique le clic prolongé sur les boutons de déplacements (à l’image des flèches d’une scroolbar).

Page 27: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

LL EESS AALL GGOORRII TTHHMM EESS

ENTETEMNT

Cette procédure permet de lire les informations situées en tête du fichier MNT au « format ligne »

Paramètres Type description FichierMNT NBXPT, NBYPT NTXYZ PTXMIN PTXMAX PTYMIN PTYMAX PTZMIN PTZMAX

In Out Out Out Out Out Out Out Out Out

fichier MNT au « format ligne » nombre de point en X du MNT nombre de point en Y du MNT nombre de point total du MNT Xmin du MNT Xmax du MNT Ymin du MNT Ymax du MNT Zmin du MNT Zmax du MNT

Identificateurs locaux Err Message d’erreur Procédures appelées : OPEN, READ, CLOSE

ALGORITHME censuré

Page 28: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

SUITEMNT

Cette procédure permet de lire les informations situées en tête du fichier MNT au « format ligne »

Paramètres Type description FichierMNT NBXPT, NBYPT NTXYZ PTXMIN PTXMAX PTYMIN PTYMAX PTZMIN PTZMAX TXYZ X0, Y0 DX, DY NX,NY

In In In In In In In In In In Out Out Out Out

fichier MNT au « format ligne » nombre de point en X du MNT nombre de point en Y du MNT nombre de point total du MNT Xmin du MNT Xmax du MNT Ymin du MNT Ymax du MNT Zmin du MNT Zmax du MNT table des coordonées des points du MNT origine du maillage pas du maillage nombre de mailles selon X et selon Y

Identificateurs locaux ddx, ddy lo, la deltax, deltay Err

pas du MNT longueur et largeur du MNT écarts de distance Message d’erreur

Procédures appelées : OPEN, READ, CLOSE

ALGORITHME censuré

Page 29: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

INVTOPO

Ce module permet de rattacher un point à la maille qui le contient. Cela se traduit par la constitution de la matrice C des compteurs, la matrice P de pointeurs sur une table PT contenant les numéros des points de la topographie situé dans chaque maille. La fabrication du vecteur PT lui-même contenant les numéros des points.

Paramètres Type description X0, Y0 DX, DY NX, NY TXYZ NTXYZ C P PT

In In In In In Out Out Out

coordonnées de l’origine du maillage pas du maillage nombre de mailles suivant l’axe des ordonnées et des abscisses table du semis de points nombre de points du semis matrice de compteurs de points par maille matrice de pointeurs vers la table PT vecteur des indices des points dans TXYZ

Identificateurs locaux X, Y I, J bi, bf

coordonnées du point rattaché à la maille coordonnées ligne et colonne d’une maille bornes initiale et finale de boucle FOR

Procédures appelées :

ALGORITHME censuré

Page 30: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

CREATEZND

Procédure qui retourne le vecteur ZND des altitudes interpolées des nœuds du maillage par la méthode INTERXY.

Paramètres Type description TXYZ NTXYZ C P PT X0, Y0 DX, DY NX, NY ZND Mess

In In In In In In In In Out Out

table du semis de points de la topo nombre de points du semis matrice de compteurs de points par maille matrice de pointeurs vers la table PT vecteur des indices des points dans TXYZ coordonnées de l’origine du maillage pas du maillage nombre de mailles suivant l’axe des ordonnées et des abscisses vecteur des altitudes des nœuds du maillage message en cas de maille trop petite

Identificateurs locaux IMIN, IMAX JMIN, JMAX bi, bf q TX, TY, TZ NP

cordonnée ligne min et max des mailles de la couronne d’interpolation cordonnée colonne min et max des mailles de la couronne d’interpolation bornes initiale et finale de boucle FOR indice tables des coordonnées des points topo utilisés pour l’interpolation nombre de points utilisés pour l’interpolation

Procédures appelées : INTERXY

ALGORITHME censuré

Page 31: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

CHEMIN

Nous traitons la dichotomie et la création du parcours des isolignes maille par maille. Pour chacune d’elle, on recherche les intersections d’isolignes avec le bord de maille puis on complète les tables relatives aux chemins. On entendra par « chemins » les morceaux d’isolignes détectés dans chaque maille.

Paramètres Type description TXYZ NTXYZ X0, Y0 DX, DY NX, NY Eq ZND C P PT NCHEM PTCHEM ZCHEM DR REC NAXY AXY

In In In In In In In In In In Out Out Out Out Out Out Out

table du semis de points de la topo nombre de points du semis coordonnées de l’origine du maillage pas du maillage nombre de mailles suivant l’axe des ordonnées et des abscisses équidistance des isolignes vecteur des altitudes des nœuds du maillage matrice de compteurs de points par maille matrice de pointeurs vers la table PT vecteur des indices des points dans TXYZ nombre de chemins détectés table des pointeurs sur la table AXY du début et fin de chemin vecteur de l’altitude du chemin vecteur de booléens : Direct/Rétrograde du chemin vecteur de booléens (initialisés à faux pour CREATEISO) nombre de points présents dans la table AXY table de coordonnées des points constituants le chemin

Identificateurs locaux ind XMIN, XMAX YMIN, YMAX q TX, TY, TZ NP

indice abscisses min et max de la maille ordonnées min et max de la maille indice tables des coordonnées des points topo utilisés pour l’interpolation nombre de points utilisés pour l’interpolation

Procédures appelées : DICHOTOMIE, CREATECHEM

ALGORITHME censuré

Page 32: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

DICHOTOMIE

Procédure qui stocke dans la table DICHO les points d’intersection des isolignes avec les cotés de la maille. On traitera tout d’abord les côtés AB, puis AD, puis CB et enfin CD (cf. schéma) Paramètres Type description XMIN,XMAX,YMIN,YMAX ZA, ZB, ZC, ZD Eq TX, TY, TZ NP DICHO ND

In In In In In Out Out

abscisses et ordonnées min et max de la maille altitudes des 4 coins de la maille équidistance entre les isolignes coordonnées des points utilisés pour l’interpolation nombre de points utilisés pour l’interpolation table où sont stockées les coordonnées des intersections d’isolignes avec les bords de maille ainsi que le booléen de visite (cf. plus loin) et le côté ou le coin de l’intersection nombre de points dans la table DICHO

Identificateurs locaux cote X1, Y1, Z1 X2, Y2, Z2 Xdeb,Ydeb,Zdeb Xfin, Yfin, Zfin XM, YM, ZM Zrech b5, b6, b7, b8

code correspondant au côté ou au coin de la maille coordonnées de l’extrémité basse du sous-segment étudié coordonnées de l’extrémité haute du sous-segment étudié coordonnées de l’extrémité basse du segment étudié coordonnées de l’extrémité haute du segment étudié coordonnées du point obtenu par dichotomie altitude de l’isoligne recherchée booléens permettant de savoir si un coin a déjà été sélectionné

Procédures appelées : INTERXY, ABS

ALGORITHME censuré

Page 33: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

33

CREATECHEM

Procédure qui remplit les tables PTCHEM, ZCHEM, DR et AXY décrivant le cheminement des morceaux d’isolignes

Paramètres Type description XMIN, YMIN, XMAX,YMAX DX, DY ZA,ZB,ZC,ZD DICHO ND TX, TY, TZ NP NCHEM PTCHEM ZCHEM DR REC NAXY AXY

In In In Inout In In In Out Out Out Out Out Out Out

coordonnées extrêmes de la maille pas du maillage altitudes des 4 nœuds de la maille table à 5 colonnes contenant les coordonnées des points formant le chemin ainsi que le booléen de visite et le côté (ou le coin) de l’intersection de l’isoligne avec la maille (visite inout) nombre de points de la table DICHO coordonnées des points utilisés pour l’interpolation nombre de points utilisés pour l’interpolation nombre de chemins détectés table des pointeurs sur la table AXY du début et fin de chemin vecteur de l’altitude du chemin vecteur de booléen : Direct/Rétrograde du chemin vecteur de booléen initialisé à faux pour CREATEISO nombre de points présents dans la table AXY table de coordonnées des points constituants le chemin

Identificateurs locaux ∆X, ∆Y cote dir, dir2 Xc, Yc, Zc XP, YP, ZP p, q, rg Bdeb Zgauche

pas du sous maillage fictif sur lequel se trouvent les points de AXY code correspondant au côté ou au coin de la maille code de direction (cf. schéma) coordonnées du point courant coordonnées du point à interpoler indices booléen pour savoir si l’on se trouve au début du chemin altitude interpolée d’un point en vue d’une comparaison

Procédures appelées : INTERXY, MIN, MIN2

ALGORITHME censuré

Page 34: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

34

MINA

La procédure MIN permet de trouver la meilleure direction en fonction du plus petit écart entre le Zc de la courbe et le Z des 3 choix

Paramètres Type description CHOIX Zc p

In In Out

table contenant les coordonnées ainsi que le côté correspondant des 3 points possibles altitude du point courant indice dans la table CHOIX de la meilleure possibilité

Identificateurs locaux ecart1, ecart2 différences d’altitude Procédures appelées : INTERXY, MIN, MIN2, ABS

ALGORITHME censuré

MINB

La procédure MIN2 permet de trouver les 2 meilleures directions parmi 4 en fonction du plus petit écart entre le Zc de la courbe et le Z des 3 choix. Elle n’est utilisée que dans le cas d’un départ de chemin sur un coin

Paramètres Type description CHOIX Zc p q

In In Out Out

table contenant les coordonnées ainsi que le côté correspondant des 4 points possibles altitude du point courant indice dans la table CHOIX de la meilleure possibilité indice dans la table CHOIX de la seconde meilleure possibilité

Identificateurs locaux ecart1, ecart2 différences d’altitude Procédures appelées : ABS

ALGORITHME censuré

Page 35: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

35

CREATEISO1

Procédure qui remplit les tables finales PTXY, TXY et ZC à partir des tables précédemment créées. Cela consiste à recomposer les isolignes en recopiant les chemins trouvés à l’endroit ou à l’envers selon le booléen DR en parcourant ZCHEM une seule fois de haut en bas.

Paramètres Type description DX, DY NCHEM PTCHEM ZCHEM DR REC NAXY AXY NC ZC PTXY NTXY TXY

In In In In In Inout In In Out Out Out Out Out

pas du maillage nombre de chemins détectés table des pointeurs sur la table AXY du début et fin de chemin vecteur de l’altitude du chemin vecteur de booléen : Direct/Rétrograde du chemin vecteur de booléen utilisé pour connaître les chemins déjà copiés nombre de points présents dans la table AXY table de coordonnées des points constituants le chemin nombre d’isolignes vecteur des altitudes des isolignes table des pointeurs sur la table TXY (début et fin de l’isoligne) nombre de points de la table TXY table des coordonnées des points des isolignes

Identificateurs locaux ∆X, ∆Y REC PT1, PT2 bi, bf, pas Xdeb, Ydeb Xfin, Yfin Xbi, Ybi

sous division du maillage vecteur de booléen de longueur NCHEM indiquant si le chemin a été recopié pointeurs (entiers) bornes initiale et finale et pas de la boucle FOR coordonnées du point initial du chemin coordonnées du point final du chemin coordonnée du point initial de l’isoligne

Procédures appelées : ABS

ALGORITHME censuré

Page 36: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

36

CREATEISO2

Procédure qui remplit les tables finales PTXY, TXY et ZC à partir d’elles-mêmes. Cela consiste à recomposer les isolignes en recopiant les chemins trouvés en parcourant selon le cas la table ZC de haut en bas ou de bas en haut

Paramètres Type description DX, DY NC ZC PTXY NTXY TXY h

In Inout Inout Inout Inout Inout In

pas du maillage nombre d’isolignes vecteur des altitudes des isolignes table des pointeurs sur la table TXY (début et fin de l’isoligne) nombre de points de la table TXY table des coordonnées des points des isolignes facteur à appliquer (=sensibilité)

Identificateurs locaux ∆X, ∆Y REC NCBis ZCBis PTXYBis NTXYBis TXYBis PT1, PT2 bi, bf, pas Xdeb, Ydeb Xfin, Yfin Xbi, Ybi

sous division du maillage vecteur de booléen de longueur NCHEM indiquant si le chemin a été recopié nombre d’isolignes vecteur des altitudes des isolignes table des pointeurs sur la table TXY (début et fin de l’isoligne) nombre de points de la table TXY table des coordonnées des points des isolignes pointeurs (entiers) bornes initiale et finale et pas de la boucle FOR coordonnées du point initial du chemin coordonnées du point final du chemin coordonnée du point initial de l’isoligne

Procédures appelées : ABS

ALGORITHME censuré

Page 37: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

37

COLLAGE

Procédure qui remplit les tables finales PTXY, TXY et ZC à partir d’elles mêmes. Cela consiste à recomposer les isolignes en recopiant les chemins trouvés en commençant par les isolignes débutant sur un bord du maillage puis en traitant les courbes bouclées.

Paramètres Type description X0, Y0 NX, NY DX, DY NC ZC PTXY NTXY TXY

In In In Inout Inout Inout Inout Inout

origine du maillage nombre de mailles selon l’axe des abscisses et des ordonnées pas du maillage nombre d’isolignes vecteur des altitudes des isolignes table des pointeurs sur la table TXY (début et fin de l’isoligne) nombre de points de la table TXY table des coordonnées des points des isolignes

Identificateurs locaux ∆X, ∆Y REC NCBis ZCBis PTXYBis NTXYBis TXYBis PT1, PT2 bi, bf, pas Xdeb, Ydeb Xfin, Yfin Xbi, Ybi XMIN,XMAX YMIN,YMAX

sous division du maillage vecteur de booléen de longueur NCHEM indiquant si le chemin a été recopié nombre d’isolignes vecteur des altitudes des isolignes table des pointeurs sur la table TXY (début et fin de l’isoligne) nombre de points de la table TXY table des coordonnées des points des isolignes pointeurs (entiers) bornes initiale et finale et pas de la boucle FOR coordonnées du point initial du chemin coordonnées du point final du chemin coordonnée du point initial de l’isoligne coordonnées extrêmes du maillage

Procédures appelées : ABS

ALGORITHME censuré

Page 38: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

38

ECRIRE

Procédure qui permet d’écrire les tables ZC, PTXY et TXY dans un fichier texte

Paramètres Type description Fichier NC ZC PTXY NTXY TXY

In In In In In In

nom du fichier nombre d’isolignes vecteur des altitudes des isolignes table des pointeurs sur la table TXY (début et fin de l’isoligne) nombre de points de la table TXY table des coordonnées des points des isolignes

Identificateurs locaux Err Message d’erreur (integer) Procédures appelées : OPEN, WRITE, CLOSE

ALGORITHME censuré

Page 39: PROJET GEOMATIQUEPROJET GEOMATIQUE …masig.ensg.eu/PDF/Isolignes.pdf · projet geomatiqueprojet geomatique 20072007----200820082008 creation d’isolignes 3d a partir d’un semis

39

CCOONNCCLL UUSSII OONN

Ce projet Géomatique nous a permis de voir toutes les phases de réalisation d’un projet. La première phase qui correspond à la conception d’algorithmes de création d’isolignes nous a pris énormément de temps et de réflexion. Nous sommes conscients que cette étape est très importante et traduit le plus souvent la réussite d’un projet dans les délais impartis.

A la différence des autres projets, celui-ci n’était pas un cas d’école, dans le sens où il nécessitait d’avoir un certain recul. Ce manque de recul nous a en quelque sorte ralenti dans l’appréhension et la résolution des problèmes tels que le pas du maillage, le nombre de dichotomie, ou bien encore l’imprécision de calcul.

Malgré ces problèmes rencontrés nous sommes heureux d’avoir mené à bien ce projet.