OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
Tcl gdal
1. Guide d’utilisation de la librairie TclGDAL (Données matricielles)
La libraire de donnes matricielles permet de lire, traiter et afficher des données
L'utilisation de la librairie GDAL nous permet de généraliser plusieurs types de données.
matricielles.
Les données matricielles sont composées de bandes que l'on peut assigner aux divers canaux RGBA. La
combinaisons et la configuration de ces canaux/bandes permet de visualiser et faire ressortir certaines
particularités.
Donc
Les items ente "" sont des objets/commandes Tcl
"gdalfile"
|__"gdalband"
|__"georef"
Paramètres d'utilisations:
La première étape consiste a inclure la librairie dans le script Tcl que vous désirez utiliser:
#!/bin/sh
# the next line restarts using tclsh
exec $SPI_PATH/tclsh "$0" "$@"
package require TclData
Fonctions:
-Manipulation de fichiers matriciels:
gdalfile
open "id" "mode" "fichier" "driver"
Permet d'ouvrir un fichier de données matricielles.
id
mode
fichier
driver
:
:
:
:
Identificateur du fichier. Celui ci sera utilise par la suite pour faire référence au fichier.
Mode d'accès au fichier (read, write ou append).
Nom du fichier a ouvrir.
En mode écriture, il faut spécifier le nom du driver
retour
: Liste des bandes contenues dans le fichier.
close "id"
Fermeture d'un fichier
id
: Identificateur du fichier.
format
Permet d'obtenir la liste des formats (drivers) de données matriciels reconnus.
retour
: Liste des formats de fichiers reconnus.
driver "id"
Permet d'obtenir le format du fichier et le driver utilise pour le lire.
id
: Identificateur du fichier.
retour
: Format(driver) du fichier.
width "id"
Permet d'obtenir la dimension en largeur des données du fichier.
id
: Identificateur du fichier.
retour
: Largeur des données.
2. height "id"
Permet d'obtenir la dimension en hauteur des données du fichier.
id
: Identificateur du fichier.
retour
: Hauteur des données.
metadata "id"
Permet de récupérer les informations de métadonnées du fichier si elles sont disponibles
id
: Identificateur du fichier.
retour
: Meta-donnes sous formes de textes.
project "id" "x" "y"
Permet de récupérer la position géographique (lat-lon) d'un pixel des données avant même la lecture des
données. Ceci permet de localiser une donnée matricielle et de vérifier la validité de cette position.
id
x
y
: Identificateur du fichier.
: Pixel en X
: pixel en Y
retour
: Coordonnées géographiques
unproject "id" "lat" "lon"
Permet de récupérer la position pixel d'une coordonnée géographique (lat-lon) des données avant même la
lecture des données. Ceci permet de localiser une données matricielle et de vérifier la validité de
cette position.
id
lat
lon
: Identificateur du fichier.
: Latitude
: Longitude
retour
: Coordonnées pixel
within "id" "lat0" "lon0" "lat1" "lon1" [included]
Permet de savoir si un fichier est contenu dans une boite lat-lon.
id
:
lat0
:
lon0
:
lat1
:
lon1
:
included:
retour
Identificateur du fichier.
Latitude du premier coin
Longitude du premier coin
Latitude du deuxième coin
Longitude du deuxième coin
Inclusion complète (True,False)
: Inclusion.
-Manipulation des données matricielles:
gdalband
create "band" "width" "height" "space" "type"
Création d'une nouvelle bande. Si aucun paramètre autre que l'identificateur, une bande "container"
sera crée. Ces bandes permettent de combiner d'autres bandes pour les différents canaux RGBA.
band
width
height
space
type
:
:
:
:
:
Identificateur de la bande
Largeur de la bande
Hauteur de la bande
Nombre de composante de la bande
Type de données (UByte Byte UInt16 Int16 Uint32 Int32 Float32 Float64)
copy "idto" "idfrom"
Copie d'une bande "idfrom" dans "idto". Au depart, "idto" n'est qu'un identificateur quelconque (Pas
besoin de le créer, la fonction se charge de faire l'allocation et l'initialisation si nécessaire).
idto
: Identificateur de la bande destination
idfrom : Identificateur de la bande source
3. combine "band" "red band" "green band" "blue band" "alpha band"
Combinaison de plusieurs bande pour générer un affichage RGBA
red band
green band
blue band
alpha band
:
:
:
:
Bande
Bande
Bande
Bande
a
a
a
a
associer
associer
associer
associer
au rouge / gris
au vert
au bleue
a la transparence
clear "band"
Pour initialiser une bande a la valeur par défaut (-nodata)
band
: Identificateur de la bande.
free "band"
Libérer les ressources utilisees par la bande et en détruire toutes références.
band
: Identificateur de la bande.
read "band" { { file idx } { ... } ... } [Full] [X0 Y0 X1 Y1]
Lecture des données de bandes. La fonction de lecture permet de spécifier plus d'une bande a lire de
manière a les associes immédiatement aux canaux RGBA. On peut aussi spécifier la région a lire si on ne
veut pas lire toute la bande
band
liste
: Identificateur de la bande.
: Liste des bandes a lire. Chaque bande est spécifié par l'identificateur du fichier
et l'index de la bande dans ce meme fichier.
X0 Y0 X1 Y1 : Limite de la region a lire (Optionnel)
Full
: Lire les données immédiatement ou attendre (Utile pour l’affichage)
write "band" "id" [options]
Permet d'écrire une bande dans un fichier
band
: Identificateur de la bande.
id
: Identificateur du fichier.
option : Options spécifiques a chaque format de fichier { opt=valeur opt=valeur ... }
voir http://www.gdal.org/formats_list.html pour les options spécifiques par format.
gridinterp "band"
gridinterp "band"
gridinterp "band"
Importation de
"band"
"RPNfield"
"layer" "type" "field"
données dans une bande
band
: Identificateur de la bande.
RPNfield : Identificateur de champs RPN
field
: Champs de la feature a utiliser comme valeur d'import ou FEATURE_LENGTH ou FEATURE_AREA
layer
: Identificateur de couche
type
: Type de traitement
FAST
: Rasterisation directe
WITHIN
: Totalement inclus
INTERSECT
: Partiellement inclus
CONSERVATIVE
: Conserve le total de la couche sur la bande
NORMALIZED_CONSERVATIVE
: Conserve le total de la couche sur la bande normalise par le
total du point
ALIASED
: Les pixels partiels seront un pourcentage d'inclusion
LENGTH_CONSERVATIVE
: Conserve le total de la couche sur la bande selon la longueur
du segment
LENGTH_NORMALIZED_CONSERVATIVE : Conserve le total de la couche sur la bande normalise par le
total du point selon la longueur du segment
LENGTH_ALIASED
: Les pixels partiel seront un pourcentage d'inclusion selon
la longueur du segment
configure "band" "param" [valeur]
Permet la configuration des paramètres de rendue. Divers paramètres peuvent être configuré en
spécifiant la valeur à associer mais on peut aussi en récupérer la valeur courante en ne spécifiant pas
la valeur.
band
: Identificateur de la bande.
param : Parametre a configurer/récupérer.
-width
: Largeur
-height
: Hauteur
-type
: Type de données
4. -transparency :
-topography
:
NONE
INTERNAL
RED
GREEN
BLUE
ALPHA
band
-colormap
:
-indexmap
:
-interpolation:
-mask
:
-texsample
:
-textsize
:
Pourcentage de transparence globale
Appliquer une topographie
: Aucune
: Utiliser la topographie interne (GDB)
: Utiliser la bande rouge comme valeur de topographie
: Utiliser la bande verte comme valeur de topographie
: Utiliser la bande bleue comme valeur de topographie
: Utiliser la bande alpha comme valeur de topographie
: Identificateur d'une bande existante
Palette de couleur associée
Palette d’index associée
Interpolation de la texture des données (NEAREST, LINEAR)
(defaut LINEAR)
Masque vectoriel (ogrlayer) à appliquer avant le rendu de la bande
Intervalle de localisation des vertices des textures
(defaut 8)
Dimension des textures a utiliser (32,64,128,256,512,1024,2048,4096) (defaut 256)
valeur : valeur a associer au paramètre
define "band" "param" [valeur]
Permet la définition des paramètres des données de la bande. Divers paramètres peuvent être définie en
spécifiant la valeur y associe mais on peu aussi en récupérer la valeur courante en ne spécifiant pas
la valeur.
band
param
: Identificateur de la bande.
: Paramètre a configurer/récupérer.
-active
-georef [georef]
-gcps list
-projection [string]
-transform
-invtransform
:
:
:
:
:
:
Flag d'activation
Récupérer l'objet georeference
Définir une transformation selon la liste de gcp { { Col Line x y } ... }
Chaine de description de la projection en format OGC WKT
Matrice de transformation { Tx Sx Rx Ty Ry Sy }
Matrice de transformation inverse { Tx Sx Rx Ty Ry Sy }
stats "band" "param"
Permet de récupérer certaines informations relatives aux valeurs ou positionnement des bandes
band
: Identificateur de la bande.
param : Paramètre a récupérer.
-nodata "val"
: Récupérer ou définir la valeur qui représente l'absence de données
-tag
: Tag ou identificateur associe (Au besoin de l'usager)
-max
: Récupérer la valeur maximale et sa position 3D { valeur lat lon elev }
-min
: Récupérer la valeur minimale et sa position 3D { valeur lat lon elev }
-avg
: Récupérer la valeur moyenne
-grid
: Récupérer la position latlon de tous les pixels
-gridlat
: Récupérer les latitudes de tous les pixels
-gridlon
: Récupérer les longitudes de tous les pixels
-coordpoint "lat" "lon": Récupérer la position pixel d'une coordonnée géographique { x y }
-gridpoint "x" "y"
: Récupérer la coordonne géographique d'une position pixel { lat lon }
-gridvalue "x" "y"
: Récupérer la valeur a un position pixel
-coordvalue "lat" "lon : Récupérer la valeur a une coordonnée géographique
-extent
: Récupérer les limites de la géographie
clean "band"
Permet de libérer toutes les ressources associes a une bande sans la supprimer complètement. Le rendu
et traitement des bandes peuvent demander beaucoup de ressources mémoire, cette fonction permet donc de
libérer toutes ces ressources.
band
: Identificateur de la bande.
is "band"
Permet de vérifier la validité d'un identificateur de bandes ou si ce dernier a été libéré.
band
: Identificateur de la bande.
retour : validite (True ou False).
all
Retourne la liste de tous les identificateurs de bande existant.
retour : Liste des bandes en memoire
5. wipe
Libère toutes les ressources de toutes les bandes existantes. Comme son nom l'indique, c'est plutôt
radical et généralement utilise lors de la fin d'une application/script pour terminer proprement.
project "band" "x" "y"
Permet de transformer une coordonnée pixel en coordonnée géographique
lat-lon.
band
x
y
: Identificateur de la bande.
: Coordonnée pixel en X
: Coordonnée pixel en Y
retour : Coordonnée géographique sous forme de liste { lat lon }.
unproject "band" "lat" "lon"
Permet de transformer une coordonnée géographique lat-lon en coordonnée pixel dans le référentiel de la
bande.
band
lat
lon
: Identificateur de la bande.
: Coordonnée latitude géographique.
: Coordonnée longitude géographique.
retour : Coordonnée matricielle du pixel correspondant sous forme de liste { X Y }
Le pixel de retour de cette fonction peut être en dehors de la bande et même négatif. Il est donc
nécessaire de le comparer avec les limites de hauteur et largeur de la bande pour savoir vraiment si
cette valeur est incluse dans la bande.
6. wipe
Libère toutes les ressources de toutes les bandes existantes. Comme son nom l'indique, c'est plutôt
radical et généralement utilise lors de la fin d'une application/script pour terminer proprement.
project "band" "x" "y"
Permet de transformer une coordonnée pixel en coordonnée géographique
lat-lon.
band
x
y
: Identificateur de la bande.
: Coordonnée pixel en X
: Coordonnée pixel en Y
retour : Coordonnée géographique sous forme de liste { lat lon }.
unproject "band" "lat" "lon"
Permet de transformer une coordonnée géographique lat-lon en coordonnée pixel dans le référentiel de la
bande.
band
lat
lon
: Identificateur de la bande.
: Coordonnée latitude géographique.
: Coordonnée longitude géographique.
retour : Coordonnée matricielle du pixel correspondant sous forme de liste { X Y }
Le pixel de retour de cette fonction peut être en dehors de la bande et même négatif. Il est donc
nécessaire de le comparer avec les limites de hauteur et largeur de la bande pour savoir vraiment si
cette valeur est incluse dans la bande.