Ändern von Argumenten in Klassen

Mit der Spatial Analyst-Lizenz verfügbar.

Sie möchten möglicherweise ein einzelnes Argument in einen Parameter ä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 einen Fehler korrigieren möchten. Anhand der folgenden Beispiele wird erläutert, wie verschiedene Eingabeargumente geändert werden.

Klassenwerte oder -eigenschaften

  • Wenn Sie einen Wert eines Klassenobjekts ändern möchten, können Sie 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 der das Argument im Objekt 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 in einem Objekt 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

    Der Wert kann auch mithilfe eines Zuweisungsoperators geändert werden.

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

Mit Python-Listen erstellte Klassen

  • Sie können der inFeatures-Liste 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 in 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 Remap-Tabelle für Klassen ändern (durch Ändern von Einträgen innerhalb von inneren 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 Remap-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
  • Sie können eine einzelne Zeile in der Remap-Tabelle ändern (durch Ändern von ganzen inneren Listen).
    >>> 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]]
  • Sie können einer Remap-Tabelle Einträge hinzufügen (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]]
  • Sie können Einträge aus einer Remap-Tabelle löschen (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]]

Aus einer Reihe von Klassen in einer Liste erstellte Klassen

  • Sie können einen bestimmten Punkt in der Liste für eine Klasse ändern, die in 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