Skip To Content

Utiliser des expressions avec les GeoAnalytics Tools

La boîte à outils GeoAnalytics Tools contient de nombreux outils permettant d’appliquer une expression. Les outils suivants permettent d’appliquer une expression :

Les GeoAnalytics Tools qui utilisent des expressions ont des fonctions diverses, mais sont également limités quant aux expressions qu’ils peuvent appliquer.

Reconstruire les pistes et Créer des zones tampon

Les expressions de zone tampon sont utilisées par les outils Reconstruire les pistes et Créer des zones tampon.

La taille des zones tampon est habituellement spécifiée à l’aide de valeurs de constantes ou de champs. Toutefois, vous pouvez spécifier une taille de zone tampon dans les GeoAnalytics Tools autrement qu’en saisissant des valeurs. Dans certains cas, vous pouvez effectuer un calcul mathématique pour définir la taille de la zone tampon. Vous pouvez appliquer des calculs simples ou complexes à tous les enregistrements. Le calcul est appliqué à chaque entité analysée. Les calculs sont appliqués lorsque l’analyse est exécutées sur votre instance ArcGIS GeoAnalytics Server.

Les expressions de zone tampon peuvent utiliser des calculs simples et toutes les fonctions intégrées.

Les sections suivantes proposent des exemples d’expressions de zone tampon.

Entités jointes

Les expressions sont utilisées dans l’outil Entités jointes pour spécifier des conditions de jointure.

Dans certains cas, vous voudrez spécifier une condition pour sélectionner des entités devant être incluses dans la jointure. Vous pouvez appliquer des conditions de jointure simples (telles que field a > field c), mais également des conditions avancées. Les conditions sont testées par rapport à chaque entité pour identifier le contenu analysé. Les calculs sont appliqués lorsque l’analyse est exécutée sur votre instance ArcGIS GeoAnalytics Server.

Les expressions de conditions de jointure peuvent utiliser des calculs simples et des fonctions intégrées avancées pour créer des conditions. Les conditions de jointure ne peuvent pas utiliser la fonction as_distance. Une condition de jointure doit toujours produire en sortie une valeur vraie ou fausse.

Les sections suivantes proposent des exemples d’expressions.

Calculs simples

Exemples de mathématiques simples

Les outils Reconstruire les pistes et Créer des zones tampon peuvent traiter les nombres mathématiquement.

L’outil Entités jointes peut utiliser des opérations mathématiques lors de la création de conditions de jointure.

OpérateurExplicationExempleRésultat

a + b

a plus b

["fieldname"] + 2.5

nom du champ contient la valeur 1.5

4.0

a - b

a moins b

["fieldname"]- 2.2

nom du champ contient la valeur 3.3

1.1

a * b

a multiplié par b

["fieldname"] * 2.2

nom du champ contient la valeur 2,0

4.4

a / b

a divisé par b

["fieldname"] / 1.25

nom du champ contient la valeur 4.0

3.2

abs( a )

Renvoie la valeur absolue (positive) de a.

abs(["fieldname"])

nom du champ contient la valeur -1.5

1.5

log ( a )

Renvoie le logarithme naturel (base e) de a.

log(["fieldname"])

nom du champ contient la valeur 1

0

sin ( a )

Renvoie le sinus trigonométrique de a. On suppose que l'entrée est un angle en radians.

sin(["fieldname"])

nom du champ contient la valeur 1.5707

1

cos( a )

Renvoie le cosinus trigonométrique de a. On suppose que l'entrée est un angle en radians.

cos(["fieldname"])

nom du champ contient la valeur 0

1

tan( a )

Renvoie la tangente de a. On suppose que l'entrée est un angle en radians.

tan(["fieldname"])

nom du champ contient la valeur 0

0

sqrt( a )

Renvoie la racine carrée de a.

sqrt(["fieldname"])

nom du champ contient la valeur 9

3

min( a, b )

Renvoie la valeur a ou b la plus faible.

min("fieldname", -3)

nom du champ contient les valeurs 1.5 et -3

-3

max( a, b )

Renvoie la valeur a ou b la plus élevée.

max("fieldname1", "fieldname2")

nom du champ1 contient la valeur 1.5 et nom du champ2 contient la valeur -3

1.5

Exemple de multiplication pour une expression de zone tampon

["Distance"] * 2

Exemple de multiplication pour une expression de condition de jointure

["Distance"] * 2 > 5

Fonctions intégrées pour les GeoAnalytics Tools

Exemples de fonction As distance

Les fonctions as distance appliquent des valeurs numériques à une distance linéaire, lesquelles peuvent ensuite être utilisées dans une expression mathématique.

Les outils Reconstruire les pistes et Créer des zones tampon peuvent utiliser des fonctions as distance. Si vous utilisez une fonction numérique sans fonction as distance, l’unité est le mètre par défaut.

L’outil Entités jointes ne peut pas utiliser les fonctions as distance.

FonctionExplicationExempleRésultat

as_meters( <value> )

Applique un calcul en supposant que les valeurs en entrée sont en mètres.

as_meters( ["fieldname"] )

as_meters(150)

Les résultats sont bufférisés avec une distance de 150 mètres.

as_kilometers( <value> )

Applique un calcul en supposant que les valeurs en entrée sont en kilomètres.

as_kilometers( ["fieldname"] )

as_kilometers(150)

Les résultats sont bufférisés avec une distance de 150 kilomètres.

as_feet( <value> )

Applique un calcul en supposant que les valeurs en entrée sont en pieds.

