Somme pondérée (ArcGIS Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

Synthèse

Superpose plusieurs rasters en multipliant chacun d'eux par leur poids et en les additionnant.

En savoir plus sur le fonctionnement de l’outil Somme pondérée

Illustration

Illustration de l’outil Somme pondérée
Dans l’illustration, les valeurs des cellules sont multipliées par leur facteur de pondération, puis les résultats sont additionnés pour créer le raster en sortie. Considérons par exemple la cellule supérieure gauche. Les valeurs pour les deux entrées deviennent (2,2 * 0,75) = 1,65 et (3 * 0,25) = 0,75. La somme de 1,5 et de 0,75 est 2,4.

Utilisation

  • Pour ajouter plusieurs rasters simultanément, le plus simple est d’indiquer plusieurs rasters en entrée et de définir toutes les pondérations sur 1.

  • Les rasters en entrée peuvent être de type entier ou à virgule flottante.

  • Les valeurs de pondération peuvent être n’importe quelle valeur décimale positive ou négative. Cette valeur n’est pas restreinte à un pourcentage relatif et n’est pas nécessairement égale à 1,0.

  • La pondération sera appliquée au champ spécifié pour le raster en entrée. Les champs peuvent être de type Entier court, Entier long, Double ou Flottant.

  • Par défaut, cet outil tire parti des processeurs à plusieurs cœurs. Le nombre maximal de cœurs pouvant être utilisés s’élève à quatre.

    Pour utiliser moins de cœurs, utilisez le paramètre d’environnement Parallel Processing Factor (Facteur de traitement parallèle).

Paramètres

ÉtiquetteExplicationType de données
Rasters en entrée

La table des sommes pondérées vous permet d’appliquer différentes pondérations à des rasters en entrée individuels avant qu’ils soient additionnés.

  • Raster : le raster à pondérer.
  • Champ : le champ du raster à utiliser pour la pondération.
  • Pondération : la valeur de pondération par laquelle multiplier le raster. Il peut s’agir de n’importe quelle valeur décimale positive ou négative.
WSTable

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Raster pondéré en sortie.

Il sera de type à virgule flottante.

Raster

WeightedSum(in_rasters)
NomExplicationType de données
in_rasters

L’outil Somme pondérée superpose plusieurs rasters en multipliant chacun d’eux par leur pondération et en les additionnant.

Une classe Overlay permet de définir la table. L’objet WSTable permet de spécifier une liste Python de rasters en entrée et de les pondérer en conséquence.

L’objet a la forme suivante :

  • WSTable(weightedSumTable)

WSTable

Valeur renvoyée

NomExplicationType de données
out_raster

Raster pondéré en sortie.

Il sera de type à virgule flottante.

Raster

Exemple de code

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

Cet exemple crée un raster d’adéquation pour la localisation d’une station de sports d’hiver en combinant plusieurs rasters et en appliquant des facteurs de pondération appropriés.

import arcpy
from arcpy import env  
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"

# Execute WeightedSum
outWeightedSum = WeightedSum(WSTable([["snow", "VALUE", 0.25], ["land", "VALUE",0.25],
									  ["soil", "VALUE", 0.5]]))
outWeightedSum.save("C:/sapyexamples/output/outwsum")
Exemple 2 d’utilisation de la fonction WeightedSum (script autonome)

Cet exemple crée un raster d’adéquation pour la localisation d’une station de sports d’hiver en combinant plusieurs rasters et en appliquant des facteurs de pondération appropriés.

# Name: WeightedSum_Ex_02.py
# Description: Overlays several rasters multiplying each by their given
#    weight and summing them together.
# 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
inRaster1 = "snow"
inRaster2 = "land"
inRaster3 = "soil"
WSumTableObj = WSTable([[inRaster1, "VALUE", 0.25], [inRaster2, "VALUE", 0.25],
                        [inRaster3, "VALUE", 0.5]])

# Execute WeightedSum
outWeightedSum = WeightedSum(WSumTableObj)

# Save the output 
outWeightedSum.save("C:/sapyexamples/output/weightsumout")