Skip To Content

Calculer un champ

Remarque :

Cette fonction n’est pas encore prise en charge dans Map Viewer Classic (anciennement Map Viewer). Elle sera disponible dans une version future de la nouvelle version deMap Viewer Map Viewer.

Calculer un champ L’outil Calculer un champ calcule les valeurs d’un champ nouveau ou existant. Le résultat est toujours une nouvelle couche dans le contenu de votre portail ArcGIS Enterprise.

Analyse avec les GeoAnalytics Tools

Vous pouvez exécuter des analyses avec GeoAnalytics Tools via un traitement distribué sur plusieurs cœurs et machines ArcGIS GeoAnalytics Server. GeoAnalytics Tools et les outils d’analyse d’entités standard de ArcGIS Enterprise proposent différents paramètres et fonctionnalités. Pour en savoir plus sur ces différences, reportez-vous à la rubrique Différences entre les outils d’analyse d’entités.

Exemples

Supposons que vous ayez collecté les données des ventes d’une chaîne de supermarchés implantée dans tout le pays. Actuellement, le montant total des ventes par an figure dans un champ existant nommé TotalSales et vous souhaitez calculer les ventes totales pour chaque site. Vous voulez que le champ soit représenté par la somme des ventes totales réalisées en 2016 et 2017. En utilisant ces champs dans l’expression, vous calculez la valeur de champ comme $feature["Sales2016"] + $feature["Sales2017"].

Supposons que vous disposiez de mesures GPS qui enregistrent l’emplacement, l’heure, l’identifiant de bus et la vitesse des bus circulant dans une ville. Vous souhaitez créer un nouveau champ nommé SpeedFrom3 qui calcule la vitesse moyenne des trois dernières mesures GPS enregistrées pour chaque entité. Pour ce faire, vous utilisez un calcul permettant de gérer les pistes, dans lequel la piste est un bus signalé par un identifiant. Le calcul permettant de déterminer la vitesse moyenne des 3 intervalles temporels précédents et de l’intervalle temporel actuel est average($track.field["speed"].history(-4)).

Remarques sur l'utilisation

L’outil Calculer un champ est exécuté sur des tables, des entités ponctuelles, linéaires ou surfaciques.

Vous ne pouvez calculer les valeurs que pour un champ à la fois.

Vous pouvez soit calculer les valeurs dans un champ existant, soit créer un nouveau champ en spécifiant son nom.

Les expressions sont créées à l’aide des expressions Arcade.

En savoir plus sur les expressions Arcade dans l’outil Calculer un champ

Votre calcul peut éventuellement gérer les pistes. Les équations gérant les pistes utilisent des expressions Arcade qui font appel à des fonctions de piste.

Pour inclure un calcul gérant les pistes, vous devez :

  • Utiliser une couche temporelle de type instant.
  • Sélectionner The expression is track aware (L’expression permet de gérer les pistes).
  • Sélectionner les champs utilisés pour identifier les pistes.

Les pistes sont représentées par un ou plusieurs champs de piste. Par exemple, si les champs flightID et Destination sont utilisés comme identifiants de pistes, les entités [ID007, Solden] et [ID007, Tokyo] figurent dans deux pistes distinctes, car le champ Destination contient des valeurs différentes.

Appliquer des segments limites d'intervalle temporel permet d’effectuer un suivi à un intervalle défini. Si, par exemple, vous définissez la limite temporelle comme étant un jour, à partir de 9 heures du matin à la date du 1er janvier 1990 chaque piste sera tronquée à 9 heures chaque jour et analysé au sein de ce segment. Ces intervalles temporels sont une manière d’accélérer le calcul, car cela génère de plus petites pistes à analyser. S’il est pertinent d’appliquer une division par une limite d’intervalle temporel récurrent dans le cadre de l’analyse, il est recommandé d’utiliser cette méthode pour le traitement Big Data. Votre analyse permet de gérer les pistes pour définir une limite temporelle.

Les entités en sortie renvoient les champs en entrée. Si vous avez calculé les valeurs d’un nouveau champ, celui-ci est également inclus.

Si l'option Use current map extent (Utiliser l'étendue courante de la carte) est sélectionnée, seules les entités qui sont visibles au sein de l'étendue courante de la carte seront analysées. Si l’option n’est pas sélectionnée, toutes les entités en entrée qui se trouvent dans la couche en entrée sont analysées, même si elles se trouvent en dehors de l’étendue actuelle de la carte.

Limitations

Un seul champ peut être modifié à la fois.

Calculer un champ produit toujours une nouvelle couche d’entités et ne met pas à jour votre jeu de données en entrée.

Exemple de ArcGIS API for Python

L’outil Calculer un champ est disponible dans ArcGIS API for Python.

Cet exemple calcule un nouveau champ représentant l’année d’un tremblement de terre. Il présente ensuite les données modifiées à l’aide d’un bloc de données Pandas.


# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import manage_data
from arcgis.features import FeatureLayer


# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password")
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Define the feature layer you'll use for analysis
earthquake_data_url = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Earthquakes_Since1970/FeatureServer/0"
earthquake_data = FeatureLayer(earthquake_data_url)

# Calculate the year number from the date_ field
calculate_field_result = manage_data.calculate_fields(input_layer = earthquake_data, 
                                                      field_name = "year_num", 
                                                      data_type = "Integer",
                                                      expression = "Year($feature.date_)", 
                                                      output_name = "Earthquake_occurence_years")

# Visualize the results as a Pandas DataFrame when running Python in a Jupyter Notebook
import pandas as pd
features = calculate_field_result.layers[0].query()
df = pd.DataFrame.from_records(pd.DataFrame(features.value['features'])["attributes"])
df

Outils semblables

Utilisez Calculer un champ pour calculer les valeurs des entités d’un champ nouveau ou existant. D'autres outils peuvent vous aider à résoudre des problèmes légèrement différents.

Outils d'analyse Map Viewer Classic

Pour détecter les entités dans une couche temporelle, utilisez l’outil Détecter les incidents.

Outils d'analyse ArcGIS Pro

L’outil Calculer un champ est disponible dans ArcGIS Pro.

Pour calculer les valeurs d’une entrée et modifier les données existantes, utilisez l’outil Calculer un champ disponible dans la boîte à outils Data Management de ArcGIS Pro.

Pour exécuter l’outil à partir de ArcGIS Pro, votre portail actif doit être Enterprise version 10.6 ou ultérieure. Vous devez vous connecter via un compte détenteur des privilèges permettant d’effectuer une analyse d’entités GeoAnalytics.