image
image
image

Votre IP : 54.80.247.119
Dernier ajout : 22 juin
Visiteurs connectés : 13

image Conception
Développé sous SPIP
Informations légales

image
image
Recherche image

Pratiques et Techniques de la Plaisance

image

Accueil du site > Articles > Cartographie > Réaliser des cartes BSB (.kap)

Rubrique : Cartographie

__________________________________________________________________________________________________________________

Réaliser des cartes BSB (.kap)Version imprimable de cet article Version imprimable

Publié Août 2011, (màj Août 2011) par : Orion   

Copyright : Les articles sont la propriété de leurs auteurs et ne peuvent pas être reproduits en partie ou totalité sans leur accord
S'identifier pour s'abonner par mail

Réaliser des cartes BSB (.kap) à partir d’images scannées (cartes ou photos)


Généralités

  • Une carte électronique, c’est le rassemblement de données graphiques et de leur géo-référencement : à un point de l’image peut être associé ses coordonnées géographiques. Les données graphiques peuvent êtres de simples images (cartes « raster » ) ou calculées (cartes vectorielles) et les coordonnées de chaque point sont déterminées par calcul en fonction des paramètres de la carte.
     
    La plupart des cartes électroniques sont protégées de la copie par cryptages des données ou (et) par un format propriétaire. Cependant, il existe quelques formats dont les spécifications sont publiques. Par exemple le format S57 pour les cartes vectorielles. Certains pays fournissent d’ailleurs gratuitement les cartes de leur côtes dans l’un ou l’autre de ces formats.
    Ces cartes sont lisibles par quelques programmes de navigation et, comme leur format est connu, de nombreux programmeurs ont créé des outils qui permettent d’en réaliser à partir de fichiers graphiques.
  • Le format BSB
     
    BSB Electronic Charts LLC est le nom de l’entreprise qui a élaboré le format BSB. L’abréviation « BSB » provient des initiales des fondateurs de l’entreprise. Maptech a racheté BSB Electronic Charts LLC en 1997. Ce format ne devrait donc pas être vraiment public, mais ses spécifications sont connues, au moins jusqu’à la version 2. De ce fait, quelques programmeurs ont créé des outils, gratuits ou payants, qui permettent de créer des cartes à partir de fichiers image et d’autres qui permettent de les lire.
     
    Le format BSB est un format de carte « raster ». Le logiciel OpenCPN sait lire les carte BSB version 1 et 2. Les cartes BSB commercialisées par la société Maptech sont actuellement de version 4 ou 5.
     
    MaxSea lit en principe les cartes BSB version 1 et 2 mais, pour une raison qui m’est inconnue, ne le fait pas pour les cartes réalisées suivant la méthode décrite ici … Peut-être est-ce une question d’orientation : « … Maxsea est compatible avec tous type de carte BSB, tant qu’elles ne sont pas orientées nord. » peut-on lire dans l’aide.
     
    La suite de l’article traite de la réalisation sous Windows de cartes BSB lisibles par OpenCPN et Seaclear.

Réalisation de la carte

  • Pour faire une carte, il faut :
     
    • Un fichier image au format TIFF type couleurs indexées (palette), 127 couleurs utilisées au maximum ;
    • Les coordonnées géographique de trois points non alignés de l’image (en théorie 2 points suffisent pour peu qu’ils ne soient ni sur la même latitude, ni sur la même longitude et si on connaît les paramètre de projection)
    • Un certain nombre de petit programmes.
       
  • Les étapes de la conversion
    • Convertir le fichier image dans le format requis Tiff et BMP. Plutôt que d’utiliser un logiciel de retouche d’image, on fait appel à l’un ou l’autre des deux programmes suivant : nconvert (Pierre-E Gougelet) ou convert (ImageMagick). Ce sont des commandes assez semblables et très puissantes qui existent sous Windows et Linux. On obtient les fichiers images au format TIFF et BMP. Par exemple : à partir de Ma-carte.jpg, on obtient Ma-carte.tif et Ma-carte.bmp
    • Calibrer l’image : On utilise le logiciel MapCal2 fourni avec SeaClear (Il en existe d’autres, mais celui-ci est assez facile d’utilisation). On obtient le fichier de calibrage CHARTCAL.DIR.
    • Créer le fichier de calibration de la carte. On utilise le programme mc2bsbh.exe qui, à partir du fichier CHARTCAL.DIR va créer le ficher d’entête (header) de la carte. A partir de CHARTCAL.DIR on obtient le fichier Ma-carte.hdr
    • Créer la carte On utilise le programme tif2bsb.exe qui, à partir du fichier image au format TIFF et du fichier d’entête va créer la carte au format BSB (.kap) . A partir de Ma-carte.tif et de Ma-carte.hdr on obtient le fichier Ma-carte.kap
       
      ….. Ouf !

