mercredi 1 août 2012

AIP VFR Suisse en version électronique.

On n'osait plus l'espérer, mais après des années d'attente qui semblaient devoir se prolonger encore éternellement, Skyguide s'est ENFIN décidé à proposer début 2012 l'AIP VFR Suisse en version électronique, permettant d'emporter et de consulter cette précieuse - et volumineuse - documentation sur nos tablettes et autres ordinateurs portables sans devoir tout scanner.

Ne rêvez pas, il ne s'agit pas d'un accès en ligne systématiquement mis à jour à chaque cycle comme le font nos voisins, non, l'AIP Suisse est entrée dans l'ère numérique par la petite porte de la préhistoire informatique : un CD-ROM fourni chaque mois (contre un supplément dépassant très largement son coût - pas d'argent, pas de Suisse) avec la mise à jour de la version papier, par abonnement, ou à la place de la version papier (un peu moins cher). So 1990 !

Mais bon, ça a le mérite d'exister et cela représente un progrès comparé au vide sidéral qui régnait jusqu'alors - on peut voir le verre à moitié vide ou à moitié plein - ne nous plaignons pas, même si le moyen de distribution est très perfectible, et voyons ce que l'on peut en faire.

Le format choisi est celui de documents PDF répartis dans une arborescence quelque peu tortueuse, avec un index HTML faisant appel à des routines en javascript pour consulter les documents.

La mise à jour consiste à recevoir à chaque cycle un CD-ROM remplaçant le précédant, chacun contenant donc l'intégralité de l'AIP. L'avantage est que l'utilisateur qui loupe une mise à jour se rattrape intégralement à la mise à jour suivante.

Si les documents PDF ont le mérite de pouvoir être lus sur n'importe quelle plateforme (ce choix est en cela louable), c'est moins le cas des routines javascript, et l'arborescence tortueuse ainsi que la nomenclature des fichiers ne se prêtent guère au stockage et à la consultation sur tablettes comme l'iPAD, ainsi qu'à une mise à jour aisée à chaque cycle.

Utilisation sur tablette et mise à jour.


Pour pouvoir utiliser cet AIP électronique sur une tablette, il faut donc trouver un moyen d'y transférer les documents PDF et de les classer de manière à les rendre aisément consultables. Après l'arborescence tortueuse et le support d'un autre âge vendu exagérément cher, une autre caractéristique quelque peu regrettable de ce CD-ROM est que le nom des documents d'aérodromes (cartes VAC, ADINFO) ne contient que le code OACI de l'aérodrome, ce qui ne facilite vraiment pas les recherches si l'on ne connaît pas ce code.
Mais à part ça, Madame la Marquise, tout va très bien, tout va très bien...

J'ai donc opté pour une arborescence plus claire, par chapitres (GEN, RAC, VAC, etc.) comparables à ceux de la version papier, et les documents d'aérodromes, rassemblés dans un onglet VAC, contiennent désormais le nom de l'aérodrome, suivi du code OACI (exemple : GENEVE_LSGG_VAC.pdf, GENEVE_LSGG_ADINFO.pdf).

Pour ce faire, j'ai mis au point un petit outil (fourni ci-après), récupérant automatiquement les fichiers du CD-ROM et les disposant où je le désire sur mon PC (dans l'exemple fourni E:\AIP_Suisse), en complétant judicieusement le nom des aérodromes pour une recherche plus aisée.

Dans la pratique, j'ai choisi de mettre l'AIP électronique dans un répertoire de ma Dropbox (il suffit de faire pointer la routine vers ce répertoire) : ainsi j'y ai accès depuis n'importe quel ordinateur connecté au web (même sans Dropbox installée).

Sur mon iPAD, j'utilise l'application GoodReader, que j'ai connectée au répertoire de ma Dropbox contenant l'AIP Suisse. Ainsi je maintiens l'AIP à jour sur mon iPAD tout simplement en pressant la touche "synchroniser" de GoodReader - il suffit d'avoir du WiFi. On peut aussi transférer les fichiers par iCloud, ou manuellement par le serveur WebDAV, ou encore par cliquer-glisser dans iTunes.

