GDAL

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page GDAL and the translation is 100% complete.
Other languages:

GDAL est une bibliothèque de traduction open source pour les formats de données géospatiales raster. Elle peut être utilisée comme une bibliothèque, car elle présente un modèle de données abstrait unique à l'application qui l’appelle, pour tous les formats pris en charge. Elle est également livrée avec une variété d'utilitaires de ligne de commande pour la traduction et le traitement des données.

GDAL est utilisée par une longue liste de progiciels et ses fonctionnalités peuvent être utilisées dans des scripts écrits en Python ou R.

Utiliser GDAL avec Python

La fonctionnalité GDAL peut être utilisée via le package osgeo que nous installons comme une extension du module GDAL. Pour l'utiliser, vous devez charger un module Python compatible avec le module GDAL.

Utiliser osgeo avec StdEnv/2020

Pour connaître les modules Python qui sont compatibles avec par exemple gdal/3.5.1, utilisez le code suivant :

Question.png
[name@server ~]$  module whatis gdal/3.5.1
gdal/3.5.1          : Description: GDAL is a translator library for raster geospatial data formats...
gdal/3.5.1          : Homepage: https://www.gdal.org/
gdal/3.5.1          : URL: https://www.gdal.org/
gdal/3.5.1          : Compatible modules: python/3.8, python/3.9, python/3.10

Nous avons donc le choix entre 3.8, 3.9 et 3.10. Nous choisissons python/3.10.

Question.png
[name@server ~]$  module load StdEnv/2020 gcc/9.3.0 python/3.10 gdal/3.5.1
File : osgeo_gdal.py

#!/usr/bin/env python3
from osgeo import gdal

print("osgeo.gdal version:", gdal.__version__)
# osgeo.gdal version: 3.5.1


Utiliser osgeo avec StdEnv/2023

Pour connaître les modules Python qui sont compatibles avec par exemple gdal/3.7.2, utilisez le code suivant :

Question.png
[name@server ~]$  module whatis gdal/3.7.2 
gdal/3.7.2          : Description: GDAL is a translator library for raster geospatial data formats...
 data translation and processing.
gdal/3.7.2          : Homepage: https://www.gdal.org/
gdal/3.7.2          : URL: https://www.gdal.org/
gdal/3.7.2          : Compatible modules: python/3.10, python/3.11
gdal/3.7.2          : Extensions: osgeo-3.7.2

Nous avons donc le choix entre 3.10 et 3.11. Nous choisissons python/3.11.

Question.png
[name@server ~]$  module load StdEnv/2023 gcc/12.3 python/3.11 gdal/3.7.2
File : osgeo_gdal.py

#!/usr/bin/env python3
from osgeo import gdal

print("osgeo.gdal version:", gdal.__version__)
# osgeo.gdal version: 3.7.2


Utiliser GDAL avec R

Plusieurs paquets R pour l’analyse des données spatiales dépendent de GDAL pour leur fonctionnalités, par exemple

  • sf: Simple Features for R
  • terra: Spatial Data Analysis

L’ancien paquet rgdal a été abandonné et remplacé par sf et terra.

Installer sf et terra dans StdEnv/2020

L'installation de ces paquets nécessite non seulement le chargement d'un module gdal, mais également de udunits requis par le paquet units.


File : install_sf_terra_StdEnv2020.sh

# load required modules:
module load  StdEnv/2020  gcc/9.3.0  udunits/2.2.28  gdal/3.5.1  r/4.2.2

# create a local R library in $HOME:
mkdir -p $HOME/R/x86_64-pc-linux-gnu-library/4.2
export R_LIBS="$HOME/R/x86_64-pc-linux-gnu-library/4.2:$R_LIBS"

# install sf and terra from a Canadian CRAN mirror:
R -e "install.packages(c('sf', 'terra'), repos='https://mirror.csclub.uwaterloo.ca/CRAN/', dep=TRUE)"


Installer sf et terra dans StdEnv/2023

Notez qu’avec StdEnv/2023, en plus des modules gdal et udunits, hdf/4.3.1 est également requis.


File : install_sf_terra_StdEnv2020.sh

# load required modules:
module load  StdEnv/2023  gcc/12.3  udunits/2.2.28  hdf/4.2.16  gdal/3.7.2  r/4.3.1

# create a local R library in $HOME:
mkdir -p $HOME/R/x86_64-pc-linux-gnu-library/4.3
export R_LIBS="$HOME/R/x86_64-pc-linux-gnu-library/4.3:$R_LIBS"

# install sf and terra from a Canadian CRAN mirror:
R -e "install.packages(c('sf', 'terra'), repos='https://mirror.csclub.uwaterloo.ca/CRAN/', dep=TRUE)"