Les bons outils

Evidement, plutôt que de taper des lignes de commandes où la moindre erreur de frappe est fatale, on va se doter des outils qui vont permettre de faire tout cela en deux coups de souris sans se poser de questions. Pour cela, on va se servir de scripts exécutables (les fichiers « xxx.bat » sous MS-DOS et Windows)

  • D’abord, on construit une arborescence qui permet d’organiser le travail.
     
    • On créer le répertoire KAP-Maker où le travail sera effectué.
    • Dans ce répertoire, on crée les sous-répertoires
      • Images dans lequel on mettra les images à partir desquelles on veut créer les cartes (scannes ou photos). Le format graphique de ces images n’a pas d’importance.
      • BMP dans lequel se trouveront les fichier images transformé au format bmp
      • TIF dans lequel se trouveront les fichier images transformé au format tiff
      • Programmes dans lequel on mettra toutes les programmes décrits précédemment.
      • KAP dans lequel se trouveront les cartes créées.
         Et, accessoirement,
      • Calibration dans lequel une sauvegarde du fichier de calibration CHARTCAL.DIR généré par MapCal2 sera automatiquement mise.
      • HDR dans lequel seront mises les sauvegardes des fichier header des cartes.
  • Si on ne les a pas encore, on se procure sur Internet les programmes requis :
    • nconvert.exe
    • tif2bsb.exe
    • MapCal2
    • mc2bsbh.exe
  • Puis, avec un éditeur de texte (WordPad) on écrit les petits scripts :
    • 1-Traitement-Images.bat,
    • 2-Genere-Kap.bat
    • 2-Traitement-images_127.bat qui sont donnés en annexe (on peut faire des « copier-coller », c’est même conseillé). On les place dans le répertoire KAP-Maker

Une fois tout installé, on peut faire les cartes.

Pour ceux qui ont la flemme de créer les répertoires, de chercher les programmes sur Internet et de taper les scripts, j’ai mis une archive « self-extracting » à l’adresse suivante : http://www.plaisance-pratique.com/I...
Il suffit de l’exécuter là où on veut mettre le répertoire KAP-Maker et tout sera en place, programmes compris.

  • Pour faire des cartes :
     
    • Mettre les fichiers images dans le répertoire Image (quel que soit leur format).
    • Double-cliquer sur 1-Traitement-Images.bat
    • Ouvrir, avec MapCal2, les fichiers xxx.bmp générés dans le répertoire BMP et les calibrer.
    • Quand tout est calibré, double-cliquer sur « 2-Genere-Kap.bat »
       
      C’est fini : les cartes se trouveront dans le répertoire KAP.
       
  • Remarques :
     
    • En théorie, pour un meilleur rendu des couleurs à partir de photos, on peut utiliser la commande « 1-Traitement-images_127.bat », mais il y a un risque que des raies noires apparaissent sur les cartes dans OpenCPN. Dans la pratique, on ne voit pas beaucoup de différence.
       
    • Le programme Mapcal2 implémente le fichier de calibration CHARTCAL.DIR à chaque fois que l’on calibre une image : on peut donc calibrer plusieurs images avant de créer les cartes correspondantes. La commande 2-Génère-Kap.bat créera en une seule fois toutes les cartes dont les images ont été référencées. Si tous les fichiers images n’ont pas été référencés (pas d’entrée dans CHARTCAL.DIR), elle créera des fichiers KAP vide pour ces derniers.

Cartes à partir de photos Google Earth

