ArcGIS for Desktop

  • Documentation
  • Tarification
  • Support

  • My Profile
  • Aide
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS for Desktop

Un SIG professionnel complet

ArcGIS for Server

SIG dans votre entreprise

ArcGIS for 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
  • Tarification
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

Aide

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

Utilisation de la logique If-Then-Else pour le branchement

  • Utilisation de la logique If-Then-Else dans ModelBuilder
  • Exemples de logique If-Then-Else

La logique If-Then-Else (en français, Si-Sinon-Autre) constitue est un moyen simple, mais puissant, d'effectuer des actions différentes en fonction de conditions différentes. Cette logique fonctionne comme ceci : si une condition If est remplie, une action doit être réalisée ; sinon (Else), la condition est fausse, une autre action doit être réalisée.

Utilisation de la logique If-Then-Else dans ModelBuilder

Dans ModelBuilder, vous pouvez mettre en œuvre la logique If-Then-Else en écrivant un outil de script chargé de tester une condition et de générer deux variables booléennes en sortie décrivant les conditions True et False, puis incorporer cet outil de script à un modèle. Un autre moyen consiste à utiliser l'outil Calculer une valeur pour tester la condition et générer une valeur booléenne en sortie.

Le modèle suivant inclut un outil de script appelé Check Coordinate System chargé d'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. Toutefois, si le jeu de données en entrée est associé à 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 logique If-Then-Else

Exemples de 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 Check Coordinate System présenté ci-dessus. Le script génère deux variables en sortie, une représentant la condition If (true) et l'autre représentant la condition Else (false).

Exemple de script Check Coordinate System

L'exemple vérifie si le système de coordonnées des données en entrée est de type StatePlane, n'a pas de système de projection (PRJ) ou est un autre système 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)

Reportez-vous aux exemples d'utilisation de la logique if-then-else dans un modèle sur le blog suivant :

  • Understanding which "if" troubles you (en anglais)
  • If you are stuck at "if" - Part 1 - Exemples d'utilisation de l'outil Calculer une valeur (en anglais)
  • If you are stuck at "if" - Part 2 - Exemple d'utilisation de l'outil Script (en anglais)
  • If you are stuck at "if" - Part 3 - Exemple d'utilisation du modèle de script Does Extension Exist (en anglais)
  • If you are stuck at "if" - Part 4 - Exemple d'utilisation du modèle de script Does Selection Exist (en anglais)
  • If you are stuck at "if" - Part 5 - Exemple d'utilisation du modèle de script Does Projection Exist (en anglais)

Vous avez un commentaire à formuler concernant cette rubrique ?

ArcGIS for Desktop

  • Accueil
  • Documentation
  • Tarification
  • Support

ArcGIS Platform

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

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog des initiés
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Confidentialité | Légal