Le plan des courbes de niveau se présente ainsi. Il a été extrait du plan général du réseau avec le plan de la structure permettant de déterminer les dimensions des modules.

Récupération de points avec leur altitude


Le programme d’analyse des images a été réalisé avec LiveCode. L’image donnée au programme LiveCode est une image PNG en 144 dpi. Ce format (ou bien le BMP) semble être celui qui pose le moins de problèmes avec les couleurs car  compressés sans perte. Notre algorithme élimine les points qui sont des doublons c’est-à-dire les points très proches et de même altitude. Ils proviennent en réalité du même point de la même courbe de niveau à cause de l’épaisseur du trait.

Le logiciel permet de produire des images de coupes dans des fichiers PNG (un fichier par coupe). Elles sont en grandeur réelle ce qui permet d’imprimer des patrons pour la découpe des couples.


L’utilisateur peut charger une image PNG comportant des courbes de niveau colorées. On peut alors placer un réticule qui détermine une ligne de coupe verticale et une autre horizontale. Il est possible aussi de définir un rectangle de travail sur l’image et d’engendrer automatiquement toute une famille de coupes pour cette zone. L’utilisateur détermine combien il souhaite de coupes en X et combien en Y.


Il faut être prudent sur la manière de produire le fichier PNG. Il est apparu que certains logiciels comme  Aperçu modifiait légèrement les couleurs si l’on procède à un simple cadrage. Dans un tel cas, le programme ne reconnait plus les courbes de niveau. En pratique le cadrage doit être réalisé sur le PDF et l’on exporte ensuite en PNG ou BMP.


Quelques points fantôme peuvent apparaître dans une coupe à cause de l’anti-crênelage appliqué aux lignes qui peut donner lieu à des demi-teintes trompant la détection. On décèle immédiatement à vue ces valeurs hors-normes et l’on peut supprimer le point de la liste. Elles sont très peu nombreuse.

Un exemple de coupe produite avec le programme.

L’algorithme de calcul des coupes


Lors du balayage d’une ligne on reconnaît uniquement les points situés sur une courbe de niveau. Il en résulte que le nombre de point d’une coupe peut être faible et même nul. Afin d’éviter des coupes vides, on va toujours faire en sorte que les bords de l’image possèdent une altitude afin de pouvoir faire les calculs dans tous les cas. Sur le plan, des éléments de courbes de niveau longent tous les bords.


Le même problème surgit si l’on considère seulement une portion de la carte car on n’a plus forcément de ligne de bord. C’est ce traitement qui nous intéresse le plus car on souhaite pouvoir déterminer les couples d’un module de paysage limité à une zone rectangulaire du plan. L’algorithme utilisé est le suivant. On travaille en fait sur une image du plan dans sa totalité et l’on définit sur ce plan le rectangle qui nous intéresse. Lorsqu’on analyse une ligne on effectue un parcours complet de la ligne en balayant toute la largeur du plan (ou la hauteur). On a donc au départ toujours un point de niveau puisque des altitudes figurent sur tout le bord. Lorsqu’un point d’une courbe est détecté on vérifie si il est ou non dans le rectangle de travail. Si il y est on le mémorise avec son altitude sinon on le laisse de côté. En travaillant avec deux points consécutifs, on peut détecter le moment où l’on pénètre dans le rectangle de travail et celui où l’on en sort. On ajoute alors à la liste un point situé sur le bord du rectangle et dont l’altitude est obtenue par interpolation linéaire avec les deux points qui l’encadrent.


Comme toute application développée avec LiveCode, la structuration est une pile de cartes. Nous avons une carte dédié au calcul des altitudes par analyse de l’image du plan et des cartes dédiées au calcul des coupes (une carte par coupe). J’utilise mon programme sur Mac OSX mais comme LiveCode est open source et disponible sur toute plate-forme, je peux le faire fonctionner sous Windows ou Linux.

L’interface graphique a été faite assez rapidement sans recherche approfondie sur l’ergonomie étant donné que le je serai sans doute le seul utilisateur du programme. J’ai cependant rédigé une aide minimale pour qu’au moins je puisse retrouver comment m’en servir dans quelques temps…

Le programme de calcul des altitudes. À gauche l’image de toutes les lignes de niveau. À droite le champ contenant les points analysés :  abscisse et altitude ou bien ordonnée et altitude selon la coupe considérée. Le champ près de l’image contient la table de correspondance couleurs <—> altitude.

Une carte de calcul d’une coupe. Différents réglages permettent de définir la coupe ou une famille de coupe, de les visualiser sur les cartes et éventuellement de les exporter en fichiers PNG après corrections éventuelles des points parasites.