Ces cartes peuvent être intéressantes si l’on ne dispose pas de cartes précises et fiables du lieu ou l’on souhaite aller. Le cas typique, c’est un lagon, pas ou mal cartographié où l’on souhaite s’aventurer entre les « patates » Il faut évidemment disposer d’une bonne résolution, ce qui suppose des photos aériennes du lieu, car les images satellites ne suffisent pas car toutes les îles de Polynésie ne sont pas couvertes à des résolutions suffisantes.

  • Pour réaliser une carte, il suffit d’enregistrer l’image Google Earth, de la traiter comme décrit précédemment et de la géo-référencer avec MapCal2.
     
    Cependant, un programmeur génial du nom de Paul Higgins a conçu un outil magique qui fait tout le travail en un clic ! Nom du programme : GE2KAP.rex.
  • GE2KAP
     
    Le programme a été écrit en langage ooREXX qui est un langage de programmation interprété, comme le vénérable Basic ou l’excellent Python. Il faut donc d’abord installer l’interpréteur ooRexx sur l’ordinateur avant d’utiliser GE2KAP.
     
    En suite, c’est simple comme bonjour. Le programme ouvre une unique fenêtre, puis démarre Google Earth. Bien entendu il faut être connecté à Internet. Il suffit alors de zoomer sur la zone qui nous intéresse jusqu’à obtenir le niveau de détail souhaité. Puis dans la fenêtre du programme, il faut entrer le nom que l’on veut donner à la carte et cliquer sur le bouton « Create Chart ». C’est tout !
     
  • Remarques :
    • Pas besoin d’aligner l’image sur le nord : le programme le fait lui-même.
    • On peut laisser Google Earth en fenêtre réduite : le programme le met lui-même en plein écran au moment où il prend les données graphiques.
    • Le programme fait une copie de la fenêtre Google Earth : il faut désactiver la grille et les outils de navigation dans Google Earth si on ne veut pas les voir sur la carte.
    • Si on veut une couverture d’une zone plus grande que l’écran, il faut faire plusieurs cartes qui se chevauchent légèrement. OpenCPN gèrera la mosaïque sans problème
    • Si on coche la case correspondante, le programme fournit également l’image au format BMP et le fichier CHARTCAL.DIR qui permet de refaire une carte selon la méthode décrite. (il faut mettre le fichier bmp dans Images et le fichier CHARCAL.DIR dans BMP, lancer la commande 1-Traitement-images.bat puis, dans la foulée, la commande 2-Genere-Kap.bat)
    • Un « plugin » d’OpenCPN permet également de créer directement la carte correspondant à la zone d’OpenCPN affiché sur l’écran en overlay. Je n’ai pas expérimenté cette fonction. Voir article : http://www.plaisance-pratique.com/o...
       
  • MSVD
     
    Le programme GE2KAP présente l’inconvénient de limiter la carte à la taille de l’écran : si on veut couvrir une zone plus grande en une seule carte tout en conservant le même niveau de détail, il faut assembler plusieurs images Google Earth en une seule et la calibrer avec MapCal2. Mais réaliser un assemblage propre des images est délicat.
     
    Pour régler ce problème, il existe un programme très intéressant : MSVD (Microsoft VirtualEarth Satellite Downloader) Ce programme est payant si on veut accéder aux définitions qui nous intéressent car la version gratuite est bridée en zoom. Son utilisation est simple : on lui donne une zone par sa latitude supérieure, sa latitude inférieure, sa longitude gauche, sa longitude droite et le zoom souhaité. A partir de ces informations, le programme télécharge les données graphiques de la zone au format JPG. Les données graphiques téléchargées sont constituées d’un patchwork de petits fichiers jpeg de 10 k chacun environ. Il faut les assembler pour obtenir l’image finale. Le programme comporte heureusement un outil qui fait cela et fournit l’image au format BMP. Il suffit en suite de la calibrer avec MapCal2 pour obtenir une carte.
     
  • Remarques :
    • Les cartes ainsi obtenues sont exemptes des annotations supplémentaires que Google Earth rajoute.
    • Même s’il est tentant de réaliser des images et des cartes détaillées de grande surface, il ne faut pas perdre de vue que les fichiers correspondants sont eux aussi de grande taille. Les ordinateurs de faible puissance ou qui n’ont pas énormément de mémoire vive auront du mal à exploiter de trop grandes cartes. (je pense aux ordinateurs portables)
    • Attention : toutes les zones de la Terre ne sont pas couvertes avec la même résolution. Si on fixe un zoom trop élevé pour la zone que l’on veut télécharger, les images seront vides.
    • La saisie des limites de la zone se fait en degré décimal, au format numérique US. Le programme fournit un outil de conversion, mais celui-ci fait appel aux variables d’environnement du système : sur un Windows français, il met une virgule au résultat car, en France, le séparateur décimal est la virgule alors qu’aux USA c’est le point. Si on fait un « copier-coller » à partir du champ de conversion, il faut remplacer la virgule par un point. Une autre solution est de définir le point comme séparateur décimal du système (Panneau de configuration/Option régionales/Personnaliser../ Symbole décimal)
    • Les latitudes sud et les longitudes ouest sont indiquées par le signe ‘–‘ Par exemple 32° 41’ W = -32.6833343505859
    • En haute résolution, le nombre de fichiers JPEG téléchargés est vite important et la taille de l’image finale aussi : dans l’exemple d’Akamaru donné ci-après, la zone couverte fait environ 3x3 milles et le zoom a été réglé à 18, le maximum étant 19. Le nombre de petits fichiers JPEG téléchargés est de 1485 (heureusement que le programme fournit l’outil qui permet de les assembler automatiquement !) et la taille du fichier image BMP générée est de 190 Mo.
       
      J’ai mis un exemple d’image obtenu avec MSVD à l’adresse : http://www.plaisance-pratique.com/I... (archive self-extracting). J’ai inclus le fichier de calibration CHARTCAL.DIR, ce qui permet de faire la carte BSB. Akamaru, est dans les Gambier.

