GDAL
VRT -- GDAL Virtual Format — GDAL documentation
__________________
NB: Beaucoup de logiciels métiers aujourd’hui utilisent GDAL dont QGIS

Installer GDAL dans Ubuntu / WSL

Installation complète (avec outils et drivers) :

Shell (plutôt dans Ubuntu)
sudo apt update
sudo apt install gdal-bin
Pour Python (optionnel mais utile pour la géomatique) :
sudo apt install python3-gdal
Vérifier après installation
gdalinfo --version
___________________________________________________________________

Test de commande

Source: PSQL le client de PostgreSQL en mode CLI \[Le « bas niveau » pour alimenter les données\]
___________________________________________________________________

Exercice : Le mode CLI

Petites instructions et restitution avec une capture d’écran sur Digiforma

Ouvrir PowerShell

Utiliser la commande pwd pour vérifier que vous êtes dans le dossier utilisateur de votre machine

Créer un dossier « cli »

Déplacez vous dans le dossier que vous venez de créer

Créer un fichier de type texte nommé exercice_cli.txt avec une phrase de votre choix. (cf exemple du support de cours)

Renommer le fichier exercice_cli.txt en exercice_cli_initial.txt

Copier le fichier en le nommant exercice_cli_copie.txt

___________________________________________________________________
Résolution de l’exercice

Code:
:~\(** pwd /home/idgeo **idgeo@GS8:\~\) mkdir clic
:~\(** cd clic **idgeo@GS8:\~/clic\) pwd
/home/idgeo/clic
:~/clic\(** echo "Je fais des tests sur Ubuntu." \> exercice\_cli.txt **idgeo@GS8:\~/clic\) mv exercice_cli.txt exercice_cli_initial.txt
:~/clic\(** cp exercice\_cli\_initial.txt exercice\_cli\_copie.txt **idgeo@GS8:\~/clic\) ls -1
exercice_cli_copie.txt
exercice_cli_initial.txt
NB: Si on souhaite se placer dans un dossier personnel: On utilise cd /mnt/+ lien dossier
Le chemin est très intéressant et surtout par rapport à là ou on se trouve car ça peut varier par rapport à notre placement
Exemple: : ~/clic\(** cd /mnt/c/Users/aguene/Downloads/OGR **idgeo@GS8: /mnt/c/Users/aguene/Downloads/OGR\)
___________________________________________________________________

Connection à une base de données PostgreSQL


Code:
– Pour se connecter:
:~/clic$ psql -h 192.168.10.1 -p 15432 -U editeur -d abdou_lahat
Password for user editeur:editeur2026
___________________________________________________________________
En se plaçant dans notre base de données, on peut maintenant faire des scripts SQL comme sur PGAdmin ou DBeaver
abdou_lahat=> SELECT *
FROM address.adresses_2026
LIMIT 5;

Important: Tape Ctrl+Z pour sortir de la base de données

Attention: Il faut toujours mettre le point virgule (;) à la fin du code SQL

___________________________________________________________________

Pour télécharger un MNT dans un dossier bien déterminer:

On se place sur le dossier d’abord avant de faire wget+lien raster
: /mnt/d/gdal_abdou/raster/mnt$ wget https://data.geopf.fr/telechargement/download/BDALTI/BDALTIV2_2-0_25M_ASC_LAMB93-IGN69_D031_2021-05-12/BDALTIV2_2-0_25M_ASC_LAMB93-IGN69_D031_2021-05-12.7z
___________________________________________________________________

On dézippe le BDALTI:

: /mnt/d/gdal_abdou/raster/mnt$ 7z x BDALTIV2_2-0_25M_ASC_LAMB93-IGN69_D031_2021-05-12.7z
___________________________________________________________________

Créer un vrt à partir de nos images.asc

