Disponible avec une licence Spatial Analyst.
Les classes permettent de créer des objets, souvent nommés instances. Une fois l’objet instancié, ses propriétés et méthodes peuvent être utilisées. Les classes Spatial Analyst, telles que les classes Voisinage et Classification, sont souvent utilisées comme raccourcis vers des paramètres d’outil de géotraitement complets qui présenteraient autrement un équivalent de chaîne plus compliqué.
Il est beaucoup plus facile de créer et de gérer des paramètres par l’intermédiaire des classes que par des chaînes. L’utilisation des classes pour les paramètres présente les avantages suivants :
- Les classes fournissent de l'aide et des fonctions de remplissage automatique pour les différents arguments du paramètre.
- Vous pouvez interroger chaque argument du paramètre à partir de l'objet obtenu.
- Vous pouvez modifier chaque argument de la classe pour effectuer d’autres analyses.
Pour plus d’informations sur l’utilisation des classes Spatial Analyst dans des outils Algèbre spatiale, consultez les rubriques suivantes :
- Créer des classes
- Interroger des classes
- Modifier des arguments dans des classes
- Utiliser des classes dans Python
Voici des exemples d'applications pouvant facilement être implémentées à l'aide des classes :
- Déterminer le type de classe ou la valeur d'un argument individuel :
Par exemple, l'interrogation du type de rayon en entrée et de la distance de recherche peut permettre de déterminer la puissance à appliquer à une interpolation de pondération par l'inverse de la distance.
- Modifier la valeur en entrée :
Par exemple, vous pouvez modifier la valeur d’une classe en entrée dans un modèle d’adéquation en fonction d’une saisie publique dans un forum pour explorer l’impact de différents scénarios dans la sortie sans recréer la table de classification.
- Pour effectuer une analyse de la sensibilité :
Par exemple, vous pouvez changer de manière itérative les valeurs To (À) et From (De) dans une table de classification pour un modèle d’adéquation par incréments de 5 pour cent pour explorer comment de légers changements à un critère d’entrée influenceront la sortie.
- Pour effectuer une analyse des erreurs :
Par exemple, vous pouvez exécuter un modèle plusieurs fois tout en changeant de façon aléatoire les arguments des paramètres pour explorer l'impact potentiel des erreurs et de l'incertitude dans les données.
Utiliser des classes Spatial Analyst
Certains paramètres de l’outil de géotraitement Spatial Analyst utilisent un objet de classe en entrée. En général, les paramètres sont définis comme de simples chaînes, noms de jeux de données, chemins, mots-clés, noms de champs, tolérances et noms de domaines. Certains paramètres sont plus complexes et définissent une série de propriétés ou de valeurs. Plutôt que d’utiliser de longues chaînes de texte compliquées pour définir ces paramètres, vous pouvez utiliser des classes (comme des voisinages ou des tables de classification). Comprendre les exigences d'entrée pour un constructeur de classe vous permet de créer, interroger, modifier et enregistrer les objets de classe plus facilement.
Il existe différents types d’entrée utilisés en tant qu’arguments pour les classes Spatial Analyst :
- Scalaires
- Chaînes
- Liste Python ou liste de listes
- Autres classes
Pour une meilleure lisibilité, il est recommandé de définir la classe sur une variable et d’utiliser la variable dans l’outil. Par exemple :
Neighborhood = NbrRectangle(5, 5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MEAN")
Toutefois, si vous préférez, la classe peut être définie dans le paramètre de l'outil.
outRas = FocalStatistics("inRas", NbrRectangle(5, 5, "MAP"), "MEAN")
Classes créées avec un nombre fixe d'entrées
Certaines classes sont construites avec un nombre fixe d’arguments de chaîne ou scalaires. Par exemple, pour créer un voisinage avec un rayon de cinq unités de la carte :
Neighborhood = NbrCircle(5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MAXIMUM")
Chacune de ces classes a une position prédéterminée pour les arguments en entrée. Ces classes peuvent être regroupées en fonction du paramètre d'outil qu'elles traitent :
- Classes Flou
FuzzyGaussian, FuzzyLarge, FuzzyLinear, FuzzyMSLarge, FuzzyMSSmall, FuzzyNear, FuzzySmall
- Classes Facteur horizontal
- Classes KrigingModel
- Classes Voisinage
NbrAnnulus, NbrCircle, NbrIrregular, NbrRectangle, NbrWedge, NbrWeight
- Classes Rayon
- Classes Durée
TimeWithinDay, TimeSpecialDays, TimeMultipleDays, TimeWholeYear
- Classes de la fonction de transformation
TfExponential, TfGaussian, TfLarge, TfLinear, TfLogarithm, TfLogisticDecay, TfLogisticGrowth, TfMSLarge, TfMSSmall, TfNear, TfPower, TfSmall, TfSymmetricLinear
- Classes Facteur vertical
VfBinary, VfLinear, VfSymLinear, VfInverseLinear, VfSymInverseLinear, VfCos, VfSec, VfCosSec, VfSecCos, VfTable
Classes créées à l'aide de listes Python
Certaines classes sont plus complexes, telles que les classes TopoBoundary, TopoLake et TopoStream. Celles-ci exigent une série d’entrées et sont utilisées pour les paramètres dans l’outil Topo vers raster. Les séries d'entrées sont définies dans une liste Python et le nombre d'entrées dans une liste dépend de la situation (en d'autres termes, le nombre d'entrées requis par l'analyse).
Par exemple, les constructeurs de la classe TopoBoundary attendent une liste contenant une ou plusieurs entrées inFeature. La liste, identifiée comme inFeatures, devient une propriété de l’objet obtenu. Pour interroger ou manipuler des éléments de la liste inFeatures, traitez chaque élément comme une entrée dans la liste (voir Interroger des classes).
inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])
Classes créées à l'aide de listes dans des listes
Avec d’autres outils, la situation spécifique détermine le nombre d’entrées qui seront entrées dans un paramètre. Ce type de paramètre en entrée est généré depuis une classe créée à l’aide de listes dans une liste. Il existe trois groupes d'outils dont les classes sont créées à partir de listes au sein de listes :
- Tables de reclassement (RemapRange, RemapValue)
- Tables de reclassement pondérées (superposition et somme) (WOTable, WSTable)
- Classes Topo (sous-ensemble) (TopoContour, TopoPointElevation, TopoSink)
Par exemple, les classes de classification prévoient une table en entrée. La table est modélisée par une liste d’enregistrements dénotant les valeurs startValue, endValue et newValue à classifier. Une table devient une propriété de l’objet obtenu. Pour interroger ou manipuler les entrées de la table, traitez-les comme des entrées de listes au sein de listes (voir Interroger des classes).
# Usage: RemapRange([[startValue, endValue, newValue],...])
myRemapRange = RemapRange([[-3, -1.75, 1], [-1.75, -0.5, 2], [-0.5, 0.75, 3],
[0.75, 2, 4], [2, 3.25, 5], [3.25, 4.5, 6],
[4.5, 5.75, 7], [5.75, 7, 8]])
outReclassRR = Reclassify("inRas", "VALUE", myRemapRange)
Classes créées avec une série de classes dans une liste
Certains outils utilisent des paramètres de classe qui exigent une série de classes en entrée. Les classes sont composées au sein d’une liste. Les outils exigeant une série de classes dans une liste, parmi lesquels figurent Extraction par points et Extraction par rectangle, extraient généralement les données par une géométrie spécifique.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?