Liens divers :

Annexe : Scripts de commande

Les lignes précédées de REM sont facultatives.

Fichier : Traitement-Images_127.bat

REM transforme tous les fichiers images du répertoire Images en BMP
REM et en TIF 128 couleurs
REM Les fichiers BMP sont placés dans le répertoire BMP et les fichiers TIF dans le
REM répertoire TIF

REM Transforme les fichiers images en BMP
cd Images
..\Programmes\nconvert -out bmp *.*
move *.bmp ../BMP
cd ..

REM Transforme les fichiers BMP en fichiers TIF 127 couleurs utilisées
REM Passage par format GIF pour forcer la création par la suite d’un fichier TIFF
REM de type couleurs indexées (palette)

cd BMP
..\Programmes\nconvert -colors 127 -floyd -out gif *.bmp
..\Programmes\nconvert -c 3 -colors 127 -out tiff *.gif
del *.gif
move *.tif ../TIF
cd ..

Fichier : Traitement-Images.bat

REM transforme tous les fichiers images du répertoire Images en BMP
REM et en TIF 64 couleurs
REM Les fichiers BMP sont placés dans le répertoire BMP et les fichiers TIF dans le
REM répertoire TIF

REM Transforme les fichiers images en BMP
cd Images
..\Programmes\nconvert -out bmp *.*
move *.bmp ../BMP
cd ..

REM Transforme les fichiers BMP en fichiet TIF 64 couleurs utilisées
REM Passage par format GIF pour forcer la création par la suite d’un fichier TIFF
REM de type couleurs indexées (palette)

cd BMP
..\Programmes\nconvert -colors 64 -floyd -out gif *.bmp
..\Programmes\nconvert -c 3 -colors 64 -out tiff *.gif
del *.gif
move *.tif ../TIF
cd ..

Fichier : Genere-KAP.bat

ECHO OFF
cd BMP
..\Programmes\mc2bsbh CHARTCAL.DIR
copy CHARTCAL.DIR ..\Calibration
move *.hdr ../TIF
cd ..\TIF

SETLOCAL ENABLEdelayedExpansion
SETLOCAL ENABLEextensions

for %%A in (*.tif) do (
..\Programmes\tif2bsb -c 127 %% nA.hdr %% nA.tif %% nA.kap
)

ENDLOCAL

move *.kap ..\KAP
move *.hdr ..\HDR
cd ..

Ces trois fichiers *.bat doivent se trouver dans le répertoire KAP-Maker.

UP


Répondre à cet article
(pour répondre à un message en particulier, voir plus bas dans le fil)

9 Messages de forum

__________________________________________________________________________________________________________________

