ArcGIS for Desktop

  • Documentación
  • Precios
  • Soporte

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

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

ArcGIS for Desktop

Un completo SIG profesional

ArcGIS for Server

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
  • Precios
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

Ayuda

  • Inicio
  • Introducción
  • Mapa
  • Analizar
  • Administrar datos
  • Herramientas
  • Más...

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 se puede explicar como: IF: si alguna condición es verdadera, se realiza una acción; ELSE: si la condición es falsa, se realiza una acción diferente.

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?

¿Algún comentario sobre este tema?

ArcGIS for Desktop

  • Inicio
  • Documentación
  • Precios
  • Soporte

Plataforma ArcGIS

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

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog interno
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Privacidad | Legal