Skip to main content

Exemples d’expression de zone tampon pour ArcGIS Enterprise 10.5 et 10.5.1

Vous pouvez spécifier la taille d’une zone tampon en utilisant des outils GeoAnalytics autrement qu’en saisissant des valeurs ou en utilisant un champ. Dans certains cas, vous pouvez effectuer un calcul mathématique pour définir la taille de la zone tampon. Vous pouvez effectuer des calculs simples ou complexes et les appliquer à tous les enregistrements. Ce calcul s’applique à chaque entité. Les sections suivantes comprennent des exemples d'utilisation d'une expression de zone tampon. Les calculs sont effectués lors de l’exécution de l’analyse sur ArcGIS GeoAnalytics Server.

Dans ArcGIS Enterprise 10.6 et versions ultérieures, les expressions sont mises en forme à l’aide d’expressions Arcade. En savoir plus sur les expressions Arcade et sur les expressions Arcade avec GeoAnalytics Server dans la version 10.6 et les versions ultérieures.

Les expressions de zone tampon sont utilisées par les outils Reconstruct Tracks (Reconstruire les traces) et Create Buffers (Créer des zones tampon).

Calculs simples

Exemples de mathématiques simples

Les expressions de zone tampon peuvent traiter les nombres mathématiquement.

Opérateur

Explication

Exemple

Résultat

a + b

a plus b

fieldname contient la valeur 1,5

["fieldname"] + 2.5

4.0

a - b

a moins b

fieldname contient la valeur 3,3

["fieldname"]- 2.2

1.1

a * b

a multiplié par b

fieldname contient la valeur 2,0

["fieldname"] * 2.2

4.4

a / b

a divisé par b

fieldname contient la valeur 4,0

["fieldname"] / 1.25

3.2

abs( a )

Renvoie la valeur absolue (positive) de a.

fieldname contient la valeur -1,5

abs(["fieldname"])

1,5

log ( a )

Renvoie le logarithme naturel (base E) de a.

fieldname contient la valeur 1

log(["fieldname"])

0

sin ( a )

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

fieldname contient la valeur 1,5707

sin(["fieldname"])

1

cos( a )

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

fieldname contient la valeur 0

cos(["fieldname"])

1

tan( a )

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

fieldname contient la valeur 0

tan(["fieldname"])

0

sqrt( a )

Renvoie la racine carrée de a.

fieldname contient la valeur 9

sqrt(["fieldname"])

3

min( a, b )

Renvoie la valeur a ou b la plus faible.

fieldname contient les valeurs 1,5 et -3

min(["fieldname"], -3)

-3

max( a, b )

Renvoie la valeur la plus élevée entre a et b.

fieldname1 contient la valeur 1,5 et fieldname2 contient la valeur -3

max(["fieldname1"], ["fieldname2"])

1,5

Multiplication

["Distance"] * 2

Fonctions intégrées pour les outils GeoAnalytics

Exemples de fonctions de distance

Les expressions de zone tampon peuvent redéfinir des valeurs numériques en distance linéaire.

Fonction

Explication

Exemple

Résultat

as_meters( )

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( )

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( )

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( )

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( )

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( )

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

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.

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

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

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

Fonction

Explication

Exemple

Ré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 la valeur distance est inférieure à 0, 10 si la valeur 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 renvoie 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>)

Évalue une série d’expressions les unes après les autres jusqu’à ce que l’une soit true.

  • expression : une expression.

  • result : nombre ou champ.

  • default : valeur facultative si aucune des expressions ne correspond.

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 : champ ou expression.

  • case : valeur à comparer à conditional val.

  • result : résultat si le cas correspond à conditional val.

  • defaultValue : 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 le cas 1 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érateur

Explication

Exemple

Résultats

a > b

a < b

a est supérieur à b.

a est inférieur à b.

10 > 2

False

a >= b

a <= b

a est supérieur ou égal à b.

a est inférieur ou égal à b.

abs(-10) >= 10

True

a != b

a est différent de b.

abs(-3) != -3

True

a == b

a est égal à b.

abs(-5) == 5

True

OR

La condition un ou la condition deux est satisfaite.

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

True

AND

La condition un et la condition deux sont satisfaites.

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

False