Ändern von Argumenten innerhalb von Klassen

Mit der Spatial Analyst-Lizenz verfügbar.

Sie möchten möglicherweise ein einzelnes Argument eines Parameters ändern, weil Sie weitere Informationen zu den Phänomenen, die Sie modelliert haben, erhalten haben, weil Sie alternative Szenarien testen möchten, weil Sie eine Fehler- oder Empfindlichkeitsanalyse ausführen möchten oder weil Sie einfach einen Fehler korrigieren möchten. In einer Reihe von Beispielen erfahren Sie, wie die Vielzahl von Eingabeargumenten geändert wird.

Ändern von Klassenwerten oder -eigenschaften

  • Um den Wert eines Klassenobjekts zu ändern, können Sie einfach die Klasse neu erstellen.
    neighborhood = NbrCircle(5, "MAP")
    
    # The neighborhood object can be changed from a circle to a rectangle
    neighborhood = NbrRectangle(3, 3, "MAP")
  • Ein einzelnes Argument kann direkt durch Zugreifen auf die Eigenschaft geändert werden, in dem das Argument innerhalb des Objekts gespeichert wird.
    >>> 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
  • Ein numerisches Argument, das als Eigenschaft innerhalb eines Objekts gespeichert ist, kann algebraisch geändert werden.
    circle = NbrCircle(5, "CELL")
    
    # The following statement changes the radius to 5.5
    circle.radius = circle.radius * 1.1

    Sie können den Wert auch mit Hilfe eines Zuweisungsoperators ändern.

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

Ändern von mit Pythonlisten erstellten Klassen

  • Sie können der Liste inFeatures Elemente für Klassen hinzufügen, die aus Listen erstellt wurden.
    >>> arguments = TopoStream(["features1", "features2"]) 
    
    >>> arguments.inFeatures.append("features3")
    >>> arguments.inFeatures += ["features4", "features5"]
    
    >>> print(arguments.inFeatures)
    ['features1', 'features2', 'features3', 'features4', 'features5']
  • Sie können auch ein Element aus der Eingabeliste löschen.
    >>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"])
    >>> del arguments.inFeatures[2]
    
    >>> print(arguments.inFeatures)
    ['features1', 'features2', 'features4', 'features5']
  • Sie können einen bestimmten Eintrag innerhalb der Liste ändern.
    >>> arguments = TopoStream(["features1", "features2"]) 
    >>> arguments.inFeatures[1] = "lake2"
    
    >>> print(arguments.inFeatures)
    ['features1', 'lake2']

Mit Listen innerhalb von Listen erstellte Klassen

  • Sie können einen Eintrag in einer Neuzuordnungs-Tabelle für Klassen ändern (durch Ändern von Einträgen innerhalb innerer Listen), die aus Listen innerhalb von Listen erstellt wurden.
    >>> 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]]
  • Ein einzelner Eintrag in einer Neuzuordnungs-Tabelle kann algebraisch geändert werden.
    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
  • Hier wird dargestellt, wie eine einzelne Zeile in der Neuzuordnungs-Tabelle (durch Ändern vollständiger innerer Listen) geändert wird.
    >>> 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]]
  • Hier wird dargestellt, wie einer Neuzuordnungs-Tabelle Einträge hinzugefügt werden (durch Hinzufügen einer inneren Liste).
    >>> 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]]
  • Hier wird dargestellt, wie aus einer Neuzuordnungs-Tabelle Einträge gelöscht werden (durch Löschen einer inneren Liste).
    >>> 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]]

Innerhalb einer Liste aus einer Reihe von Klassen erstellte Klassen

  • Sie können einen bestimmten Punkt innerhalb der Liste für eine Klasse ändern, die innerhalb einer Liste aus einer Reihe von Klassen erstellt wurde.
    >>> 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, #, #)>]

Verwandte Themen