Multiplans est une application pour l’iphone qui permet de se répérer avec le GPS et localiser sa position sur une carte préalablement chargée sur l’iphone. C’est donc une alternative à l’excellent logiciel de Swiss Topo Swiss Map, excellente application mais chère (quelque 800 CHF pour disposer de toutes les cartes de la Suisse). Pour la France voisine, l’IGN a également une application similaire, appelée iphigénie. Multiplans permet de télécharger plusieurs cartes et peut donc remplacer un GPS spécialisé (certes l’Iphone est bien plus fragile…). Le site Multiplans explique comment télécharger des cartes. Ici, je montre comment sous Linux, on peut assembler des cartes géoréférences pour en faire ensuite une mosaïque de petites cartes qui soit conforme aux critères fixés par Multiplans, à savoir la taille (256 x 256 px), le format (jpg), et le nom de chaque dalle (tile_x_y.jpg). Pour cela je me sers de la bibliothèque gdal. Je suppose que j’ai une série de cartes au format tif géoréférencées à l’aide d’un fichier tfw. La première opération consiste à assembler les cartes ; il faut notamment au prélable pour cela qu’elles soient avec des couleurs RGB et non indexées. La seconde opération consiste à créer la mosaïque avec le script gdal_retile.py.
Voici le script
#!/bin/bash
for i in *.tfw; do cp $i `basename $i .tfw`rgb.jfw; done
for i in *.tif; do convert $i -type TrueColor -depth 8 -quality 100 -interlace plane `basename $i .tif`rgb.jpg; done
gdal_merge.py -o tile.jpg *rgb.jpg
rgb2pct.py tile.jpg tileind.jpg
rm tile.jpg
mv tileind.jpg tile.jpg
rm *rgb.j*
mkdir dest
gdal_retile.py -ps 256 256 -targetDir dest tile.jpg
rm tile.jpg
cd dest
for i in *.tif; do convert $i -quality 100 -interlace plane `basename $i .tif`.jpg; done
Pour l’utiliser, il faut disposer des bibliothèques imagemagick et gdal (à installer facilement via synaptic si on travaille sous ubuntu). Le script ci-dessus soit être enregistré, par exemple avec le nom script.sh, puis on doit modifier ses droits pour qu’il soit exécutable :
chmod 777 script.sh
On l’exécute simplement à l’aide de la commande
./script.sh
À noter qu’il reste un peu de travail puisque gdal numérote les dalles de la façon suivante : tile_y_x.jpg, alors que Multiplans demande tile_y_x.jpg. Personnellement, j’utilise Mathematica (par facilité, mais un script bash pourrait le faire aussi)
SetDirectory["d:/Oberland-sud"]
list = FileNames["*.jpg"];
dim = Length@list
dim
Do[
x = StringTake[list[[i]], {9, 10}];
y = StringTake[list[[i]], {6, 7}];
chain = "tile_ " <> x <> " _ " <> y <> ".jpg ";
RenameFile[list[[i]], chain], {i, dim}]