L'AIP électronique organisée sur l'iPAD selon les chapitres de la version papier

Le répertoire des aérodromes

VAC d'Yverdon



Note : GoodReader est une application payante. On peut aussi travailler avec iBooks, qui est gratuit, mais les fichiers transférés arrivent tous dans le répertoire racine et il faut alors les répartir manuellement dans des onglets, c'est un peu plus pénible.

Outil de récupération des fichiers du CD-ROM.


C'est tout bêtement ce qu'on appelle un batch file, que tout utilisateur de PC peut recréer à son tour en quelques clics de souris, sans connaissance ni outils particuliers. Pour les utilisateurs de Mac, je donne en fin de billet un lien vers un site proposant un script à peu près équivalent.

Pour créer un batch file : il suffit de copier le code que je donne ci-dessous et de le coller dans un nouveau document texte édité par exemple avec Notepad (clic droit de la souris sur le bureau, nouveau >, Document texte) et de l'enregistrer avec une extension .bat au lieu de .txt (attention à ceux qui ont activé l'option masquant l'extension des fichiers : contrôler après sauvegarde que l'icône du fichier ainsi créé a changé, avec un engrenage. Vous pouvez aussi contrôler l'extension masquée du fichier dans "propriétés"). L'extension batch rend le fichier exécutable depuis n'importe où par un simple double-clic (le fichier peut être par exemple placé sur le bureau ou comme chez moi dans le répertoire de travail). Il peut être édité avec un clic droit de la souris (Modifier), puis sauvegardé à nouveau.

Voici le code du batch file, que j'ai personnellement nommé LAUNCH_AIP_UPDATE.bat (un grand merci à foxidrive du forum dostips.com pour son aide précieuse) :

LAUNCH_AIP_UPDATE.bat

(DEBUT DU CODE A RECOPIER CI-DESSOUS)


@echo off

rem *****************************
rem faites vos modifications ici
rem
set cdrom="g:"
set target="E:\AIP_Suisse"
rem *****************************

for /f "delims=" %%a in ('dir "%cdrom%\eVFRM\" /ad /b') do set "update=%%a"
echo Update release is "%update%"
echo.

rem ***************************
rem folders tree check/creation
rem ***************************

if exist "%target%\AGA" (
rem echo OK, AGA folder exists.
FOR %%A IN (%target%\AGA\*.*) DO DEL %%A
) else (
MD "%target%\AGA"
echo AGA folder created
)
if exist "%target%\AMDT" (
rem echo OK, AMDT folder exists.
FOR %%A IN (%target%\AMDT\*.*) DO DEL %%A
) else (
MD "%target%\AMDT"
echo AMDT folder created
)
if exist "%target%\COM" (
rem echo OK, COM folder exists.
FOR %%A IN (%target%\COM\*.*) DO DEL %%A
) else (
MD "%target%\COM"
echo COM folder created
)
if exist "%target%\COR" (
rem echo OK, COR folder exists.
FOR %%A IN (%target%\COR\*.*) DO DEL %%A
) else (
MD "%target%\COR"
echo COR folder created
)
if exist "%target%\GEN" (
rem echo OK, GEN folder exists.
FOR %%A IN (%target%\GEN\*.*) DO DEL %%A
) else (
MD "%target%\GEN"
echo GEN folder created
)
if exist "%target%\MAP" (
rem echo OK, MAP folder exists.
FOR %%A IN (%target%\MAP\*.*) DO DEL %%A
) else (
MD "%target%\MAP"
echo MAP folder created
)
if exist "%target%\RAC" (
rem echo OK, RAC folder exists.
FOR %%A IN (%target%\RAC\*.*) DO DEL %%A
) else (
MD "%target%\RAC"
echo RAC folder created
)
if exist "%target%\SUP" (
rem echo OK, SUP folder exists.
FOR %%A IN (%target%\SUP\*.*) DO DEL %%A
) else (
MD "%target%\SUP"
echo SUP folder created
)
if exist "%target%\VAC" (
rem echo OK, VAC folder exists.
FOR %%A IN (%target%\VAC\*.*) DO DEL %%A
) else (
MD "%target%\VAC"
echo VAC folder created
)
if exist "%target%\VFR GUIDE" (
rem echo OK, VFR GUIDE folder exists.
) else (
MD "%target%\VFR GUIDE"
echo VFR GUIDE folder created
)

