ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Aide
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS Desktop

Un SIG professionnel complet

ArcGIS Enterprise

SIG dans votre entreprise

ArcGIS Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

ArcMap

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Extensions

Utiliser la logique If-Then-Else pour le branchement

  • Utiliser la logique if-then-else dans ModelBuilder
  • Exemples de la logique if-then-else

La logique If-Then-Else (Si-Alors-Autrement) constitue un moyen puissant et simple d'effectuer des actions différentes en fonction de conditions différentes. La logique If-then-else peut être expliquée comme suit : IF (SI) une certaine condition est exacte, effectuez une action ; ELSE (AUTREMENT) la condition est inexacte, effectuez une autre action.

Utiliser la logique if-then-else dans ModelBuilder

Dans ModelBuilder, la logique if-then-else peut être mise en œuvre en rédigeant un outil de script qui teste certaines conditions, puis génère deux variables booléennes qui décrivent la condition exacte et fausse et en intégrant cet outil de script dans un modèle. En tant qu'alternative à l'écriture d'un outil de script, vous pouvez également utiliser l'outil Calculer une valeur pour tester la condition et la sortie d'une valeur booléenne.

Le modèle suivant incorpore la logique de branchement via un outil de script appelé Vérifier le système de coordonnées pour utiliser la logique de branchement. Cet outil de script évalue un jeu de données en entrée et indique si ce jeu de données est associé à un système de coordonnées State Plane projetées ou à un système de coordonnées inconnu. Dans le modèle, si le jeu de données en entrée est associé à un système de coordonnées State Plane projetées, rien ne se produit. Cependant, si le jeu de données en entrée doit avoir un système de coordonnées inconnu, le modèle définit un système de projection et projette les données en entrée. L'une des étapes-clés pour l'utilisation de la logique de branchement dans ModelBuilder est de définir une des sorties conditionnelles comme pré-condition au traitement ultérieur.

Exemple de la logique If-Then-Else

Exemples de la logique if-then-else

L'extrait de code suivant affiche comment le branchement If-Then-Else est mis en œuvre dans l'outil de script Vérifier le système de coordonnées présenté ci-dessus. Le script génère deux variables en sortie : une représentant la condition if (exacte) et l'autre représentant la condition else (fausse).

Exemple de script Vérifier le système de coordonnées

L'exemple vérifie si les données en entrée sont dans une projection StatePlane, n'a pas de PRJ ou une projection autre que StatePlane.

# 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

  • Accueil
  • Documentation
  • Support

ArcGIS

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

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog d’Esri
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
Donnez-nous votre avis.
Copyright © 2021 Esri. | Confidentialité | Légal