La lógica If-Then-Else es un concepto para llevar a cabo acciones basadas en distintas condiciones. La lógica If-Then-Else puede explicarse del siguiente modo: si la condición es verdadera, se realiza una acción; en caso contrario, se realiza una acción distinta.
En ModelBuilder, se puede agregar la lógica If-Then-Else utilizando el conjunto de herramientas lógicas integradas o con funciones de Python o herramientas de script personalizadas.
Herramientas de lógica
Las herramientas lógicas controlan el flujo de procesos de un modelo y permiten la lógica de bifurcación if-then-else.
Herramientas de lógica | Descripción |
---|---|
Evalúa los datos de entrada correspondientes al sistema de coordenadas especificado. | |
Evalúa si los datos especificados existen. | |
Evalúa si los datos de entrada coinciden con el tipo de datos especificado. | |
Evalúa si una expresión de Python dada es True o False. | |
Evalúa si una clase de entidad es del tipo de entidad especificado. | |
Evalúa si los datos de entrada contienen los campos especificados. | |
Evalúa si los valores de un campo de atributo coinciden con un valor, expresión o segundo campo especificados. | |
Evalúa el recuento de filas de los datos de entrada y comprueba si coincide con un valor especificado. | |
Comprueba si los datos de entrada incluyen una selección y si se ha seleccionado un determinado número de registros. | |
Evalúa si las entradas tienen una relación espacial especificada. | |
Evalúa un valor de entrada en comparación con un valor único, una lista de valores o un rango de valores mediante un operador de comparación definido. | |
Fusiona dos o más ramas lógicas en una sola salida. | |
Sale de un modelo del bucle de iteración si los valores de entrada se establecen en verdadero o se establecen en falso. Para el conjunto de valores de entrada, la iteración continuará si todas las entradas son verdaderas y se detendrá si cualquiera de las entradas es falsa. Es una funcionalidad similar a la de la herramienta Mientras, pero resulta útil para detener un modelo si existe un iterador Mientras en un modelo y no se puede agregar iteradores adicionales. |
Más información sobre el uso de las herramientas lógicas en ModelBuilder
Python
Además de las herramientas lógicas integradas en ModelBuilder, puede escribir sus propias funciones y herramientas para realizar la ramificación If-Then-Else utilizando funciones de Python personalizadas con la herramienta Calcular valor. Estas funciones pueden probar condiciones utilizando una variedad de capacidades de arcpy y de Python y generar variables booleanas verdaderas y falsas. De forma similar, puede escribir un script de Python que pruebe las condiciones y genere variables booleanas verdaderas y falsas, convertir el script en una herramienta de script de geoprocesamiento y agregar la herramienta de script a su modelo.
Información sobre las condiciones
Antes de elegir entre las herramientas del sistema o escribir scripts personalizados, conviene comprender la lógica condicional basada en los tipos de datos vectoriales o ráster.
Ejecutar un modelo solo si existe un archivo
El siguiente ejemplo utiliza la herramienta Si los datos existen para comprobar la existencia de datos en un espacio de trabajo en particular y, si los datos existen de hecho, continuar ejecutando la siguiente herramienta Agregar campo en el modelo. Si no existe, copie la clase de entidad desde una ubicación de respaldo antes de agregar un campo.
Ejecutar un modelo solo si una entrada tiene un sistema de coordenadas específico
El siguiente ejemplo utiliza la herramienta Si el sistema de coordenadas es para comprobar si el valor del Sistema de Coordenadas de la clase de entidad de entrada es GCS_WGS_1984. Si la salida booleana es False, el modelo utilizará la herramienta Proyectar para proyectar la clase de entidad de entrada a GCS_WGS_1984.
Ejecutar un modelo solo si una clase de entidad de entrada corresponde a un tipo de geometría específico
El siguiente ejemplo utiliza la herramienta Si el tipo de entidad es para comprobar si el tipo de entidad de la entrada es Punto. Si la salida booleana es True, ejecute la siguiente herramienta, Agregar ubicaciones. Si la salida booleana es False, convierta la herramienta de entrada De entidad a punto antes de ejecutar la herramienta Agregar ubicación. La herramienta Fusionar rama fusiona las ramas True y False de forma que se pueda ejecutar la herramienta Solucionar en ambas ramas.
Modificar valores de campo en función de una condición
El siguiente ejemplo utiliza la herramienta Si el valor del campo es para comprobar si la clase de característica de entrada tiene algún registro con el valor de campo Type igual a A. Si la salida booleana es True, seleccione las entidades de tipo A con la herramienta Seleccionar capa por atributo y modifique los valores del campo Description con la herramienta Calcular campo.
Ejecutar un modelo solo si una consulta SQL resulta en cualquiera de las entidades seleccionadas
El siguiente ejemplo utiliza la herramienta Si la selección existe para comprobar si la clase de entidad de entrada contiene cualquier entidad seleccionada. Si la salida booleana es True, utilice la herramienta Calcular campo para calcular los valores del campo Description. Si la salida booleana es False, utilice la herramienta Seleccionar capa por atributo para realizar la selección y modificar los valores de los campos.
Ejecutar un modelo solo si una entrada corresponde a un tipo de datos específico
El siguiente ejemplo utiliza la herramienta Analizar ruta para obtener la extensión de archivo. La herramienta Si el valor es comprueba si la extensión coincide con el parámetro Valores. El modelo solo copia los datos ráster que tengan la extensión .tif.
Realizar una evaluación booleana de un ráster
Las herramientas Prueba, Evaluación condicional, Mayor que y Calculadora ráster se pueden utilizar para realizar una evaluación booleana de un ráster. En el siguiente ejemplo, si un valor de celda es mayor que 2000, cambie el valor a 1 (True); de lo contrario, cambie el valor a 0 (False).
Realizar una evaluación condicional de un ráster
La herramienta Evaluación condicional o Calculadora ráster permiten evaluar condicionalmente un ráster. En el siguiente ejemplo, si un valor de celda es mayor que 2000, mantenga el valor de entrada; de lo contrario, cambie a NoData. Al dejar vacío el parámetro de la herramienta Evaluación condicional llamado Ráster falso o valor constante de entrada, el valor cambia a NoData. Opcionalmente, puede indicar otro ráster o un valor constante para el parámetro Ráster falso o valor constante de entrada.
Extraer celdas de un ráster con una consulta
Las herramientas Extraer por atributo, Crear capa ráster y Seleccionar capa por atributo se pueden usar para extraer celdas de un ráster. El siguiente ejemplo muestra métodos para crear un ráster o una capa ráster con los valores de celda mayores que 2000.
Extraer celdas de un ráster con una consulta y cambiarlas a NoData
Las herramientas Establecer nulos, Reclasificar y Calculadora ráster se pueden usar para extraer celdas de un ráster y cambiarlas a NoData. SI el valor de la celda es mayor que 2000, cambie a NoData; de lo contrario, utilice el valor de los datos de entrada.
Extraer las celdas NoData de un ráster con una consulta y modificarlas
Es posible usar la herramienta Es nulo con la herramienta Evaluación condicional, o bien la herramienta Calculadora ráster para extraer las celdas NoData de un ráster y modificarlas. En el siguiente ejemplo, si un valor de celda es NoData, cambie a 0; de lo contrario, utilice el valor de los datos de entrada.
Ejecutar un modelo solo si una propiedad de ráster satisface una condición determinada
Por ejemplo, para comprobar si el valor medio de todas las celdas es mayor que 100, puede usar las herramientas Obtener propiedades de ráster y Si el valor es.
Continuar o detener la ejecución de una herramienta en un modelo en función de una condición
Es posible usar las herramientas Mientras y Detener para continuar o detener un modelo basándose en una condición.