Redimensionner par fonction (ArcGIS Spatial Analyst)
Récapitulatif
Permet de redimensionner les valeurs du raster en entrée en appliquant une fonction de transformation sélectionnée, puis en transformant les valeurs résultantes sur une échelle d'évaluation continue spécifiée.
Utilisation
Le principal avantage de cet outil par rapport aux autres méthodes de reclassification est le niveau de contrôle accru sur le processus de reclassification des valeurs en entrée :
- Il accepte et traite directement des valeurs en entrée continues sans exiger qu'elles soient groupées en catégories.
- Il permet l'application aux données en entrée de fonctions linéaires et non linéaires continues.
- Il redimensionne les valeurs en entrée sur une échelle d'évaluation continue à virgule flottante.
Le vocabulaire essentiel concernant cet outil permet de mieux comprendre les explications suivantes.
-
En théorie, le redimensionnement des données en entrée sur une échelle continue est un processus à deux étapes :
- Appliquez la fonction spécifiée aux valeurs du raster en entrée.
- Transformez de façon linéaire les valeurs de la fonction sur une échelle d'évaluation spécifiée. Sur une échelle d'évaluation croissante, les valeurs minimum et maximum de la fonction sont définies respectivement sur les valeurs minimum (Echelle d'origine) et maximum (Echelle de destination) de l'échelle d'évaluation. Toutefois, l'échelle d'évaluation peut également être transformée en échelle décroissante.
L'illustration suivante présente un exemple de diagramme de la fonction Puissance qui permet d'expliquer les concepts généraux et la terminologie associés à l'application d'une fonction de transformation.
Dans cet exemple, la plage des données en entrée est comprise entre 3 000 et 5 000. La valeur la plus faible du raster en entrée est définie sur celle du Seuil inférieur et la plus élevée sur celle du Seuil supérieur (sur l'axe des x), la fonction Puissance étant contrainte (ajustée) entre les seuils. Les paramètres de contrôle de forme définissent la forme de la fonction, à savoir Translation en entrée et Exposant pour la fonction Puissance, ce qui vous permet de déterminer le point de départ de la fonction et son degré d'ascension. Les valeurs résultantes de la fonction Puissance sont alors transposées de façon linéaire sur l'échelle d'évaluation pour attribuer les valeurs en sortie. Dans le diagramme ci-dessus, une échelle d'évaluation comprise entre 1 et 10 a été définie à l'aide des paramètres Echelle d'origine et Echelle de destination, comme l'indique l'axe des y.
Par défaut, la valeur minimum du Raster en entrée est attribuée au Seuil inférieur et la valeur maximum au Seuil supérieur.
Par défaut, si cela est possible, la fonction spécifiée est contrainte (ajustée) entre les seuils inférieur et supérieur, à l'aide des valeurs du Raster en entrée. C'est le type de fonction de transformation utilisé qui détermine comment la fonction est ajustée entre les seuils inférieur et supérieur. L'utilisation d'une fonction est décrite ci-dessous :
- Par définition, les fonctions Linéaire et Linéaire symétrique sont ajustées, car les valeurs minimum et maximum des fonctions sont définies sur les valeurs minimum (seuil inférieur) et maximum (seuil supérieur) du Raster en entrée.
- Une version ajustée des fonctions Exponentiel et Logarithme est appliquée aux valeurs du Raster en entrée.
- Le plus grand nombre possible de paramètres est extrait du Raster en entrée (par exemple, Centre, Facteur et Translation en entrée) afin d'ajuster au mieux les fonctions Gaussienne, Proche, Petite, MSSmall, Grande, MSLarge, Puissance, Croissance logistique et Désintégration logistique.
-
Lorsque les valeurs des paramètres Seuil inférieur et Seuil supérieur sont modifiées, on remarque les interactions suivantes :
- Si une cellule en entrée contient une valeur inférieure au Seuil inférieur, elle se verra attribuer la valeur du paramètre Valeur inférieure au seuil.
- Si une cellule en entrée contient une valeur supérieure au Seuil supérieur, elle se verra attribuer la valeur du paramètre Valeur supérieure au seuil.
- Toutes les valeurs des cellules, comprises entre les Seuil inférieur et Seuil supérieur et incluant ces derniers, sont attribuées à l'échelle d'évaluation correspondante selon la valeur de la fonction, f(x). Dans certains cas, si un paramètre de contrôle de forme (Ecart et Exposant, par exemple) est modifié, il est possible qu'aucune cellule du raster en sortie ne soit affectée aux valeurs Echelle d'origine ou Echelle de destination.
Par défaut, les paramètres définissant la forme de la fonction (Ecart ou Facteur de base, par exemple) sont calculés en vue d'ajuster (contraindre) au mieux la fonction aux valeurs minimum et maximum du Raster en entrée. Toutefois, vous pouvez modifier les paramètres de contrôle de forme pour affiner l'ajustement de la fonction à l'interaction des préférences du phénomène avec les valeurs du critère. Lorsqu'une valeur est spécifiée pour un paramètre de contrôle de forme, la fonction résultante, ainsi que les valeurs des seuils inférieur et supérieur, permettent de redimensionner les valeurs du Raster en entrée. La version ajustée de la fonction n'est pas utilisée.
Les valeurs des paramètres Echelle d'origine et Echelle de destination définissent les valeurs supérieures et inférieures de l'échelle d'évaluation continue. La valeur la plus faible de la fonction est attribuée au paramètre Echelle d'origine et la valeur la plus élevée est attribuée au paramètre Echelle de destination. Toutes les valeurs intermédiaires de la fonction sont attribuées aux valeurs d'évaluation appropriées.
L'échelle d'évaluation peut être définie pour comprendre des valeurs faibles à élevées (1 à 10, par exemple) ou élevées à faibles (10 à 1, par exemple).
-
Les valeurs des paramètres Valeur inférieure au seuil et Valeur supérieure au seuil sont attribuées à toutes les cellules dont la valeur en entrée est inférieure et supérieure aux seuils, respectivement. Ces valeurs sont attribuées directement au raster final en sortie et ces cellules ne sont pas prises en compte dans le traitement de la fonction de transformation.
Lorsque les valeurs de Seuil inférieur ou de Seuil supérieur sont modifiées dans la boîte de dialogue de l'outil, les paramètres de contrôle de forme (qui définissent la forme de la fonction, à savoir Ecart ou Facteur de base, par exemple) sont automatiquement recalculés. Toutefois, lorsqu'un paramètre de contrôle de forme est modifié, les valeurs de Seuil inférieur et de Seuil supérieur ne sont pas modifiées automatiquement. Si les valeurs de Seuil inférieur ou de Seuil supérieur sont modifiées par la suite, le paramètre de contrôle de forme modifié (et tout autre paramètre de contrôle de forme associé) conserve la nouvelle valeur est n'est pas recalculé.
Les paramètres de contrôle de forme de la fonction (par exemple, Ecart ou Facteur de base), ainsi que les seuils inférieur et supérieur, sont basés sur des statistiques calculées pour les paramètres d'environnement étendue, taille de cellule et raster de capture de traitement en cours. Si aucune de ces valeurs n'est définie, les statistiques associées à la totalité de l'étendue du raster en entrée sont utilisées.
Dans la boîte de dialogue de l'outil, si le raster en entrée ne contient aucune statistique valide pour calculer les paramètres de contrôle de forme ou pour déterminer les seuils, ces paramètres seront vides et vous recevrez un message d'avertissement. Cliquez alors sur le bouton Calculer les statistiques pour recalculer les statistiques en fonction des paramètres d'environnement actuels et générer les paramètres. Par défaut, la valeur de Seuil inférieur est la valeur minimum dans l'étendue de traitement et la valeur de Seuil supérieur est la valeur maximum, les valeurs des paramètres de contrôle de forme étant correctement déterminés. Il est possible que dans les conditions suivantes, les statistiques ne soient pas valides :
- Le raster de capture ou la taille de la cellule et l'étendue de traitement de l'environnement sont définis avant l'ouverture de la boîte de dialogue de l'outil.
- Le raster en entrée ne contient pas de statistiques.
Dans la boîte de dialogue de l'outil, si l'étendue de traitement de l'environnement, la taille de cellule ou le raster de capture sont modifiés après la spécification d'un raster en entrée et d'une fonction, les paramètres de la fonction peuvent ne contenir aucune valeur. Cliquez sur le bouton Calculer des statistiques pour générer de nouveau les paramètres et afficher les valeurs de la nouvelle étendue. Si les paramètres Seuil inférieur et Seuil supérieur ou tout autre paramètre de contrôle de forme sont modifiés par la spécification d'une valeur, l'outil remarquera que ces paramètres ont été modifiés. Si l'étendue de traitement est modifiée, les valeurs de ces paramètres resteront identiques lorsque vous aurez cliqué sur le bouton Calculer des statistiques.
Plusieurs fonctions peuvent être appliquées à diverses plages du raster en entrée. Pour ce faire, les fonctions peuvent être concaténées en exécutant plusieurs fois l'outil Redimensionner par fonction, en spécifiant dans un premier temps une fonction de transformation pour une certaine plage de valeurs en entrée, puis en relançant l'outil en appliquant une autre fonction à une autre plage de valeurs. Les rasters en sortie obtenus sont ensuite combinés. Voici un exemple :
- Exécutez l'outil Redimensionner par fonction en appliquant une fonction linéaire aux valeurs en entrée comprises entre 1 500 et 3 200 et définissez sur 0 les valeurs supérieures et inférieures aux seuils.
- Relancez l'outil Redimensionner par fonction sur le même raster en entrée en appliquant cette fois une fonction Exponentiel aux valeurs comprises entre 3 200 et 5 000, puis définissez sur 0 les valeurs supérieures et inférieures aux seuils.
- Combinez les deux rasters en sortie résultants à l'aide de l'outil Plus.
Syntaxe
Paramètre | Explication | Type de données |
in_raster |
Raster en entrée à redimensionner. | Raster Layer |
transformation_function (Facultatif) |
Spécifie la fonction continue pour transformer le raster en entrée. Les classes de fonctions de transformation permettent de spécifier le type de fonction de transformation. Les types de classes de transformation sont les suivants :
Le choix d'une fonction de transformation est déterminé par la capacité de cette dernière à capturer au mieux l'interaction de la préférence du phénomène avec les valeurs en entrée. Pour mieux comprendre comment les seuils inférieur et supérieur influencent les valeurs en sortie, Pour plus d'informations sur les paramètres qui déterminent les seuils, consultez la rubrique Interaction des seuils inférieur et supérieur sur les valeurs en sortie pour l'outil Redimensionner par fonction. Voici les formes des classes de fonctions de transformation :
La fonction de transformation par défaut est TfMSSmall. Parmi les paramètres par défaut des fonctions de transformation, on compte les suivants :
| Transformation function |
from_scale (Facultatif) |
Valeur de départ de l'échelle d'évaluation de la sortie. La valeur from_scale ne peut pas être égale à la valeur to_scale. La valeur from_scale peut être inférieure ou supérieure à la valeur to_scale (1 à 10 ou 10 à 1, par exemple). La valeur doit être positive et elle peut représenter un entier ou une valeur double. La valeur par défaut est 1. | Double |
to_scale (Facultatif) |
Valeur de fin de l'échelle d'évaluation de la sortie. La valeur to_scale ne peut pas être égale à la valeur from_scale. La valeur to_scale peut être inférieure ou supérieure à la valeur from_scale (1 à 10 ou 10 à 1, par exemple). La valeur doit être positive et elle peut représenter un entier ou une valeur double. La valeur par défaut est 10. | Double |
Valeur renvoyée
Nom | Explication | Type de données |
out_raster |
Raster en sortie redimensionné. La sortie sera un raster à virgule flottante avec des valeurs comprises entre (ou incluant) les valeurs d'évaluation from_scale et to_scale. | Raster |
Exemple de code
Cet exemple permet de créer un raster dont les valeurs sont redimensionnées à l'aide de la fonction MSSmall.
import arcpy
from arcpy.sa import *
from arcpy import env
env.workspace = "c:/sapyexamples/data"
outRescale = RescaleByFunction("elevation", TfMSSmall(1.25, 1.5, "#", "#", 4000, "NoData"), 1, 10)
outRescale.save("c:/sapyexamples/rescaletfms1")
Illustre l'utilisation de cet outil sur des données d'altitude, où les emplacements présentant des valeurs d'altitude faibles font l'objet d'une préférence bien plus élevée que ceux dont l'altitude est plus élevée. Les emplacements situés au-delà de 4 000 mètres sont définis sur NoData.
# Name: TfMSSmall_Ex_02.py
# Description: Rescales input raster data using a MSSmall function and
# transforms the function values onto a specified evaluation scale.
# Requirements: Spatial Analyst Extension
# Author: esri
# 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"
# Create the TfMSSmall object
meanmult = 1.25
stdmult = 1.5
lowerthresh = "#"
valbelowthresh = "10"
upperthresh = 4000
valabovethresh = "NoData"
myTfFunction = TfMSSmall(meanmult, stdmult, lowerthresh, valbelowthresh, upperthresh, valabovethresh)
# Set evaluation scale
fromscale = 1
toscale = 10
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute RescaleByFunction
outRescale = RescaleByFunction(inRaster, myTfFunction, fromscale, toscale)
# Save the output
outRescale.save("c:/sapyexamples/rescaletfms2")