Récemment, j'ai eu à traiter des données particulièrement lourdes (millions d'objets) et imparfaites (mauvaises géométries dans un shapefiles) et mes outils habituels étaient tenus en échec : QGIS prend des plombes puis plante presque systématiquement lors des traitements de nettoyage et de restructuration, le GDAL sur mon ordinateur ou sur mon Google Colab sont cantonnés à la version 3.0.* liée au socle Ubuntu 18.04 alors que j'ai bien besoin des options de la branche 3.1 (-nlt, -makevalid...).
J'ai à ma disposition un ordinateur puissant sous Windows, mais l'accès à GDAL via l'OSGeo4W n'est pas idéal et complexe (cmd, proxy, politique de sécurité...), j'ai pas le coeur à l'installer au niveau du système (effets de bord, conflits...) et utiliser conda revient à télécharger la moitié du Web (troll).
WSL ? Le Windows Subsystem for Linux (dont le code du noyau est sous GPL-2) permet depuis quelques années déjà de faire tourner un terminal bash sous Windows et ainsi bénéficier de l'usage des programmes populaires de l'écosystème Linux. Dans ce tutoriel, nous verrons comment installer et configurer WSL sur Windows 10, puis nous verrons les possibilités que cela ouvre en installant et utilisant GDAL dans le sous-système Linux.
Même si la documentation est très bien faite et même traduite en français, il me semble intéressant de paraphraser la documentation, me permettant d'y apporter quelques précisions au passage.
Il existe actuellement deux versions différentes du sous-système Windows pour Linux. La version 2 est une fonctionnalité très récente, il faut donc s'assurer que la version de Windows est bien dans les clous.
Avec WSL, les choses se compliquent car il devient nécessaire de pouvoir switcher d'un terminal à l'autre, par exemple d'un Powershell sur le Windows hôte vers le bash de l'une des distributions installées avec WSL. Le terminal intégré de Powershell en étant incapable, il nous faut donc installer le nouveau terminal :
WSL faisant partie du bouquet de fonctionnalités avancées, il faut donc un accès administrateur pour l'activer (par la suite, ce sera ok pour un utilisateur de base) :
Activer WSL et la VM
Si votre numéro de build >= 19041 :
wsl--install
Sinon, à l'ancienne :
# activer la fonctionnalitédism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux/all/norestart# activer la machine virtuelledism.exe/online/enable-feature/featurename:VirtualMachinePlatform/all/norestart
Redémarrer l'ordinateur
Télécharger et installer la version 2 du noyau WSL
Définir la version à utiliser : wsl --set-default-version 2
Mettre à jour les paquets avec un bon vieux sudo apt update && sudo apt upgrade
Fermer la fenêtre
Voilà, désormais nous avons notre distribution Ubuntu 20.04 prête à être utilisée dans notre Windows. Allez, on ne s'arrête pas en si bon chemin : on continue vers l'installation de GDAL !
Utiliser GDAL dans le sous-système Linux de Windows#
Une fois notre distribution installée, continuons nos opérations sur notre nouveau terminal.
Avant d'aller plus loin, quelques commandes à retenir, qui sont évidemment disponibles (et même traduites !) via l'argument --help :
L'un des atouts de ce système est de pouvoir exécuter GDAL (ou tout autre commande propre à la distribution) à l'intérieur de la VM (Ubuntu) mais en pointant de façon transparente sur le système de fichiers hôte (Windows).
Par exemple, on peut directement lancer la commande précédente depuis Powershell :
A l'instar des autres utilitaires intégrés de base dans Ubuntu, wget n'attend que d'être utilisé via WSL :
# wget est accessible, pourquoi se priver ?wsl-dUbuntu-20.04--wget https://www.data.gouv.fr/fr/datasets/r/931cb357-33e6-46d6-8d2c-a17be9038e90-Otest_gdal_wsl.shp.zip
Et voilà mon fichier dans mon explorateur Windows :
Dans le nouveau terminal, il est possible de personnaliser chaque shell répertorié histoire de s'y retrouver facilement ou tout simplement de faire les choses à son goût.
Géographe "sigiste" de formation, j'ai travaillé sur différentes thématiques et types de structures : gestion des déchets en milieu urbain à Madagascar, foncier d'intérêt général auprès de l'EPF de La Réunion, organisation et la résilience urbaine face aux risques naturels à Lima pour l'IRD, gouvernance et ouverture des données à Isogeo.
Je travaille désormais à Oslandia. Féru des dynamiques de contributions, je participe activement à Geotribu depuis fin 2011.
Commentaires
Afin de favoriser les échanges constructifs, merci de préférer le pseudonymat à l'anonymat. Pour rappel, l'adresse mail n'est pas exposée publiquement et sert principalement aux notifications de réponse. Les commentaires sont automatiquement republiés sur nos réseaux sociaux pour favoriser la discussion. Consulter la page sur la confidentialité et les données personnelles. Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires. Propulsé par Isso.