Extraction par attributs (ArcGIS Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Synthèse

Extrait les cellules d’un raster en fonction d’une requête logique.

Illustration

Illustration de l’outil Extraction par attributs
OutRas = ExtractByAttributes(InRas1, "Value > 0")

Utilisation

  • Les éventuels attributs supplémentaires du raster en entrée seront inclus tels quels dans la table attributaire du raster en sortie. Selon la propriété en cours d’enregistrement, il peut être nécessaire de recalculer certaines valeurs attributaires.

  • Lorsqu’un raster multicanal est spécifié comme valeur dans le champ Input Raster (Raster en entrée) (in_raster dans Python), tous les canaux sont utilisés.

    Pour traiter une sélection de canaux d’un raster multicanal, créez d’abord un jeu de données raster composé de ces canaux spécifiques à l’aide de l’outil Canaux composites. Ensuite, utilisez le résultat comme valeur dans le champ Input Raster (Raster en entrée) (in_raster dans Python).

    Le format en sortie par défaut est un raster de géodatabase. Si le format en sortie est une pile de grilles Esri, le nom de la pile ne peut pas commencer par un chiffre, contenir des espaces ni comporter plus de neuf caractères.

  • Si la clause Where est évaluée comme étant vraie, la valeur en entrée initiale est renvoyée pour l’emplacement de la cellule. Lorsqu’elle est évaluée comme étant fausse, la valeur NoData est attribuée à l’emplacement de la cellule.

  • La clause Where utilise une requête SQL. Reportez-vous aux rubriques suivantes pour en savoir plus sur la création des requêtes :

  • Pour utiliser une clause {where_clause} dans Python, celle-ci doit être placée entre guillemets. Par exemple, "Value > 5000".

    Vous pouvez consulter l’aide pour obtenir plus d’informations sur la spécification d’une requête dans Python.

  • Lorsque vous indiquez un élément autre que Value du raster en entrée dans la requête, la valeur en entrée initiale est renvoyée pour l’emplacement de la cellule.

  • Si le raster en entrée est un nombre entier, le raster en sortie sera un nombre entier. Si l'entrée est à virgule flottante, la sortie sera également à virgule flottante.

  • Pour plus d’informations sur les environnements de géotraitement qui s’appliquent à cet outil, reportez-vous à la rubrique Environnements d’analyse et Spatial Analyst.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Raster en entrée à partir duquel les cellules seront extraites.

Raster Layer
Clause Where

Expression logique qui sélectionne un sous-ensemble de cellules raster.

La clause Where suit la forme générale d’une expression SQL. Elle peut être saisie directement, par exemple, VALUE > 100, en cliquant sur le bouton du mode Édition SQL Requête SQL. Si vous êtes en mode Modifier la clause Modifier la clause, vous pouvez commencer à créer l’expression en cliquant sur le bouton Ajouter une clause.

SQL Expression

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Raster en sortie contenant les valeurs de cellule extraites du raster en entrée.

Raster

ExtractByAttributes(in_raster, where_clause)
NomExplicationType de données
in_raster

Raster en entrée à partir duquel les cellules seront extraites.

Raster Layer
where_clause

Expression logique qui sélectionne un sous-ensemble de cellules raster.

L’expression suit la forme générale d’une expression SQL. Un exemple de where_clause est "VALUE > 100".

SQL Expression

Valeur renvoyée

NomExplicationType de données
out_raster

Raster en sortie contenant les valeurs de cellule extraites du raster en entrée.

Raster

Exemple de code

Exemple 1 d’utilisation de la fonction ExtractByAttributes (fenêtre Python)

Dans cet exemple, on extrait des cellules d’un raster selon une requête logique qui détermine si l’élévation est supérieure à 1 000 mètres.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
attExtract = ExtractByAttributes("elevation", "VALUE > 1000") 
attExtract.save("c:/sapyexamples/output/attextract")
Exemple 2 d’utilisation de la fonction ExtractByAttributes (script autonome)

Dans cet exemple, on extrait des cellules d’un raster selon une requête logique qui détermine si l’élévation est supérieure à 1 000 mètres.

# Name: ExtractByAttributes_Ex_02.py
# Description: Extracts the cells of a raster based on a logical query. 
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "elevation"
inSQLClause = "VALUE > 1000"

# Execute ExtractByAttributes
attExtract = ExtractByAttributes(inRaster, inSQLClause) 

# Save the output 
attExtract.save("c:/sapyexamples/output/attextract02")