Skip to content

add(article): Principes et fonctionnement de la nouvelle CLI GDAL. Enfin. #1441

Open
thomas-szczurek wants to merge 20 commits intogeotribu:masterfrom
thomas-szczurek:master
Open

add(article): Principes et fonctionnement de la nouvelle CLI GDAL. Enfin. #1441
thomas-szczurek wants to merge 20 commits intogeotribu:masterfrom
thomas-szczurek:master

Conversation

@thomas-szczurek
Copy link
Copy Markdown
Contributor

@thomas-szczurek thomas-szczurek commented Mar 12, 2026

add(article): Principes et fonctionnement de la nouvelle CLI GDAL. Enfin.


ℹ️ Message automatique à lire et remplir ⬇️

Important

Rappel : votre contribution doit émaner de votre originalité, et non découler d'un copier / coller issu d'un prompt.

Liens importants

Ressources

Pour info, voici quelques extraits de notre guide de contribution :

📢 Diffusion

Une fois l'article publié, il sera alors temps de le diffuser. Il sera automatiquement intégré au flux RSS et à la newsletter.

Mais la publication sur les réseaux sociaux est manuelle.

Nous avons des comptes officiels sur ces réseaux sociaux :

Merci d'indiquer en commentaire tes comptes à utiliser pour être cité/e dans les messages et de cocher ci-après la "stratégie" de diffusion qui te convient pour chaque réseau.

BlueSky

  • un/e membre de Geotribu publie, tu repartages avec ton compte
  • tu publies, on repartage
  • chacun/e publie de son côté
  • je souhaite que mon contenu ne soit pas diffusé sur ce réseau

LinkedIn

  • un/e membre de Geotribu publie, tu repartages avec ton compte
  • tu publies, on repartage
  • chacun/e publie de son côté
  • je souhaite que mon contenu ne soit pas diffusé sur ce réseau

Mastodon

  • un/e membre de Geotribu publie, tu repartages avec ton compte
  • tu publies, on repartage
  • chacun/e publie de son côté
  • je souhaite que mon contenu ne soit pas diffusé sur ce réseau

Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
@github-actions github-actions bot added the articles Tutoriels, actualité, billet... label Mar 12, 2026
@thomas-szczurek thomas-szczurek changed the title Ajout article sur la nouvelle CLI gdal add(article): Principes et fonctionnement de la nouvelle CLI GDAL. Enfin. Mar 12, 2026
Copy link
Copy Markdown
Contributor Author

@thomas-szczurek thomas-szczurek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suppression d'une blague hors contecte 6 mois après

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Copy link
Copy Markdown
Member

@gounux gounux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci Thomas, ça fait plaisir de te revoir ici, sympa l'article !

Quelques corrections de coquilles, est-ce que l'article mériterait pas quelques images ?

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
@thomas-szczurek
Copy link
Copy Markdown
Contributor Author

thomas-szczurek commented Mar 16, 2026

Merci Thomas, ça fait plaisir de te revoir ici, sympa l'article !

Quelques corrections de coquilles, est-ce que l'article mériterait pas quelques images ?

Merci ! En soit, je me le suis bien dis pour les images, mais est-ce bien sage d'illustrer des lignes de commande par des screenshots de lignes de commande ?

thomas-szczurek and others added 4 commits March 16, 2026 17:25
Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
thomas-szczurek and others added 2 commits March 16, 2026 17:28
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

@thomas-szczurek thomas-szczurek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tags ajoutés et phrase compliquée racourcie

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
thomas-szczurek and others added 3 commits March 24, 2026 17:47
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
@Guts Guts requested review from a team and jeremieprudhomme and removed request for a team March 24, 2026 19:50
@Guts Guts requested a review from lbartoletti March 24, 2026 19:50
@Guts
Copy link
Copy Markdown
Member

Guts commented Mar 24, 2026

Allez zou, c'est parti pour la @geotribu/relecture !

ℹ️ Aux relecteur/ices

Merci d'utiliser autant que possible le mode Suggestion de la review : https://docs.github.com/fr/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request#starting-a-review

image

C'est vraiment IMPORTANT pour le confort de l'auteur/ice 🙏

Copy link
Copy Markdown
Member

@gounux gounux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Après un long silence, une petite review principalement sur quelques coquilles et de la forme,

