Disponible con una licencia de Spatial Analyst.
Uno de los aspectos más ventajosos del Álgebra de mapas es la capacidad de crear una declaración que comprenda múltiples operadores y herramientas en una única declaración. La capacidad de introducir múltiples operadores y herramientas en una única declaración le permite modelar interacciones complejas más fácilmente y puede reducir el tiempo total de procesamiento. Las expresiones complejas no se limitan a la funcionalidad proporcionada por las herramientas de la extensión Spatial Analyst de ArcGIS; estas pueden incluir herramientas de otras cajas de herramientas. Existen reglas de interacción específicas que debe seguir para ejecutar correctamente las declaraciones complejas que cree.
Reglas de declaraciones complejas
- En las sentencias complejas, solo la salida a la izquierda del signo igual se convierte en un Objeto ráster.
- El orden de ejecución de una expresión está determinado por el paréntesis y el nivel de jerarquía de los operadores utilizados. Para obtener más información sobre la jerarquía del operador, consulte la Tabla de jerarquía del operador.
outRaster = Raster("inras1") + Raster("inras2") / Raster("inras3")
-
En la sentencia anterior, inras2 se divide entre inras3 y el resultado se suma a inras1.
- Puede utilizar paréntesis para controlar el orden de ejecución. Puede utilizar paréntesis anidados, en cuyo caso la expresión dentro de los paréntesis internos se debe procesar primero, sin importar el valor de jerarquía de los operadores.
outRas = Raster("inras1") / (Raster("inras2") + Raster("inras3"))
En la sentencia anterior, inras1 se divide entre la suma de inras2 e inras3.
- Cuando se utilizan varios operadores booleanos (~, &, ^, |) o relacionales (<, <=, >, >=, ==, !=) consecutivamente en una única expresión, se deben usar paréntesis. Por ejemplo, los paréntesis son necesarios en la siguiente expresión (a>2) & (a<5).
outRas = (Raster("a") > 2 ) & ( Raster("a") < 5)
- en declaraciones complejas se pueden utilizar operadores, variables, números y herramientas.
outRas = Sin("inras1") + Raster("inras2") + 8
const = 10 outRas = Raster("inras1") + 2 * const
- Todas las reglas que aplican a paréntesis en declaraciones creadas con operadores también aplican a las declaraciones creadas con herramientas y operadores. La herramienta o el operador que se encuentre dentro del paréntesis anidado más profundo serán procesados primero.
num = 10 outRas = (ZonalStatistics((Raster("inras2") + Raster("inras3")), "Value", "valueras", "MAXIMUM") - num ) / 8
En la sentencia anterior, la suma de inras2 e inras3 se utiliza como entrada de la herramienta Estadísticas zonales. El valor de num se resta antes de la división.
- En una serie de declaraciones, la salida de una declaración anterior se puede utilizar como entrada en una declaración posterior.
outAdd = Raster("inras1") + Raster("inras2") outRas = FocalStatistics(outAdd, NbrCircle(5, "Map"), "MEAN")
En el ejemplo anterior, outAdd es un objeto ráster creado por la suma de inras1 e inras2. Puesto que outAdd es una variable, no se necesitan comillas cuando se utiliza como entrada de la herramienta Estadísticas focalizadas posterior.
- Cualquier herramienta se puede integrar en otra herramienta, tenga como resultado un ráster o una clase de entidad. La salida requerida de la herramienta integrada se utiliza como la entrada de la herramienta exterior. En este ejemplo, la salida de la herramienta Lista de curva de nivel se utiliza como la entrada de la herramienta Distancia euclidiana.
outdistance = EucDistance(ContourList("elevation", "#", [1500]))
En el ejemplo anterior, la salida de la herramienta Seleccionar de la caja de herramientas Análisis se utiliza como la entrada de la herramienta Distancia euclidiana.dist = EucDistance(arcpy.Select_analysis("schools", "#", "Pop>2000"))
- Para utilizar una salida opcional de una herramienta en una expresión, debe utilizar el nombre del dataset o variable que representa al dataset. En el ejemplo anterior, el ráster de vínculo de menor coste de salida opcional es la salida en el espacio de trabajo con el nombre de "out_bklink" .
costDist = CostDistance("source", "in_cost", 15000, "out_bklink") costOut = CostPath("dest", costDist, "out_bklink")
En el ejemplo indicado anteriormente, el ráster de menor coste se define mediante una variable antes de que se ejecute la herramienta. La variables indica la ubicación y el nombre que tendrá el ráster de vínculo de menor coste de salida.bklink = "C:/results/out_bklink" costDist = CostDistance("source", "in_cost", 15000, bklink) costOut = CostPath("dest", costDist, bklink)