rem ***************************
rem fetch and rename VAC files
rem ***************************

echo.
echo Copying VAC files
pushd "%cdrom%\eVFRM\%update%\chart\"
for %%a in ("LS_ADINFO_*") do (
for /f "tokens=1-4,* delims=_" %%b in ("%%a") do (
for /f "tokens=2" %%z in ('find /i "%%e" ^< "%target%\ICAO_code_list.txt"') do ( echo copying %target%\VAC\%%z_%%e_%%f"
copy /b /y "%%a" "%target%\VAC\%%z_%%e_%%f"
)
)
)
popd echo.
rem ***************************
rem fetch and rename ADINFO files
rem ***************************
echo.
echo Copying ADINFO files
pushd "%cdrom%\eVFRM\%update%\full\"
for %%a in ("LS_ADINFO_*") do (
for /f "tokens=1-5 delims=_." %%b in ("%%a") do (
for /f "tokens=2" %%z in ('find /i "%%e" ^< "%target%\ICAO_code_list.txt"') do (
IF /i "%%f"=="pdf" (
echo copying %target%\VAC\%%z_%%e_ADINFO.%%f"
copy /b /y "%%a" "%target%\VAC\%%z_%%e_ADINFO.%%f"
) ELSE (
echo copying %target%\VAC\%%z_%%e_%%f_ADINFO.pdf"
copy /b /y "%%a" "%target%\VAC\%%z_%%e_%%f_ADINFO.pdf"
)
)
)
)
popd
rem ***************************
rem fetch remaining files
rem ***************************
echo.
echo copying other PDF files, may take a little time, please wait...
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_AGA*.pdf" "%target%\AGA" >nul
copy /b /y "%cdrom%\eVFRM\%update%\chart\LS_AGA*.pdf" "%target%\AGA" >nul
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_COM*.pdf" "%target%\COM" >nul
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_COR*.pdf" "%target%\COR" >nul
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_GEN*.pdf" "%target%\GEN" >nul
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_MAP*.pdf" "%target%\MAP" >nul
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_RAC*.pdf" "%target%\RAC" >nul
copy /b /y "%cdrom%\eVFRM\%update%\full\LS_VFR*.pdf" "%target%\" >nul

copy /b /y "%cdrom%\eVFRM\%update%\AMDT\*.*" "%target%\AMDT\" >nul
copy /b /y "%cdrom%\eVFRM\%update%\SUP\*.*" "%target%\SUP\" >nul
copy /b /y "%cdrom%\eVFRM\%update%\VFG\*.*" "%target%\VFR GUIDE\" >nul

echo.

rem ***************************
rem copy update profile
rem ***************************

echo copying update information
FOR %%A IN (%target%\*.xml) DO DEL %%A
copy /b /y "%cdrom%\eVFRM\eVFRM_list.xml" "%target%\Last_update_%update%.xml"

echo.
echo Update number %update% done.
pause


(FIN DU CODE A RECOPIER CI-DESSUS)

Pour fonctionner, ce batch file a encore besoin de 3 choses supplémentaires :

1) tout en haut du texte, dans la zone indiquée par rem faites vos modifications ici, il faut renseigner la lettre de votre lecteur de CD-ROM (chez moi : G).