est-ce bien sage d'illustrer des lignes de commande par des screenshots de lignes de commande ?

Sage comme une image ?
C'est vrai qu'illustrer une CLI, bon voilà... C'est bien aussi comme ça avec les nombreux exemples fournis :)
Merci @thomas-szczurek !

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated

Maitriser `GDAL`, c'est être capable de remplacer des ~~interfaces graphiques~~ logiciels coutant des dizaines de milliers d'euros.

Cependant, historiquement les programmes `GDAL` étaient ... comment dire ... peut normés entre eux, par exemple `gdal_translate` (le programme servant aux conversions raster) demandait ses fichiers d'entrée / sortie dans cet ordre : in -> out alors qu'`ogr2ogr` (le programme servant aux conversions vecteur) lui demandait : out -> in. De plus les plus gros programmes, ceux qui "faisaient tout" on été supprimés et remplacés par des équivalents plus spécifiques.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Cependant, historiquement les programmes `GDAL` étaient ... comment dire ... peut normés entre eux, par exemple `gdal_translate` (le programme servant aux conversions raster) demandait ses fichiers d'entrée / sortie dans cet ordre : in -> out alors qu'`ogr2ogr` (le programme servant aux conversions vecteur) lui demandait : out -> in. De plus les plus gros programmes, ceux qui "faisaient tout" on été supprimés et remplacés par des équivalents plus spécifiques.
Cependant, historiquement les programmes `GDAL` étaient... comment dire... peu normés entre eux, par exemple `gdal_translate` (le programme servant aux conversions raster) demandait ses fichiers d'entrée / sortie dans cet ordre : in -> out alors qu'`ogr2ogr` (le programme servant aux conversions vecteur) lui demandait : out -> in. De plus les plus gros programmes, ceux qui "faisaient tout" ont été supprimés et remplacés par des équivalents plus spécifiques.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on été supprimés et remplacés par des équivalents plus spécifiques.

A reformuler car prête à confusion avec la phrase suivante qui dit qu'ils sont toujours dispos

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Ensuite, c'est simple, ils s'appellent comme ceci :

```python
gdal.Run("vector"/"raster"/"vsi", "programme", option(s), input="in.tif", output="out.tif)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
gdal.Run("vector"/"raster"/"vsi", "programme", option(s), input="in.tif", output="out.tif)
gdal.Run("vector", "programme", option(s), input="in.tif", output="out.tif")
gdal.Run("raster", "programme", option(s), input="in.tif", output="out.tif")
gdal.Run("vsi", "programme", option(s), input="in.tif", output="out.tif")

Au début j'ai buggué, j'ai cru que c'était une nouvelle syntaxe python 3.17...

Peut-être plus simple à comprendre, je sais pas, à voir aussi si besoin de changer les extensions, vector notamment,

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
@Guts
Copy link
Copy Markdown
Member

Guts commented Apr 12, 2026

Merci Guilhem pour la relecture.

Est-ce qu'on demanderait pas à @rouault ce qu'il pense de ce contenu :) ?

Copy link
Copy Markdown
Contributor

@rouault rouault left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merci pour cette intro à la nouvelle interface en ligne de commande!

A voir si vous voulez le mentionnez, mais au cas où, ça fera l'objet d'un atelier dédié de 4h (en anglais) lors de la conférence FOSS4G-Europe 2026 : https://talks.osgeo.org/foss4g-europe-2026-workshops/talk/PR7HNK/ .

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated

Maitriser `GDAL`, c'est être capable de remplacer des ~~interfaces graphiques~~ logiciels coutant des dizaines de milliers d'euros.

Cependant, historiquement les programmes `GDAL` étaient ... comment dire ... peut normés entre eux, par exemple `gdal_translate` (le programme servant aux conversions raster) demandait ses fichiers d'entrée / sortie dans cet ordre : in -> out alors qu'`ogr2ogr` (le programme servant aux conversions vecteur) lui demandait : out -> in. De plus les plus gros programmes, ceux qui "faisaient tout" on été supprimés et remplacés par des équivalents plus spécifiques.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on été supprimés et remplacés par des équivalents plus spécifiques.

A reformuler car prête à confusion avec la phrase suivante qui dit qu'ils sont toujours dispos

gdal vector convert --append in.shp PG:"dbname='my_db' user='me' password='admin123' schemas='my_schema'"
```

