ArcGIS Desktop

  • Documentación
  • Soporte

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS for Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Utilizar la lógica If-Then-Else para ramificación

  • Utilizar la lógica If-Then-Else en ModelBuilder
  • Ejemplos de lógica If-Then-Else

La lógica If-Then-Else es un concepto sencillo pero importante para llevar a cabo diferentes acciones basadas en distintas condiciones. La lógica If-Then-Else (Si-entonces-si no) puede explicarse del siguiente modo: SI una condición es verdadera, ENTONCES realice una acción; SI NO, la condición es falsa, realice una acción distinta.

Utilizar la lógica If-Then-Else en ModelBuilder

Es posible implementar la lógica If-Then-Else en ModelBuilder escribiendo una herramienta de secuencia de comandos que pruebe alguna condición y, a continuación, genere dos variables booleanas que describan la condición de verdadero y falso e incorporen esta herramienta de secuencias de comandos a un modelo. Como alternativa a escribir una herramienta de secuencia de comandos, también puede utilizar la herramienta Calcular valor para probar la condición y generar un valor booleano.

El siguiente modelo incorpora una herramienta de secuencia de comandos llamada Comprobar sistema de coordenadas para utilizar lógica de ramificación. Esta herramienta de secuencia de comandos evalúa un dataset de entrada y le indica si ese dataset tiene un sistema de coordenadas State Plane proyectadas o un sistema de coordenadas desconocido. En el modelo, si el dataset de entrada tiene un sistema de coordenadas State Plane proyectadas, no ocurrirá nada. Sin embargo, si el dataset de entrada tiene un sistema de coordenadas desconocido, el modelo definirá un sistema de proyección y proyectará los datos de entrada. Uno de los pasos clave en el uso de la lógica de ramificación en ModelBuilder es establecer una de las salidas condicionales como condición previa para su posterior procesamiento.

Ejemplo de If-Then-Else

Ejemplos de lógica If-Then-Else

La siguiente muestra de código muestra cómo se implementa la ramificación If-Then-Else en la herramienta de secuencia de comandos Comprobar sistema de coordenadas referenciada anteriormente. La secuencia de comandos genera dos variables, una que representa la condición if (verdadero) y otra que representa la condición else (falsa).

Ejemplo de Comprobar sistema de coordenadas

El ejemplo comprueba si los datos de entrada están en State Plane, no tienen un PRJ (archivo de definición de proyecciones) o tienen uno que no sea State Plane.

# Import modules
import arcpy
import sys
import traceback
# Set local variables
prj = "" 
indata = "C:/ToolData/well.shp" 
dsc = arcpy.Describe(indata) 
sr = dsc.spatialReference 
prj = sr.name.lower()
try:
 
   # check if indata is in StatePlane, has no PRJ, or one other than StatePlane
   if prj.find("_stateplane_") > -1:
       # Set the Is Unknown parameter to FALSE, and the Is StatePlane parameter to TRUE
       arcpy.SetParameterAsText(1,"false") #The first parameter refers to the "Is Unknown" variable
       arcpy.SetParameterAsText(2,"true") #The second parameter refers to the "Is StatePlane" variable
       arcpy.AddMessage("Coordinate system is StatePlane") 
   elif prj == "unknown": 
       # Set the Is Unknown parameter to TRUE, and the Is StatePlane parameter to FALSE
       arcpy.SetParameterAsText(1,"true") 
       arcpy.SetParameterAsText(2,"false") 
       arcpy.AddMessage("To continue, first define a coordinate system!") 
   else:
       # Set the Is Unknown parameter to FALSE, and the Is StatePlane parameter to FALSE
       arcpy.SetParameterAsText(1,"false") 
       arcpy.SetParameterAsText(2,"false") 
       arcpy.AddMessage("Coordinate system is not StatePlane or Unknown") 
except Exception as e:
    AddPrintMessage(e[0], 2)

Consulte el siguiente blog de ejemplos sobre el uso de la lógica if-then-else en un modelo:

  • Entendimiento sobre que hacer si el "si" le causa problemas
  • Si se encuentra atrapado en "si", Parte 1: ejemplos de Calcular valor
  • Si se encuentra atrapado en "si", Parte 2: ejemplo de la herramienta de secuencia de comandos
  • Si se encuentran atrapado en "si": Parte 3, ejemplo del modelo ¿Existe extensión?
  • Si se encuentran atrapado en "si", Parte 4: ejemplo del modelo ¿Existe selección?
  • Si se encuentran atrapado en "si", Parte 5: ejemplo del modelo ¿Existe proyección?

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

Plataforma ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog interno
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2018 Esri. | Privacidad | Legal