Skip to Content

Foire Aux Questions - Spatial Analyst

Auteur : Dready

Voir le sujet suivant :

[ArcGIS 8.x] Analyse et comparaison de deux rasters

"Avec Spatial Analyst et ses opérateurs arithmétiques, on peut additionner les valeurs des pixels de 2 grilles, ou soustraire, diviser, multiplier... Cela permet de faire toutes les comparaisons souhaitées" (Soudjaib).

A ceci près que si les Grids ne sont pas parfaitement superposables (alignement et taille identique des cellules) un paramétrage et plusieurs tests sont nécessaires pour comprendre comment Spatial gère les chevauchements de cellules dans ses résultats.

Exemple :

Pour voir si deux Grids, Grid1 et Grid2, sont identiques, on peut par exemple les soustraire :

Taper : Grid1 - Grid2

Les cellules du Grid-Résultat prendront la valeur 0 aux emplacements où les valeurs de Grid1 et Grid2 sont identiques.

Auteur : Dready

Voir les sujets suivants :

[ArcGIS 8.x] Assembler des rasters

[ArcGIS 8.x] Spatial Analyst dans ArcGIS 8

[ArcGIS 9.x] Spatial Analyst : Assembler des MNT

[ArcGIS 8.x] Problème pour merger (unir) couches rasters

1. Paramétrage de l'environnement de travail

  • Spatial Analyst / Option / Etendue.
  • Choisir "union des entités" dans la liste "Etendue d'analyse".

2. Assemblage proprement dit

  • Spatial Analyst / Calculatrice raster.
  • Taper : Merge([Raster1], [Raster2], [Raster3], [Raster 4])

(Remplacer Raster1, Raster2 etc. par le nom des rasters).
3. Enregistement de la couche obtenue.