as_feet( ["fieldname"] )

as_feet(150)

Les résultats sont bufférisés avec une distance de 150 pieds.

as_yards( <value> )

Applique un calcul en supposant que les valeurs en entrée sont en yards.

as_yards( ["fieldname"] )

as_yards(150)

Les résultats sont bufférisés avec une distance de 150 yards.

as_nautical_miles( <value> )

Applique un calcul en supposant que les valeurs en entrée sont en milles nautiques.

as_nautical_miles( ["fieldname"] )

as_nautical_miles(150)

Les résultats sont bufférisés avec une distance de 150 milles nautiques.

as_miles( <value> )

Applique un calcul en supposant que les valeurs en entrée sont en milles terrestres.

as_miles( ["fieldname"] )

as_miles(150)

Les résultats sont bufférisés avec une distance de 150 miles.

Pour chaque entité, multipliez le champ Distance en supposant que la valeur est exprimée en kilomètres, puis ajoutez 10 mètres pour une expression de zone tampon.

as_kilometers(["Distance"]) * 3 + as_meters(10)

Fonctions intégrées avancées pour les expressions de zone tampon des GeoAnalytics Tools

Outre les expressions mathématiques simples, vous pouvez utiliser d'autres fonctions plus avancées pour appliquer des expressions de zone tampon et des conditions de jointure.

Les outils Reconstruire les pistes et Créer des zones tampon peuvent utiliser des fonctions avancées.

L’outil Entités jointes peut utiliser des opérations avancées lors de la création de conditions de jointure.

FonctionExplicationExempleRésultat

constrain(<value>,<low>,<high>)

Renvoie la valeur en entrée si elle est comprise dans les limites de contrainte. Si la valeur est inférieure à la valeur basse, elle renvoie la valeur basse. Si la valeur est supérieure à la valeur élevée, elle renvoie la valeur élevée.

constrain( distance, 0, 10)

constrain(['Store dist'], 6, distance)

Renvoie 0 si distance est inférieure à 0, 10 si distance est supérieure à 10 et distance dans les autres cas.

Renvoie 6 si Store dist est inférieure à 6, distance si Store dist est supérieure à distance et Store dist dans les autres cas.

iff(<condition>,<true value>,<false value>)

Renvoie une valeur si une condition est true et une autre valeur si la condition est false.

<true value> et <false value> peuvent être :

  • Un champ numérique. Si le nom du champ renferme un espace, utilisez des crochets.
  • Un nombre.
  • Une fonction.

iff(field1 > field2, field1, 0)

iff(field1 > field2, iff(field2 = 0, field3, field4), 0)

Renvoie field1 si field1 est supérieur à field2 et 0 dans les autres cas.

Renvoie le résultat de la deuxième fonction iff si field1 est supérieur à field2 et 0 dans les autres cas.

when(<expression1>, <result1>, <expression2>, <result2>, ... , <expressionN>, <resultN>, <default>)

Evalue une série d’expressions jusqu’à ce que l’une soit true.

  • expression : une expression.
  • result : un nombre ou un champ.
  • default : une valeur facultative si les expressions ne font l’objet d’aucune correspondance.

when((field1 + 10) > 1, 1,(field2 + 10) > 2 , 2, field3)

Si field1 + 10 est supérieur à 1, renvoie 1. Sinon, vérifie si field2 + 10 est supérieur à 2. Renvoie 2 si c'est le cas. Si ce n'est pas le cas, renvoie field3.

decode(<conditional val> , <case1> , <result1>, <case2>, <result2>, ... <caseN>, <resultN>, <defaultValue> )

La fonction decode évalue une expression et compare sa valeur aux paramètres suivants. Si l’expression correspond, elle renvoie la valeur du paramètre suivant. Si aucune correspondance n’est trouvée, le dernier paramètre peut être une valeur de renvoi par défaut.

  • conditional val : un champ ou une expression.
  • case : une valeur à comparer à la conditional val.
  • result : le résultat si le cas correspond à la conditional val.
  • defaultValue : une valeur facultative si aucune autre valeur n'est true.

decode(field1 + 3 , field1, 1, field2, 2, 0)

Compare l'égalité entre la valeur conditionnelle field1 + 3 et cas1 field1. Si la condition est true, renvoie 1. Si la condition est false, compare l'égalité entre field1 + 3 et field2. Si la condition est true, renvoie 2 ; sinon, renvoie 0.

Les instructions conditionnelles peuvent utiliser les opérateurs suivants :

OpérateurExplicationExempleRésultats

a > b

a < b

a est supérieur à b

a est inférieur à b

10 > 2

Faux

a >= b

a <= b

a est supérieur ou égal à b

a est inférieur ou égal à b

abs(-10) >= 10

Vrai

a != b

a est différent de b

abs(-3) != -3

Vrai

a == b

a est égal à b

abs(-5) == 5

Vrai

<condition1> OR <condition2>

La condition un ou la condition deux est satisfaite.

(abs(-5) == 5) OR (10 > 2)

Vrai

<condition1> AND <condition2>

La condition un et la condition deux sont satisfaites.

(abs(-5) == 5) AND (10 < 2)

Faux

Exemple d'une expression de zone tampon qui utilise des conditions et fonctions avancées

iff(field1 > field2, iff(field2 = 0, field3, field4), 0)

Exemple de multiplication pour une condition de jointure

iff(field1 > field2, iff(field2 = 0, field3, field4), 0) > ["Distance"] * 2