Une différence par rapport à l'ancienne CLI est l'obligation de l'utilisation de l'option `append`, même pour créer une table non existante.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On a du corrigé ça depuis la 3.11, car --append non nécessaire avec 3.12 quand la table n'existe pas.

On peut s'en servir pour créer des [Cloud Optimized Geotiff](https://guide.cloudnativegeo.org/cloud-optimized-geotiffs/intro.html). Voir cet [article de geotribu par Nicolas Rochard](https://geotribu.fr/articles/2025/2025-02-11_bonnes-pratiques-generation-raster-cog-avec-gdal/) pour les options qui sont utilisées par la région Hauts de France.

```sh
gdal raster convert --ouput-format=COG -co COMPRESS=ZSTD -co BIGTIFF=IF_NEEDED in.tif out.tif
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BIGTIFF=IF_NEEDED est la valeur par défaut et manque d'un 2ème trait d'union devant -co

Suggested change
gdal raster convert --ouput-format=COG -co COMPRESS=ZSTD -co BIGTIFF=IF_NEEDED in.tif out.tif
gdal raster convert --ouput-format=COG --co COMPRESS=ZSTD in.tif out.tif

Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated
Comment thread content/articles/2026/2026-03-23_nouvelle_cli_gdal.md Outdated

Chaque programme `GDAL` est implémenté sous forme d'instances de la classe `osgeo.gdal.Algorithm`, qu'on appelle en utilisant la méthode `osgeo.gdal.Run()` ou plutôt `gdal.Run()` si on a importé `GDAL` comme dans l'exemple ci-dessus.

Ensuite, c'est simple, ils s'appellent comme ceci :
Copy link
Copy Markdown
Contributor

@rouault rouault Apr 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

la syntaxe gdal.alg.x.y(...) ajoutée GDAL 3.12 (cf https://gdal.org/en/stable/programs/gdal_cli_from_python.html#gdal-alg-module) est encore plus sympa, et bénéficie de docstring avec les paramètres disponibles et donc d'auto-complétion/suggestion dans votre IDE favori

@rouault
Copy link
Copy Markdown
Contributor

rouault commented Apr 12, 2026

mais est-ce bien sage d'illustrer des lignes de commande par des screenshots de lignes de commande ?

Dans la doc de GDAL 3.13, on a osé pour illustrer les pipelines complexes. Cf https://gdal.org/en/latest/programs/gdal_pipeline.html#programs/gdal_pipeline-5 ( généré grace à https://github.com/geographika/gdalgviz )

Ne reste plus que les commentaires nécessitant modification du corps de texte en lui mêmê

Co-authored-by: Guilhem Allaman <40383801+gounux@users.noreply.github.com>
Co-authored-by: Even Rouault <even.rouault@spatialys.com>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
@Guts
Copy link
Copy Markdown
Member

Guts commented Apr 15, 2026

@thomas-szczurek Il va te falloir changer la date et donc renommer le fichier. Quand souhaites-tu publier l'article ?

Sachant que demain il y a la partie 1 sur Mapproxy et la partie 2 en fin de mois. Sauf si tu es pressé, je te conseillerais plutôt d'attendre jusqu'au 12 mai pour éviter qu'il soit pris en sandwich entre 2 Mapproxy ou dans la huitaine de ponts de mai, mais inclus dans la prochaine RDP. Dis-nous !

⚠️ il faut que tu acceptes d'abord les modifs / suggestion des reviewers avant de renommer sinon GH est perdu. ⚠️

@Guts
Copy link
Copy Markdown
Member

Guts commented Apr 15, 2026

@thomas-szczurek j'avais oublié d'éditer la description de ta PR avec notre modèle. Je te laisse cocher ce qui est te va bien :).

…-szczurek

Signed-off-by: Julien <1596222+Guts@users.noreply.github.com>
@github-actions github-actions bot added the contributeurices Contenus liés à la contribution et contributeur/ices : biographies, à propos, etc. label Apr 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🎉 Le site de prévisualisation pour cette PR a été généré et est disponible sous ce lien.
Commit de référence : 8023200.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

articles Tutoriels, actualité, billet... contributeurices Contenus liés à la contribution et contributeur/ices : biographies, à propos, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants