mardi 5 mai 2009

Les joies des lignes de commande






En arrivant à l'INRA, je n'avais pour ainsi dire jamais écrit une seule ligne de commande. En effet, les principaux logiciels de SIG ont une interface graphique qui permet de quasiment tout faire avec la souris par une succession de clics. Il n'y a qu'à regarder l'interface de MapInfo ou d'Arcgis pour ne citer qu'eux.
Quand on a jamais écrit une ligne de commande, on a souvent du mal à comprendre l'intérêt et pourtant...
Et puis ça semble tellement fastidieux d'écrire son propre programme!!!!

Aujourd'hui, les principaux logiciels surlesquels j'utilise des lignes de commandes sont Postgresql/Postgis et R. J'ai pu utilisé également ArcInfo Workstation. Et je souhaite également me perfectionner sur Grass.

A mon avis, l'intérêt majeur est de garder l'entière traçabilité de mon travail. Ainsi, je peux faire une succession de manipulation sur différentes matrices ou couches géographiques, et un mois après, en relisant mon code, je sais exactement ce que j'ai fais. Par exemple, j'ai créé une couche grâce à une succession de jointures spatiales mais il y a une variable que j'ai créée et je me souviens plus s'il a été créé par un "intersect" ou par un "contains". Il me suffit alors de relire mon code. Aussi, il m'arrive (comme tout le monde) de faire des erreurs, et je peux donc savoir à quelle étape a été faite l'erreur.

Le deuxième intérêt est sans doute que cela peut éviter les actions répétitives. Par exemple, dans les procédures d'import de plusieurs dizaines de couches, il suffit d'écrire une fois le code (souvent d'une à deux lignes), de faire des copier/coller de ces deux lignes et de modifier seulement le nom de la couche. Autre exemple, quand vous souhaitez faire de mises à jour de colonne sur MapInfo ou Arcgis, on ne peut le faire que colonne par colonne. Sur Postgis, le code SQL permet de faire une mise à jour sur plusieurs colonnes en une seule ligne de commande.
Encore un exemple, mais cette fois-ci sur R, pour la création d'histogramme. Quand on fait une histogramme sur Excel, on doit refaire la mise en forme (couleurs, police...) à chaque nouvel histogramme. Sur R, mes paramètres sont définit dans un fichier texte, il n'y a plus qu'à faire des copier/coller.

Un autre intérêt des lignes de commandes, c'est que l'on peut faire exactement ce que l'on souhaite (dans la limite du logiciel) et que l'on comprend souvent mieux ce que l'on fait. Très fréquemment, ce qui n'est pas possible avec la souris devient possible en lignes de commande. Par exemple, essayez de faire une sélection par location et par attribut d'un seul coup avec Arcgis...? Et ca devient possible sous Postgis et c'est souvent beaucoup plus rapide!

Et puis, on est bien content quand on a écrit une suite de lignes de commandes pour traiter une couche et que votre chef vous annonce qu'il a récupéré une version plus récente et qu'il faut tout recommencer! Il suffit de faire un "chercher/remplacer" sur le nom de la couche et relancer la manip (qui dure parfois une nuit, voire plusieurs jours).

Dans mes exemples, je n'ai parlé que de SIG, mais c'est la même chose quand vous faites du Web avec la possibilité de modifier le code HTML ou PHP ou encore en webmapping quand il s'agit de faire une analyse thématique grâce au fichier .map utilisé par mapserver.

Quand on commence à utiliser les lignes de commande, on peut difficilement s'en passer. C'est d'ailleurs une des raisons pour lesquelles j'utilise des logiciels libres, qui permettent souvent d'utiliser facilement des lignes de commandes.

La difficulté de la ligne de commande reste qu'il faut apprendre un minimum le code et la manière de coder. Si je trouve que le langage SQL est relativement simple, j'ai parfois plus de mal avec R. Cependant, il faut trouver un langage bien documenté et ne pas avoir peur de chercher en anglais (notamment pour R).

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.