Skip to content

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

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

add(article): Principes et fonctionnement de la nouvelle CLI GDAL. Enfin. #1441
thomas-szczurek wants to merge 18 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.

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

Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
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 on lines +15 to +16
tags:
- GDAL
Copy link
Copy Markdown
Member

@gounux gounux Mar 15, 2026

Choose a reason for hiding this comment

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

Ici est-ce qu'il y aurait pas d'autres tags ? Par ex. CLI, json, ou d'autres !

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>
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

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>
Signed-off-by: thomas-szczurek <121474664+thomas-szczurek@users.noreply.github.com>
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 on lines +31 to +33
## Gdal qu'est ce que c'est ?

`GDAL` est une librairie de programmes open source en C/C++ permettant de réaliser des convertion de fichier vecteur/rasteur, et des traitements raster. Cette librairie se cache derrière à peu près tous les logiciels contenant "SIG" dans leur description. Quand vous demandez à QGIS d'enregistrer votre fichier `geopackage` en `flatgeobuf` ou en `geoparquet` pour les amateur.trices de formats modernes mais étranges (perso je ne travaille plus qu'en [DuckLake](https://duckdb.org/2025/05/27/ducklake.html) Spatial pour embêter mes collègues), en réalité QGIS *demande* à GDAL de réaliser l'opération.
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 qu'est ce que c'est ?
`GDAL` est une librairie de programmes open source en C/C++ permettant de réaliser des convertion de fichier vecteur/rasteur, et des traitements raster. Cette librairie se cache derrière à peu près tous les logiciels contenant "SIG" dans leur description. Quand vous demandez à QGIS d'enregistrer votre fichier `geopackage` en `flatgeobuf` ou en `geoparquet` pour les amateur.trices de formats modernes mais étranges (perso je ne travaille plus qu'en [DuckLake](https://duckdb.org/2025/05/27/ducklake.html) Spatial pour embêter mes collègues), en réalité QGIS *demande* à GDAL de réaliser l'opération.
## GDAL qu'est ce que c'est ?
![Logo GDAL](https://cdn.geotribu.fr/img/logos-icones/logiciels_librairies/gdal.png){: .img-thumbnail-left}
[`GDAL`](https://gdal.org/en/stable/) est une librairie de programmes open source en C/C++ permettant de réaliser des convertion de fichier vecteur/rasteur, et des traitements raster. Cette librairie se cache derrière à peu près tous les logiciels contenant "SIG" dans leur description. Quand vous demandez à QGIS d'enregistrer votre fichier `geopackage` en `flatgeobuf` ou en `geoparquet` pour les amateur.trices de formats modernes mais étranges (perso je ne travaille plus qu'en [DuckLake](https://duckdb.org/2025/05/27/ducklake.html) Spatial pour embêter mes collègues), en réalité QGIS *demande* à GDAL de réaliser l'opération.

Ce serait peut-être la seule illustration de l'article 😅


`GDAL` est une librairie de programmes open source en C/C++ permettant de réaliser des convertion de fichier vecteur/rasteur, et des traitements raster. Cette librairie se cache derrière à peu près tous les logiciels contenant "SIG" dans leur description. Quand vous demandez à QGIS d'enregistrer votre fichier `geopackage` en `flatgeobuf` ou en `geoparquet` pour les amateur.trices de formats modernes mais étranges (perso je ne travaille plus qu'en [DuckLake](https://duckdb.org/2025/05/27/ducklake.html) Spatial pour embêter mes collègues), en réalité QGIS *demande* à GDAL de réaliser l'opération.

Les anciens noms des programmes dédiés au vecteur font référence à ogr, une ancienne librairie depuis *absorbée* par GDAL.
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
Les anciens noms des programmes dédiés au vecteur font référence à ogr, une ancienne librairie depuis *absorbée* par GDAL.
Les anciens noms des programmes dédiés au vecteur font référence à `ogr`, une ancienne librairie depuis *absorbée* par GDAL.


On ne le répétera jamais assez mais sans GDAL, presque rien n'existerait dans le monde de la géomatique, qu'elle soit libre ou propriétaire. A tout ces égards, cette librairie fait partie de la sainte trinité [gdal](https://gdal.org/en/stable/)/[geos](https://libgeos.org/)/[proj](https://proj.org/en/stable/).

Maitriser `GDAL`, c'est être capable de remplacer des ~~interfaces graphiques~~ logiciels coutant des dizaines de milliers d'euros.
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
Maitriser `GDAL`, c'est être capable de remplacer des ~~interfaces graphiques~~ logiciels coutant des dizaines de milliers d'euros.
Maîtriser `GDAL`, c'est être capable de remplacer des ~~interfaces graphiques~~ logiciels coûtant des dizaines de milliers d'euros.


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.

gdal raster convert --overwrite in.jp2 out.tif
```

Commande pour convertir un fichier in.jp2 au format geotiff en autorisant l'écrasement d'un potentiel fichier out.tif déjà existant.
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
Commande pour convertir un fichier in.jp2 au format geotiff en autorisant l'écrasement d'un potentiel fichier out.tif déjà existant.
Commande pour convertir un fichier `in.jp2` au format geotiff en autorisant l'écrasement d'un potentiel fichier `out.tif` déjà existant.


(exemple issu de la documentation officielle de GDAL)

On peut ainsi imaginer un pipeline qui reprojetera une couche, avant de la filtrer sur la valeur d'un de ses attributs.
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
On peut ainsi imaginer un pipeline qui reprojetera une couche, avant de la filtrer sur la valeur d'un de ses attributs.
On peut ainsi imaginer un pipeline qui reprojetera une couche, avant de la filtrer sur la valeur d'un de ses attributs :


## l'API Python

Enfin, toute cette modernisation impacte evidemment les API, et celle qui nous interesse ici, l'[API Python](https://gdal.org/en/stable/programs/gdal_cli_from_python.html).
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
Enfin, toute cette modernisation impacte evidemment les API, et celle qui nous interesse ici, l'[API Python](https://gdal.org/en/stable/programs/gdal_cli_from_python.html).
Enfin, toute cette modernisation impacte évidemment les API, et celle qui nous interesse ici, l'[API Python](https://gdal.org/en/stable/programs/gdal_cli_from_python.html).


Enfin, toute cette modernisation impacte evidemment les API, et celle qui nous interesse ici, l'[API Python](https://gdal.org/en/stable/programs/gdal_cli_from_python.html).

On rappelle que de façon curieuse, l'api Python de GDAL s'installe et s'importe comme ceci :
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
On rappelle que de façon curieuse, l'api Python de GDAL s'installe et s'importe comme ceci :
On rappelle que de façon curieuse, l'API Python de GDAL s'installe et s'importe comme ceci :

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,

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

exemple pour importer un fichier csv dans une base Postgres (plutôt que d'utiliser `COPY` de postgres, plus fastidieux):
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
exemple pour importer un fichier csv dans une base Postgres (plutôt que d'utiliser `COPY` de postgres, plus fastidieux):
Exemple pour importer un fichier csv dans une base PostgreSQL (plutôt que d'utiliser `COPY` de postgres, plus fastidieux):

@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 : 51abd19.

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

Labels

articles Tutoriels, actualité, billet...

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants