ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • 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 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 script, 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. El script 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)

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

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