Dans la table des matières, clic droit sur la couche "calcul" qui vient d'apparaître / Rendre permanent (Voir aussi Comment paramétrer le répertoire d'enregistrement des Grids-résultats ?).
NOTE : Cette fonction convient pour les raster attributaires de type Grid. Pour les images (TIFF ou ERDAS IMAGINE), il se peut qu'elle ne fonctionne pas. Dans ce cas voici une solution de bricoliste valable pour ArcGIS 9 :

  • Afficher dans ArcMap les Band1 des images à assembler (les trois Bands RGB sont sélectionnables dans ArcCatalog en cliquant sur le + devant le nom de l'image)
  • Assembler ces Band1 selon la procédure expliquée précédemment (là, ça doit fonctionner) et rendre la couche créée permanente en la nommant Merge1 (par exemple…)
  • Recommencer l'opération avec les Band2, puis Band3 en les nommant Merge2 et Merge3
  • Afficher Merge1, Merge2 et Merge3 dans ArcMap ; ouvrir la fenêtre de ligne de commande et taper :

CompositeBands_management Merge1;Merge2;Merge3 D:\Rasters\Merge123.tif

(Remplacer "D:\Rasters\Merge123.tif " par le chemin et le nom sous lesquels vous souhaitez stocker l'image).
Sachez enfin que pour les possesseurs d'une licence ArcInfo, il existe une commande "Mosaic" qui permet de paramétrer de nombreux éléments lors de l'assemblage de raster (consultez l'aide…).

Auteur : Dready

Par défaut les Grids-résultats sont stockés à l'adresse "C:\Documents and Settings\CurrentUser\Local Settings\Temp\".

Il est possible de choisir un autre répertoire de destination :

Spatial Analyst / Options / Général / Répertoire de travail

Il est alors facile d'enregistrer directement en dur les résultats des traitements réalisés avec la Calculatrice Raster. Il suffit de taper : "nom du nouveau raster =" suivi de l'expression Map Algebra que l'on souhaite exécuter.

Auteur : Dready

Dans l'exemple nous utiliserons 4 Grids respectivement nommés Grid1, Grid2, Grid3 et Grid4. Mais un stack peut contenir jusqu'à 20 Grids

Préalable :

1. Tous les Grids doivent être situés dans le même répertoire.

2. Le répertoire de travail de Spatial Analyst doit être celui qui contient les Grids utilisés (à configurer dans Spatial Analyst/Options/Répertoire de travail)

Méthode :

Dans la Calculatrice raster taper la syntaxe suivante :

MAKESTACK nom_du_stack_en_sortie LIST [Grid1] [Grid2] [Grid3] [Grid4]

NOTE : il est possible de convertir une image multibandes (par exemple un TIFF à trois canaux RVB) en un Stack : ArcToolbox/ConversionsTools/VersRaster/Raster vers autres formats (choisir le format Grid).

Chaque bande est convertie en un Grid et un Stack est créé avec ces trois Grids.

Auteur : Dready

Voir les sujets suivants :

Modifier la précision d'un MNT

Obstacle/masque visuel

Dans le langage ESRI on parle de ré-échantillonage.

Dans la calculatrice Raster, utiliser la fonction MapAlgebra "Resample".
NOTE : Pour calculer la valeur des nouvelles cellules, plusieurs méthode d'interpolation peuvent être choisies ; s'il s'agit de données qualitatives (ex : code correspondant à un usage des sols) il faudra impérativement utiliser la méthode NEAREST ou éventuellement SEARCH qui conserve les valeurs.

Les méthodes BILINEAR et CUBIC sont des interpolations à n'utiliser que pour des données  continues comme par exemple des altitudes (mais on peut aussi utiliser NEAREST et SEARCH avec des données continues).

Auteur : Dready

Voir les sujets suivants :

[ArcGIS 8.x] Spatial Analyst dans ArcGIS 8

[ArcGIS 8.x] Masque et reclassification

[ArcGIS 8.x] Augmenter une surface d'interpolation en raster

Plusieurs méthodes :
  • Utiliser un "masque d'analyse" :
    • Si elle n'existe pas, créer une entité géométrique (dans un nouveau shapefile et/ou une géodatabase) correspondant à la surface sur laquelle doit porter l'analyse ou le calcul. L'ajouter dans ArcMap.
    • Spatial Analyst / Options / Général / Masque d'analyse.
    • Choisir l'entité créée.
  • Jouer sur l'étendue :
    • Spatial Analyst / Options / Etendue.
    • Faire un choix dans la liste "Etendue d'analyse".

Par exemple "Identique à l'affichage" limitera tous les traitements à la zone visible à l'écran. "Intersection des entités" et "Union des entités" sont valables si l'on réalise ensuite des traitements mettant en jeu plusieurs rasters.

Quelle que soit la méthode, ne pas oublier de préciser d'aligner les cellules sur le raster source (Spatial Analyst / Options / Etendue / Aligner les cellules sur). Si vous ne le faites pas et que l'étendue spécifiée n'est pas celle de votre Grid d'origine, les cellules du Grid découpé seront décalées !

Auteur : Dready

Voir les sujets suivants :

[ArcGIS 9.x] Découpage de MNT....et du reste

[ArcGIS 8.x] Interpolation et valeur de Z pour des polygones

[ArcGIS 8.x] Spatial Analyst, densité raster...

[ArcGIS 9.x] Calcul pente de polygones

De très nombreuses analyses statistiques peuvent être réalisées sur un Grid grâce à la Calculatrice Raster. Je me contenterai ici de présenter les trois principales familles d'outils et d'indiquer les références de l'aide disponible dans ArcGIS (mais parfois bien cachée).

  • Les statistiques par zones
    Elles fournissent des statistiques pour chaque zone d'un Grid. Il faut avoir un Grid de valeurs (sur lequel seront effectuées les stats), et un Grid superposé définissant les zones.
    Chaque cellule du Grid-résultat prendra la valeur statistique (la moyenne par exemple, selon l'option choisie) de la zone à laquelle elle appartient.
    • Onglet "index" de l'aide : taper "Zonal Statistics".
    • Onglet "sommaire" de l'aide : Extension / Spatial Analyst / Map Algebra and ArcObject functional reference / Zonal Tools.
      NOTE : Il est possible de générer non pas un Grid-résultat mais une table donnant directement les principales statistiques descriptives (moyenne, écart-type, mini, maxi etc…)
    • Onglet "index" de l'aide : taper "ZonalStats".
    • Onglet "sommaire" de l'aide : Extension / Spatial Analyst / Map Algebra and ArcObject functional reference / Zonal Tools / ZonalStats.
  • Les statistiques locales
    Elles mettent en jeu plusieurs Grid superposés. Les statistiques sont effectuées à chaque emplacement de cellule en utilisant les valeurs des cellules superposées à cet emplacement. Le résultat est écrit à cet emplacement dans le Grid-résultat.
    • Onglet "index" de l'aide : taper "LocalStatistics".
    • Onglet "sommaire" de l'aide : Extension / Spatial Analyst / Map Algebra and ArcObject functional reference / Local Tools / LocalStatistics.
  • Les statistiques par fenêtres glissantes
    Elles sont calculées pour chaque cellule en prenant en compte les valeurs des cellules avoisinantes incluses dans la "fenêtre glissante". Il est possible de paramétrer la forme (carré, rectangle, cercle …) et la taille de la "fenêtre glissante".
    • Onglet "index" de l'aide : taper " Neighborhood tools".
    • Onglet "sommaire" de l'aide : Extension / Spatial Analyst / Map Algebra and ArcObject functional reference / Neightborhood Tools.

 

Auteur : Dready

Voir le sujet suivant :

[ArcGIS 8.x] Calcul d'une aire à partir d'un raster

Pour calculer l'aire d'une zone, on peut passer par la Calculatrice Raster :

  • Spatial analyst / Calculatrice Raster
  • Utilser la fonction MapAlgebra : ZonalArea

La valeur de chaque cellule du Grid-résultat est l'aire totale de la zone à laquelle appartient la cellule.

L'aire est exprimée dans l'unité carrée courante du bloc de données.

Auteur : Dready

Dans les différents chemins d'accès indiqués dans les réponses, "Spatial Analyst" correspond au menu déroulant de la barre d'outil Spatial Analyst (à activer dans ArcMap ou ArcCatalog Outil / Extensions).

La plupart du temps, seul le nom des fonctions MapAlgebra utilisées dans la Calculatrice Raster sera donné dans cette FAQ. Pour la syntaxe et les paramètres de ces fonctions, l'utilisateur devra se référer à l'aide d'ArcGIS en tapant le nom de la fonction dans les onglets "Index" ou "Rechercher" de l'aide.

Toutefois, dans certains cas l'expression est directement donnée dans cette FAQ ; il est alors impératif de bien respecter la casse, les espaces et les crochets (et de remplacer des expressions du type "nom du raster" par le nom de votre raster évidemment …).
NOTE : Il est souvent plus simple et plus sûr de Copier-coller la syntaxe depuis l'aide plutôt que de la retaper dans la Calculatrice Raster.

Auteur : Dready

Pour identifier et matérialiser les régions d'un Grid, on peut passer par la Calculatrice Raster :

  • Spatial Analyst / Calculatrice Raster.
  • Utilser la fonction MapAlgebra : RegionGroup.

Chaque région est identifiée par un code unique.

La valeur de chaque cellule du Grid-résultat est le code de la région à laquelle appartient la cellule.

Auteur : Dready

La calculatrice Raster est une boîte de dialogue accessible par la barre d'outils de Spatial Analyst. Elle permet d'écrire et d'exécuter des commandes (appelées "expressions") afin de réaliser divers traitements et analyses sur un ou plusieurs Grids (comparaisons, opérations algébriques, statistiques…).

Le langage utilisé est appellé "Map Algebra". On peut découvrir les différentes fonctions disponibles ainsi que leur syntaxe en consultant l'aide : dans l'arborescence de l'onglet "Sommaire" suivre Extension / Spatial Analyst / Map Algebra and ArcObject functional reference.

On peut aussi aller voir :

Geoprocessing / Geoprocessing tool reference / Spatial Analyst ToolBox 

Par défaut le résultat (appellé "Grid-résultat") d'une analyse ou d'un traitement effectué est un Grid temporaire stocké à l'adresse C:\Documents and Settings\CurrentUser\Local Settings\Temp\. 

Ce grid temporaire apparaît dans la table des matières d'ArcMap sous le nom "Calcul". Il peut-être rendu permanent par un clic-droit / rendre permanent (Voir aussi Comment paramétrer le répertoire d'enregistrement des Grids-résultats ?).

Pour certaines commandes courantes, ESRI a développé des interfaces de type boîte de dialogue qui évitent d'avoir à taper une expression dans la Calculatrice Raster. C'est le cas notamment des fonctions d'interpolations, de calculs topographiques (pente, exposition…), de discrétisation des données etc. La plupart de ces boîtes de dialogues sont accessibles dans la barre d'outil de Spatial Analyst, mais certaines nécessitent de télécharger des plug-ins (calcul de bassins-versants par exemple).

NOTE : L'exécution de commandes par la Calculatrice Raster plutôt que par les boîtes de dialogues permet souvent d'avoir la main sur de plus nombreux paramètres.

Auteur : Dready

Voir les sujets suivants :

[ArcGIS 8.x] Spatial Analyst dans ArcGIS 8

[ArcGIS 9.x] Convertir un shapefile en raster

Plusieurs méthodes :

  • Par une boîte de dialogue :

Spatial Analyst / Convertir / Raster vers entité ou Entité vers raster.

  • Par la calculatrice raster :

Selon que l'on souhaite obtenir un shape ponctuel, linéaire ou surfacique, on utilisera les fonctions MapAlgebra suivantes : GridPointShape ou GridLineShape ou GridShape.

Auteur : Dready

Le Grid est un format de raster développé par ESRI. Comme tous les rasters il s'agit d'une grille, c'est à dire d'une matrice de cellules (ou pixels) disposées en lignes et en colonnes. Un Grid est codé en 32 bits ce qui permet d'avoir plus de 4 milliards de possibilités de valeur pour chaque cellule alors qu'un codage 24 bits n'en offre que 16 millions (exemple du tiff).

Les valeurs des cellules d'un Grid peuvent être des nombres entiers, on parle alors de "raster entier (ou "integer" ) ou des nombre réels (= à virgule), c'est alors un "raster flottant (ou "float").
De très nombreuses opérations et analyses peuvent être réalisées sur un Grid ou entre plusieurs Grids (comparaison, opérations algébriques, statistiques…) grâce à la calculatrice raster.
Le format Grid est généralement utilisé pour représenter des informations qualitatives via un codage (par exemple type d'occupation du sol) ou quantitatives continues (par exemple l'altitude, on parle alors d'un Modèle Numérique de Terrain (MNT) de type raster ou maillé).
A noter que bien qu'un Grid ne soit pas un raster multibandes (comme le sont la plupart des images tiff avec leurs trois canaux RVB), il est possible de créer une "pile de Grids" ou Stack qui se comporteront comme un raster multibandes.
Voir aussi le sujet suivant : Notion de grid (mais attention ce sujet traite de la notion générale de grille (qui se traduit en anglais par "grid") et non pas du format Grid spécifique à ESRI.).

Auteur : Dready

Voir les sujets suivants :

[ArcGIS 9.x] Découpage de MNT....et du reste

[ArcGIS 8.x] Découper un Grid

  • Définir un masque d'analyse ou paramétrer l'étendue selon le découpage souhaité (voir Comment limiter une analyse/un calcul à une certaine surface ?).
  • Dans la Calculatrice Raster, taper : [nom du raster à découper]
  • Cliquer sur "Evaluer"
  • Enregistrer le résultat du découpage : dans la table des matières, clic droit sur la couche "calcul" qui vient d'apparaître / Rendre permanent. (voir "Comment paramétrer le répertoire d'enregistrement des Grids-résultats ?")

NOTE : Lorsque vous enregistrez votre raster découpé, assurez-vous qu'il n'y a aucun caractère spécial, accent ou espace dans le chemin du répertoire, sans quoi vous risquez de ne pas pouvoir ouvrir votre nouveau raster (voir le sujet "Découpage raster").

Auteur : Dready

C'est une manière de lier entre eux plusieurs Grids. Le stack agit un peu comme un catalogue d'image puisqu'il ne fait que stocker les références aux Grids qu'il utilise. Ceux-ci doivent être tous situés dans le même répertoire, et si l'un d'eux est enlevé, le Stack ne pourra plus être utilisé.Un Stack peut contenir jusqu à 20 Grids.
Par défaut, l'affichage d'un Stack dans ArcMap se fait sous forme d'une image multibandes à trois canaux (RVB). Il est possible de n'afficher qu'un ou deux canaux (mais pas plus) et aussi de définir quel Grid du Stack est affecté à quel canal ; pour cela, clic-droit sur le Stack dans la table des matières/Propriétés/Symbologie.

A noter que si les Grids composant le Stack ne sont pas exactement superposables, seules les parties communes aux Grids utilisés dans les différents canaux affichés seront visibles. Ainsi, si aucun des Grids ne se superposent, le seul moyen de voir quelque chose apparaitre à l'écran est de n'afficher qu'un seul canal ; on verra alors le Grid qui lui est affecté.
Mais l'intérêt d'un Stack est surtout de pouvoir obtenir des statistiques globales sur les Grids qui le composent (le coefficient de corrélations entre chaque Grid par exemple ; ou encore la moyenne des valeurs des cellules de chaque Grid etc.) ; pour cela on utilisera la fonction STACKSTATS dans la calculatrice raster.

Cela se révèlera par exemple très pratique pour comparer des données météorologiques à différentes dates sur une même zone.

Mais attention, les statistiques ne seront calculées que pour les cellules communes à l'ensemble des Grids composant le Stack.

Auteur : Dready

Voir le sujet suivant :

[ArcGIS 8.x] Structures conditionnelles dans la calculatrice raster

Dans la Calculatrice Raster on peut construire des expressions complexes en emboîtant plusieurs expressions dans des structures conditionnelles grâce à l'opérateur "Con" (non, non c'est pas une insulte, c'est le début de "Conditional").

Syntaxe :

Con(condition, expression vraie, expression fausse) 

où : 

condition = expression traduisant la condition à vérifier. 

expression vraie = expression donnant la valeur à attribuer aux cellules pour lesquelles la condition est vérifiée. 

expression fausse = expression donnant la valeur à attribuer aux cellules pour lesquelles la condition n'est pas vérifiée.

Exemple : 

Con([raster1]>4, 10, 100) 

Dans cet exemple, les cellules du Grid-résultat prendront la valeur 10 lorsque les cellules du Grid-origine valent plus que 4, et elles prendront la valeur 100 dans les autres cas.
NOTE : Cet exemple est volontairement simpliste et ne présente aucun intérêt fonctionnel (on aurait pu utiliser l'assistant de reclassification de Spatial Analyst pour faire la même chose), mais il faut penser que l'on peut utiliser toutes les fonctions MapAlgebra pour construire les condition, expression vraie et expression fausse ; et que l'on peut également imbriquer plusieurs conditions les unes dans les autres...

C'est en fait là que commence le monde de la véritable analyse raster … Les possibilités sont quasi infinies et l'outil terriblement puissant. Il ne vous reste alors plus qu'à franchir la porte de la programmation pour devenir un véritable … Spatial Analyst … 

<sonnerie de réveil> Ouhla pardon ! Je m'égare !

Auteur : Dready

Dans un Grid, une région est constituée par un ensemble de cellules de même valeur et jointives.

Une région appartient à une zone.

Spatial Analyst peut considérer deux types de jointures pour définir les régions :

  • Bi-directionnelle (haut et bas), soit 4 jointures maximum pour chaque cellule.
  • Tri-directionnelle (haut, bas, diagonal), soit 8 jointures maximum pour chaque cellule.

Exemple :

Si l'on considère les jointures bi-directionnelles, les cellules claires composent trois régions.

Si l'on considère les jointures tri-directionnelles, les cellules claires composent deux régions.

Voir aussi : Comment identifier les régions d'un Grid ?

Auteur : Dready

Voir le sujet suivant :

[ArcGIS 8.x] Conversion d'un raster en entités zonales

Pour convertir un raster flottant en un raster entier on peut utiliser la fonction "Int" dans la Calculatrice Raster :

Spatial Analyst / Calculatrice Raster : Int([nom du raster])
Pour convertir un raster entier en un raster flottant on peut utiliser la fonction Float dans la Calculatrice Raster :

Spatial Analyst / Calculatrice Raster : Float([nom du raster])

Auteur : Dready

Dans un Grid, une zone est constituée d'un ensemble de cellules ayant une valeur égale, qu'elles soient jointives ou non.

Exemple :

Exemple de zone de Grid

Les cellules claires appartiennent à la même zone bien qu'elles ne se touchent pas toutes.

Une zone est composée d'une ou plusieurs régions.