Lorsque l'on souhaite travailler avec des rasters, on se trouve parfois confronté à des problèmes de dimensions. Si l'on travaille avec des rasters contenant des données géographiques, on peut rapidement atteindre des dimensions de plusieurs milliers de pixels.
Dans le cadre d'une simulation, une telle précision n'est pas toujours nécessaire, car la gestion d'un tel raster suppose la gestion de millions de cases.
Pour optimiser la rapidité d'exécution de la simulation, on va réduire la résolution de ce fichier raster.
Pour réduire la résolution d'un raster la logique consiste à représenter un ensemble de pixel dans un seul pixel.
Exemple : à un groupe de 4 pixels on associe 1 pixel
Pour effectuer cette simplification, il y a plusieurs algorithmes possibles. Une des méthodes consiste à prendre comme valeur du pixel de sortie la moyenne des valeurs des autres pixels.
Cette méthode pose cependant un problème, dans le cas où on travaille avec des valeurs discrètes significatives (1 signifie herbe, 3 signifie arbre, ...) si on effectue la moyenne on peut récupérer des valeurs qui ne correspondent à rien.
L'algorithme de la fonction que nous allons utiliser renvoie au pixel de sortie la valeur du pixel proche du centre de la grille qui contient les pixels que l'on va regrouper.
La valeur du pixel de sortie sera « 5 ».
Cet algorithme est surtout efficace dans le cas où on travaille sur des valeur continues, mais il pose problème dans certains cas ; par exemple dans le cas suivant :
La valeur renvoyée pour le pixel est 9, ce qui n'est pas représentatif des valeurs voisines, la perte de précision est grande.
Pour pallier à ce problème, avant de faire appel à la méthode de changement de résolution, nous allons rendre notre image plus floue en harmonisant les valeurs voisines.
On va utiliser une grille plus ou moins fine, que nous allons faire passer sur chaque pixel du raster pour attribuer à chaque pixel la valeur majoritaire des cellules avoisinantes. Ainsi la grille précédente est transformée en celle-ci :
“floutage” de l’image par attribution de la valeur majoritaire
Après cette transformation, les valeurs sont unies, on peut donc prendre comme valeur du pixel de sortie, une valeur située vers le milieu de la grille, l'erreur sera réduite.
G La procédure pour créer un nouveau jeu de données est détaillée dans la procédure pour vectoriser un raster p.Erreur ! Signet non défini..
G Pour importer votre raster, ouvrez les outils GRASS et dans l'onglet Arborescence des modules choisissez «File->Import->Import Raster-> r.in.gdal»Vous devez ensuite importer votre raster et préciser quel sera son nom dans le jeu de données GRASS. Si GRASS détecte correctement le raster, il crée une couche unique, si il s'agit d'une seule image,il va créer quatre couches contenants chacune les composantes RGB de l'image.
G Pour la suite de la procédure, nous allons utiliser un raster exemple dont la représentation est la suivante:
g.region rast= « nom du raster importé dans le plan de travail »
G Cette commande va associer les paramètres du raster comme paramètre de travail par défaut (coordonnées, résolution...)
G Il est possible de visualiser les attributs d'une région en utilisant l'option -p, ce qui donne g.region -p
r.neighbors input= « le nom du raster importé » output=« nom de la nouvelle carte » method=mode size=21
G Dans cette ligne de commande, on a choisi comme méthode « mode » qui consiste a prendre la valeur la plus fréquente.
G L'attribut size lui correspond au nombre de pixel utilisé pour la grille. Cette valeur correspond au coté de la grille. Pour qu'on puisse la centrer sur une case il faut donc que cette valeur soit impaire. Pour ne pas rendre le calcul trop lourd, la valeur maximum de size est 25. Cependant il est possible d'appliquer plusieurs fois la méthode si nécessaire.
Il faut faire attention à ce que la valeur choisie pour rendre les pixels voisins homogènes entre eux soit cohérente avec le facteur de changement de résolution. Il n'est pas nécessaire de choisir une grille trop grande si le changement de résolution est faible. Au contraire si on rend l'image trop floue on risque de perdre en précision.
Pour mettre en évidence la transformation effectuée, on a exagéré la transformation sur l'exemple: il a maintenant cet aspect :
Résultat du floutage - On s'aperçoit que si la taille de la grille choisie pour rendre le raster flou est trop grande, on risque de perdre des informations (ici le fleuve en bas à gauche était trop fin, il a été écrasé par les pixels environnants qui sont majoritaires).
|
g.region res= « un entier correspondant à la nouvelle résolution »
r.resample in= « nom de l'image rendue floue » out= « nom de l'image de sortie ».
Résultat du changement de résolution : L'image en sortie possède beaucoup moins de pixels, elle conserve cependant un certain équilibre dans la répartition des types de zones.
|
retour aux mémos retour au modèle retour à la page d'accueil