Modification d'arguments dans des classes

Disponible avec une licence Spatial Analyst.

Vous pouvez souhaiter modifier un argument particulier d'un paramètre parce que vous avez obtenu des informations supplémentaires à propos des phénomènes que vous modélisiez, ou parce que vous aimeriez tester des scénarios alternatifs, effectuer une analyse d'erreur ou de sensibilité ou simplement corriger une erreur. Par une série d'exemples, vous apprendrez comment modifier la grande variété d'arguments en entrée.

Modification des valeurs ou des propriétés de classe

  • Pour modifier une valeur d'un objet de classe, vous pouvez simplement recréer la classe.
    neighborhood = NbrCircle(5, "MAP")
    
    # The neighborhood object can be changed from a circle to a rectangle
    neighborhood = NbrRectangle(3, 3, "MAP")
  • Un argument seul peut être modifié directement en accédant à la propriété qui stocke cet argument dans l'objet.
    >>> neighborhood = NbrCircle(5, "MAP")
    >>> # The following statements change the radius to 7 and the units to CELL
    >>> neighborhood.radius = 7 
    >>> neighborhood.units = "CELL"
    
    >>> print(neighborhood)
    CIRCLE 7 CELL
  • Un argument numérique stocké en tant que propriété dans un objet peut être modifié de manière algébrique.
    circle = NbrCircle(5, "CELL")
    
    # The following statement changes the radius to 5.5
    circle.radius = circle.radius * 1.1

    Vous pouvez également utiliser un opérateur d'affectation pour modifier la valeur.

    # The following statement changes the radius to 5.5
    circle.radius *= 1.1

Modification des classes créées à l'aide de listes Python

  • Vous pouvez ajouter des éléments à la liste inFeatures pour les classes créées à partir des listes.
    >>> arguments = TopoStream(["features1", "features2"]) 
    
    >>> arguments.inFeatures.append("features3")
    >>> arguments.inFeatures += ["features4", "features5"]
    
    >>> print(arguments.inFeatures)
    ['features1', 'features2', 'features3', 'features4', 'features5']
  • Vous pouvez également supprimer un élément dans la liste des entrées.
    >>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"])
    >>> del arguments.inFeatures[2]
    
    >>> print(arguments.inFeatures)
    ['features1', 'features2', 'features4', 'features5']
  • Vous pouvez modifier une entrée particulière dans la liste.
    >>> arguments = TopoStream(["features1", "features2"]) 
    >>> arguments.inFeatures[1] = "lake2"
    
    >>> print(arguments.inFeatures)
    ['features1', 'lake2']

Classes créées à l'aide de listes dans des listes

  • Vous pouvez modifier une entrée dans une table de classification (modification d'entrées dans des listes intérieures) pour les classes créées à partir de listes dans des listes.
    >>> remap = RemapValue([[1, 11], [2, 12], [3, 13]])
    
    >>> # Change the newValue 12 in the second reclassification to a 10
    >>> remap.remapTable[1][1] = 10
    
    >>> print(remap.remapTable)
    [[1, 11], [2, 10], [3, 13]]
  • Une entrée individuelle dans une table de classification peut être modifiée de manière algébrique.
    remap = RemapRange([[1, 10, 5], [10, 20, 8], [20, 30, 10]])
    
    # The following statement increases the endValue 20 by 5 percent
    remap.remapTable[1][1] *= 1.05 
    
    # Another implementation of increasing an entry by 5 percent
    remap.remapTable[1][1] = remapTable.table[1][1] * 1.05
  • Cet exemple montre comment modifier une ligne individuelle dans la table de classification (modification de listes intérieures entières).
    >>> remap = RemapValue([[1, 11], [2, 12], [4, 13]])
    
    >>> # Change the second reclassification [2, 12] to [3,10]
    >>> remap.table[1] = [3, 10]
      
    >>> print(remap.remapTable)
    [[1, 11], [3, 10], [4, 13]]
  • Cet exemple montre comment ajouter des entrées à une table de classification (ajout d'une liste intérieure).
    >>> remap = RemapValue([[1, 11], [2, 12], [3, 13]])
    
    >>> # Add a forth reclassification, [4, 14] to the end
    >>> remap.remapTable.append([4, 14]) 
    
    >>> # Another approach for adding a row
    >>> remap.remapTable += [[5, 15]] 
    
    >>> print(remap.remapTable)
    [[1, 11], [2, 12], [3, 13], [4, 14], [5, 15]]
  • Cet exemple montre comment supprimer des entrées d'une table de classification (suppression d'une liste intérieure).
    >>> remap = RemapValue([[1, 11], [2, 12], [3, 13], [4, 14], [5, 15]])
    
    >>> # Delete the entire second reclassification
    >>> del remap.remapTable[1]
    
    >>> print(remap.remapTable)
    [[1, 11], [3, 13], [4, 14], [5, 15]]

Classes créées à partir d'une série de classes dans une liste

  • Vous pouvez modifier un point spécifique dans la liste pour une classe créée à partir d'une série de classes dans une liste.
    >>> points = [Point(0, 5), Point(15, 175)]
    
    >>> # Change the X value of the second input to 25
    >>> points[1].X = 25 
    
    >>> print(points)
    [<Point (0.0, 5.0, #, #)>, <Point (25.0, 175.0, #, #)>]

Rubriques connexes