__________________________________________________________________________________________________________________

  • 4 août 2011 19:58, par yoruk écrire     UP Animateur

    Bonjour
    En lisant cet article, je bois du petit lait... bien sûr que c’est l’avenir, bien sûr qu’il va falloir y travailler, pour qu’enfin, nous soyons capable de gérer nous même une cartographie fiable, et gratuite (ou du moins à un cout raisonnable).
    Dès cet automne, j’apporterai ma pierre à l’édifice, en souhaitant que nous soyons nombreux...
    Michel

    Répondre à ce message

  • 15 mai 2012 18:11, par andredu80 écrire     UP  image

    Dominique FAUROT Bonjour.

    Réaliser des cartes BSB (.kap)

    Je viens de découvrir votre article « Réaliser des cartes BSB (.kap) » du mercredi, 3 août 2011.
    Pour réaliser ce travail, je le faisais de manière manuelle et je suis ravi de cette découverte.
    Un grand merci, néanmoins je rencontre un problème que je n’arrive pas à résoudre.
    Tout fonctionne bien jusqu’à cette ligne de commande :
    for %%A in (*.tif) do (..\Programmes\tif2bsb -c 127 %% nA.hdr %% nA.tif %% nA.kap)
    En revanche si je remplace votre ligne de commande par la ligne de commande que j’utilisais
    précédemment en manuel (en nomment le fichier) la procédure s’exécute correctement jusqu’au
    bout.
    (..\Programmes\tif2bsb -c 127 05-Gravelines.hdr 05-Gravelines.tif 05-Gravelines.kap)
    Pourriez-vous me donner quelques conseils pour résoudre ce problème.
    Je vous en remercie par avance.
    Cordialement
    André.
    P. S. Pour info mon ordinateur est sous Windows 7

    Répondre à ce message

    • Dominique est actuellement probablement quelque part en mer dans le Pacifique ... il faudra être patient pour avoir sa réponse B-)

      Répondre à ce message

    • 28 mai 2012 19:26, par InK écrire     UP     Ce message répond à ...

      Bonsoir,

      La ligne de commande incriminée comporte une petite erreur typographique. Entre « %% » et « nA », il faut lire un tilde (AltGr+é) au lieu de l’espace (le tilde disparaît parfois car mal interprété par l’éditeur de texte).

      La commande devient donc : « for %%A in (*.tif) do (..\Programmes\tif2bsb -c 127 %%<"tilde">nA.hdr %%<"tilde">nA.tif %% nA.kap) ». (le caractère tilde disparaît quand je clique sur « voir ce message avant de poster ». Je l’ai donc remplacé par <"tilde"> pour que vous le voyiez, mais vous devrez remplacer <"tilde"> par le caractère obtenu en avec la combinaison de touches AltGr+é)

      Quelques explications : %%A représente un nom de fichier du genre « carte_123.tif » %%<"tilde">nA représente le nom du fichier privé de son extension, soit dans notre exemple « carte_123 ».

      J’espère avoir été clair. En tout cas, merci pour l’article initial que je compte utiliser très prochainement.

      Répondre à ce message

      • Voilà , comme ceci ?

        for %%A in (*.tif) do (..\Programmes\tif2bsb -c 127 %%~nA.hdr %%~nA.tif %%~nA.kap)

        Dans les éditeurs de pratiquement tous les forums, pour faire apparaître des caractères interprétables, il faut inclure le texte incriminé entre deux commandes « code » qui annihilent l’interpréteur en utilsant la syntaxe :

        <code>
        le texte avec des caractères bizarres
        </code

        Répondre à ce message

        • Merci pour ces explications.
          Aux premiers essais toujours pas de fichiers *.kap
          J’ai donc rajouté une petite bestiole en fin de commande %%« tilde »nA.Kap et ça fonctionne parfaitement. Je viens de faire des essais, c’est impeccable.
          Voir photo joint.
          Un grand merci à Ink & Robert pour votre aide.
          Cordialement.
          André.

          JPEG

          Répondre à ce message

  • 22 octobre 2013 11:45, par lva écrire     UP  image

    Bonjour,

    petite question : est ce que les fichier BSB ou Kap me permette de connaitre la nature d’une position ? Terre/mer, éventuellement la profondeur. De manière automatique et pas en visu.
    Je souhaiterai utiliser ses données dans un programme que je réalise ?

    bav

    lva

    Répondre à ce message

    • 22 octobre 2013 11:55, par yoruk écrire     UP     Ce message répond à ... Animateur

      est ce que les fichier BSB ou Kap me permette de connaitre la nature d’une position ?

      Bonjour
      Je ne pense pas sauf erreur, ces cartes sont des photocopies ...

      Michel

      Répondre à ce message

    • 22 octobre 2013 14:05, par Robert écrire     UP     Ce message répond à ...

      A priori, non, comme dit Yorük, rien ne permettra (hormis la visualisation) au logiciel de savoir si un point est sur terre ou sur mer.

      Si vous faites le logiciel vous-même, il vaut mieux utiliser l’une carte vectorielle, avec une des couches ne contenant que le trait de côte. Les cartes vectorielles réduites au trait de côte sont gratuites. De cette façon le logiciel peut repérer si un point est à terre ou en mer. Les algorithmes sont connus et utilisés dans tous les logiciels de navigation utilisant les vectoriels pour définir la couleur du fond selon que le fond est terre ou mer.

      Répondre à ce message

Répondre à cet article

UP

Copyright et informations légales