NB: Le chemin est très intéressant et surtout par rapport à là ou on se trouve car ça peut varier par rapport à notre placement
: /mnt/d/gdal_abdou/raster/mnt$ gdalbuildvrt -srcnodata 0 -a_srs EPSG:2154 mnt31.vrt BDALTIV2_2-0_25M_ASC_LAMB93-IGN69_D031_2021-05-12/BDALTIV2/1_DONNEES_LIVRAISON_2021-10-00008/BDALTIV2_MNT_25M_ASC_LAMB93_IGN69_D031/*.asc
Ci-dessus, à partir de BDALTIV2_2-0_25M_ etc c’est le chemin vers les images puisqu’on est dans déjà dans le dossier mnt qui contient BDALTIV2_2-0_25M_ etc
___________________________________________________________________

Créer un shapefile à partir d’une autre et avec SQL (where)

: /mnt/d/gdal_abdou/vecteur$ ogr2ogr -where “INSEE_DEP=‘31’” HG.shp DEPARTEMENT.shp
___________________________________________________________________

Exemple 1: Découper un mnt par un shapefile

: gdalwarp -overwrite -cutline vecteur/dept09.shp -cl dept09 -crop_to_cutline -of VRT raster/mnt/mnt09.vrt raster/mnt/mnt09_ariege.vrt

Exemple 2: Découper un mnt par un shapefile

: gdalwarp -s_srs EPSG:2154 -t_srs EPSG:2154 -cutline vecteur/COMMUNE.shp -cl COMMUNE -cwhere “INSEE_COM=‘31555’” -crop_to_cutline -overwrite raster/ortho/T31TCJ_2154.vrt raster/ortho/T31TCJ_2154_TOULOUSE.vrt
___________________________________________________________________

Reprojeter en ortho en créant un nouveau fichier vrt avec suppression des nodata (pixel trous)

: gdalwarp -s_srs EPSG:3857 -t_srs EPSG:2154 -of VRT -r near -dstnodata 99999 ortho/T31TCJ.tif ortho/T31TCJ_2154.vrt
___________________________________________________________________

Créer des courbes de niveau à partir d’un mnt

: /mnt/d/gdal_abdou$ gdal_contour -a elev -i 5 raster/mnt/mnt_TOULOUSE.vrt vecteur/contour_mnt.shp
___________________________________________________________________

Créer un raster ombrage à partir d’un mnt

: /mnt/d/gdal_abdou$ gdaldem hillshade raster/mnt/T31TCJ_2154_TOULOUSE.vrt raster/mnt/ombrage.tif
___________________________________________________________________

Colorer un mnt avec un fichier .txt contenant niveau altitude et valeurs couleurs RGB

touch script.sh
: /mnt/d/gdal_abdou\(** nano color.txt ![][image3] première valeur de chaque ligne veut dire altitude et les 3 valeurs suivantes indiques les couleurs RGB Ensuite on utilise ce color.txt qui est enregistrer dans le dossier raster pour colorer **idgeo@GS8: /mnt/d/ariege/raster/mnt\) gdaldem color-relief mnt09_ariege.vrt color09.txt raster/mnt/color_mnt09.vrt
___________________________________________________________________

DEUXIÈME JOUR

Création de dossier et du fichier de script

: /mnt/d/gdal_abdou\(** touch script.sh **idgeo@GS8:** **/mnt/d/gdal\_abdou\) nano script.sh


___________________________________________________________________

Connexion à la base de données et chargement de la couche hg.shp

: /mnt/d/gdal_abdou$ ogr2ogr -f “PostgreSQL” PG:“dbname=abdou_lahat user=editeur password=editeur2026 host=
192.168.10.1 port=15432” -nln hg -s_srs EPSG:2154 -t_srs EPSG:2154 vecteur/HG.shp
___________________________________________________________________

Charger une couche dans ma base de données depuis un url WFS de la géoplateforme (geoservices)

: /mnt/d/gdal_abdou$ ogr2ogr -of “PostgreSQL” PG:“dbname=abdou_lahat user=editeu
r password=editeur2026 host=
192.168.10.1 port=15432” -nln public.dept.09 -s_srs EPSG:4326 -t_srs EPSG:2154 WFS:https
://data.geopf.fr/wfs/ows?VERSION=2.0.0 BDTOPO_V3:departement -where “code_insee=‘09’”
___________________________________________________________________

Pour automatiser toutes ses tâches

On crée ce dossier “ariege” avec ces contenus dedans: Pour automatiser les taches - Google Drive
Ensuite, rends le script exécutable et lance-le
:/mnt/d/ariege\(** chmod \+x mon\_dossier/script.sh && ./mon\_dossier/[script.sh](http://script.sh) **NB:** Si vous vous exécutez ça dans une autre machine, il faudra dans ta terminal se placer sur **idgeo@GS8: /mnt/d/ariege\) (si vous êtes sur Ubuntu)
Et il faut aussi adapter les chemins dans le fichier script.sh

Important: la solution de Olivier (olivier_ariege) est plus intéressant aussi, il te demande le numero departement et ensuite le lien du mnt dans geoservice
Préalable: Il faut placer le fichier de Olivier dans “mon_dossier” et le renommé “script.sh
Remarque: Pour que ça fonctionne mieux encore et pour tous les départements, remplace le “polygon” dans olivier_ariege par “multipolygon”