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 ArcGIS 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 facilement modifier chaque argument de la classe pour effectuer d'autres analyses.
Pour plus d'informations sur l'utilisation des classes ArcGIS Spatial Analyst dans Algèbre spatial, consultez les rubriques suivantes :
- Création de classes
- Interrogation de classes
- Modification d'arguments dans des classes
- Procédure d'utilisation de 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 facilement modifier la valeur d'une classe en entrée dans un modèle d'aptitude 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 modifier interactivement les valeurs A et De dans une table de classification pour un modèle d'aptitude par incréments de 5 pour cent afin de voir comment de légers changements sur un critère en entrée peuvent influer sur 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.
Utilisation des classes ArcGIS Spatial Analyst
Certains paramètres des outils de géotraitement ArcGIS Spatial Analyst utilisent un objet de classe comme 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 valeurs. Au lieu d'utiliser des chaînes de texte longues et compliquées pour définir ces paramètres, vous pouvez utiliser des classes (par exemple les tables de voisinage ou 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 ArcGIS Spatial Analyst :
- Scalaires
- Chaînes
- Liste Python ou liste de listes
- Autres classes
Par souci de lisibilité, il est recommandé que la classe soit définie sur une variable et que la variable soit utilisée 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. Elles nécessitent une série d'entrées et sont utilisées pour les paramètres de 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 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 Interrogation de 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é à partir d'une classe créée à l'aide de listes au sein d'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 attendent une table en entrée. La table est modélisée par une liste d'enregistrements indiquant les valeurs startValue, endValue et newValue à classer. 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 Interrogation de 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 nécessitent une série de classes en entrée. Les classes se composées au sein d'une liste. Les outils nécessitant une série de classes au sein d'une liste, ce qui inclut Extract by Points et Extract by Rectangle, extraient généralement les données en fonction d'une géométrie spécifiée.