Cambiar argumentos en las clases
Disponible con licencia de Spatial Analyst.
Es posible que desee cambiar un argumento individual a un parámetro porque ha obtenido información adicional sobre el fenómeno que estaba modelando, desea probar escenarios alternativos, desea realizar un análisis de sensibilidad o error o desea corregir un error. Los siguientes ejemplos demuestran cómo cambiar diversos argumentos de entrada.
Propiedades o valores de clase
Para cambiar un valor de un objeto de clase, puede volver a crear la clase.
neighborhood = NbrCircle(5, "MAP") # The neighborhood object can be changed from a circle to a rectangle neighborhood = NbrRectangle(3, 3, "MAP")Un argumento simple se puede cambiar directamente al obtener acceso a la propiedad que almacena el argumento en el objeto.
>>> 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 CELLUn argumento numérico almacenado como una propiedad en un objeto se puede cambiar algebraicamente.
circle = NbrCircle(5, "CELL") # The following statement changes the radius to 5.5 circle.radius = circle.radius * 1.1También puede utilizar un operador de asignación para cambiar el valor.
# The following statement changes the radius to 5.5 circle.radius *= 1.1
Clases que se crean con listas de Python
Puede agregar elementos a la lista
inFeaturespara las clases que se crearon a partir de listas.>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures.append("features3") >>> arguments.inFeatures += ["features4", "features5"] >>> print(arguments.inFeatures) ['features1', 'features2', 'features3', 'features4', 'features5']También puede eliminar un elemento de la lista de entrada.
>>> arguments = TopoStream(["features1", "features2", "features3", "features4", "features5"]) >>> del arguments.inFeatures[2] >>> print(arguments.inFeatures) ['features1', 'features2', 'features4', 'features5']Puede cambiar una entrada específica en la lista.
>>> arguments = TopoStream(["features1", "features2"]) >>> arguments.inFeatures[1] = "lake2" >>> print(arguments.inFeatures) ['features1', 'lake2']
Clases que se crean con listas dentro de listas
Puede cambiar una entrada en una tabla de nueva representación (modificar las entradas dentro de listas internas) para las clases que se crearon a partir de listas dentro de listas.
>>> 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]]Una entrada individual en una tabla de nueva representación cartográfica se puede cambiar algebraicamente.
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.05Puede cambiar una fila individual en la tabla de nueva representación (modificar las listas internas completas).
>>> 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]]Puede agregar entradas a una tabla de nueva representación (agregar una lista interna).
>>> 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]]Puede eliminar entradas de una tabla de nueva representación (eliminar una lista interna).
>>> 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]]
Clases que se crean a partir de una serie de clases en una lista
Puede cambiar un punto específico de la lista para una clase que se creó a partir de una serie de clases en una lista.
>>> 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, #, #)>]