2) juste en-dessous, il faut renseigner le répertoire de destination sur votre disque dur (ici E:\AIP_Suisse). Si ce répertoire n'existe pas, il faut le créer avant d'exécuter le batch file.
Chez moi j'ai copié ici le chemin d'un répertoire de ma Dropbox.
3) dans le répertoire de destination que vous aurez indiqué et créé, il faut enfin créer un fichier texte (clic droit, nouveau >, Document texte) dans lequel vous recopiez le code ci-dessous, et que vous renommez ICAO_code_list (attention à la casse et aux "_"). L'extension de ce fichier reste .txt et il est important que ce fichier soit placé dans le répertoire cible que vous avez indiqué en haut du batch file.

ICAO_code_list.txt

(DEBUT DU TEXTE A RECOPIER CI-DESSOUS)

LSPM AMBRI
LSPA AMLIKON
LSZE BAD_RAGAZ
LFSB BALE_MULHOUSE
LSXB BALZERS
LSTB BELLECHASSE
LSZB BERN
LSGB BEX
LSZP BIEL_KAPPELEN
LSZF BIRRFELD
LSZQ BRESSAUCOURT
LSZC BUOCHS
LSZU BUTTWIL
LSZJ COURTELARY
LSPD DITTINGEN
LSGE ECUVILLENS
LSZI FRICKTAL_SCHUPFART
LSGG GENEVE
LSZG GRENCHEN
LSGT GRUYERES
LSXG GSTEIGWILER
LSZN HAUSEN_AM_ALBIS
LSGP LA_COTE
LSPL LANGENTHAL
LSGL LAUSANNE
LSXL LAUTERBRUNNEN
LSGC LES_EPLATURES
LSXY LEYSIN
LSZL LOCARNO
LSZT LOMMIS
LSZA LUGANO
LSZO LUZERN_BEROMUNSTER
LSTR MONTRICHER
LSTO MOTIERS
LSGN NEUCHATEL
LSPO OLTEN
LSER RARON
LSGR REICHENBACH
LSGK SAANEN
LSZS SAMEDAN
LSXV SAN_VITTORE
LSPF SCHAFFHAUSEN
LSZX SCHANIS
LSGS SION
LSZV SITTERDORF
LSZK SPECK_FEHRALTORF
LSZR ST_GALLEN_ALTENRHEIN
LSXA TAVANASA
LSZW THUN
LSPN TRIENGEN
LSXU UNTERVAZ
LSPV WANGEN_LACHEN
LSPH WINTERTHUR
LSGY YVERDON
LSEZ ZERMATT
LSZH ZURICH
LSTZ ZWEISIMMEN

(FIN DU TEXTE A RECOPIER CI-DESSUS)

Vous l'aurez compris : il s'agit-là simplement d'une table de correspondance entre les codes OACI et les noms d'aérodromes, dans laquelle le batch file va puiser.

Ainsi, grâce à ce petit outil très simple, je n'ai qu'à insérer le CD-ROM et double-cliquer sur LAUNCH_AIP_UPDATE.bat pour mettre à jour mon AIP, puis synchroniser mon iPAD. À la fin de l'opération, un fichier .xml indiquant le numéro d'update est encore placé dans le répertoire de travail. Plus rien à voir avec la fastidieuse mise à jour du classeur papier !

Vous pouvez également très facilement porter des modifications au batch file afin d'organiser les fichiers à votre convenance.

Attention : ce batch file se base sur la structure actuelle du CD-ROM. Si vous l'utilisez, vérifiez tout de même que tous les fichiers ont bien été transférés et que votre AIP est au final complet et à jour. Il se pourrait notamment que l'éditeur change à l'avenir des éléments du CD-ROM, nécessitant des adaptations dans le batch file.

Si le batch file génère des erreurs ou fonctionne mal, vérifier la mise en page et l'intégrité des instructions.

Pour les utilisateurs de Mac

On trouve ici un script à peu près équivalent en version Mac.
À la différence de mon batch file ci-dessus, celui-ci formate les VAC en vue d'un chargement dans Air Navigation Pro (ANP).

Intégration des VAC dans Air Navigation Pro

Plutôt que de modifier trop profondément ce billet, j'en ai publié un nouveau, dédié à ce sujet.