Suite

Instructions IF THEN dans ArcGIS Field Calculator


Je ne sais pas si cela serait mieux géré en vbscript ou en python, et malheureusement, je suis moins que novice dans les deux, donc je prendrai toute l'aide que je peux obtenir de l'échange.

J'essaie de prendre ma couche de rues et de supprimer le champ "type" pour un certain ensemble de noms de rues. Toute rue nommée "Avenue A", "Avenue B", Avenue C" et ainsi de suite aurait besoin du champ "TYPE" vidé. Mais toutes les autres rues et types de rue le rappelleraient.

Une petite explication du pourquoi peut vous aider à mieux comprendre mon sort : nous avons un logiciel d'intervention d'urgence dans ma municipalité qui utilise à la fois le préfixe, le sous-nom et le type pour afficher les données des rues, ainsi que pour suivre les appels et les statistiques pour chaque rue. Toutes les rues s'affichent correctement à l'exception des rues de type "Avenue A" qui affichent "Avenue A AVE". Toute autre rue de type AVE s'affiche correctement, par exemple : Baltic AVE, Crawford AVE, etc. Mais les rues "Avenue (lettre)" ne seront pas renseignées avec le champ "TYPE". J'espère que cela a du sens.

Donc, ce dont j'ai besoin, c'est d'un script de calcul de champ qui recherchera n'importe quelle rue [SUBNAME] "AVENUE #" et videra le champ [TYPE] correspondant. J'ai essayé un peu de SQL avec ma connaissance insuffisante de VBscript pour générer ce qui suit (non cela n'a pas fonctionné):

SI [SOUS-NOM]="AVENUE *" ALORS REMPLACER([TYPE],"AVE","")


use (remplacez [type], "AVENUE %", "") Il existe de nombreuses façons d'utiliser la calculatrice de champ.
En essayant d'utiliser la déclaration if then d'après mon expérience, vous voudrez probablement essayer d'apprendre une regex. Il est très puissant pour trouver des chaînes ou des séquences numériques et vous permettre d'apporter des modifications.
À court d'avoir besoin Suite que ce que vous avez déjà éludé dans votre question, vous pouvez facilement accomplir avec des instructions de calcul de champ plus basiques.
Voici quelques liens vers l'ancienne et la nouvelle documentation esri pour python et vbscript qui vous aideront à faire de vous un gourou.
Un vieux pdf d'aide de vbscript mais toujours utile.
Un doc 9.3 pour l'utilisation d'un outil gp.
10.3 document avec les fondamentaux
10.3 exemples de calculatrice de champ
Ou de ne pas faire le changement sur le terrain de façon permanente mais de changer la façon dont vous étiquetez.
Définissez des instructions SQL distinctes pour les types et étiquetez chacun différemment.


Eh bien, vous pouvez faire ce que vous voulez avec une expression de calculatrice de champ correctement écrite, mais je recommanderais plutôt une méthode en 2 étapes pour résoudre le problème. Faites une sélection des entités à modifier, puis exécutez une expression de calcul de champ très simple pour corriger ces entités sélectionnées. De cette façon, vous pouvez examiner manuellement les entités qui seront affectées avant de les modifier.

Tout d'abord, créez une sélection des routes que vous devez modifier. Dans ArcMap, vous ouvrez la sélection par attribut et effectuez une sélection SQL à l'aide de l'opérateur Like. Par exemple, faites quelque chose comme : SUBNAME LIKE 'Avenue %' (vous devrez peut-être ajuster légèrement l'expression en fonction de votre source de données, mais vous devriez pouvoir utiliser le générateur d'expression intégré pour reproduire une expression similaire). Si vous utilisez Model Builder ou un script python, vous devrez peut-être d'abord exécuter l'outil Make Feature Layer GP, puis exécuter Select by Attribute. Une fois les fonctionnalités sélectionnées, je vous recommande de revoir manuellement les fonctionnalités sélectionnées et non sélectionnées pour vous assurer que toutes celles souhaitées sont incluses et que seules celles souhaitées sont incluses.

Ensuite, exécutez le calculateur de champ sur le champ TYPE, en utilisant Python comme langage d'expression du calculateur de champ, et pour l'expression, tapez simplement le motRien(le premier N est en majuscule, c'est important). Cela mettra le terrain à . Si vous ne voulez pas de valeurs Null ou que votre champ/type de données ne prend pas en charge les valeurs Null (comme un fichier de formes), vous pouvez alors utiliser l'expression "".

Lorsque vous exécutez la calculatrice de champ sur une couche avec un sous-ensemble d'entités sélectionné, la calculatrice de champ ne modifie que les entités sélectionnées. Sélectionnez donc toutes les routes applicables, puis calculez-les simplement toutes à la nouvelle valeur souhaitée. Aucune expression de calculatrice complexe n'est nécessaire.


Voir la vidéo: Basic Field Calculator (Octobre 2021).