Tutoriel : Ajout d'expressions

Dans ce tutoriel, vous écrivez une expression pour calculer la distance parcourue par des robots d'après une vitesse et un temps de déplacement. Testez l'expression avant de l'appliquer à un type d'appareil dans.

A propos de cette tâche

Remarque: Pour exécuter ce tutoriel, vous utilisez un exemple de modèle de type de terminal et des données. Les exemples de type de terminal n'utilisent pas la dernière version des types de terminal et ne prennent pas en charge les métriques de flux de données en continu. Pour plus d'informations, voir Création de métriques de traitement par lots ou de flux de données en continu.

Vous testez l'expression hors ligne afin de vérifier que le calcul fonctionne et que la syntaxe est correcte.

Dans le script de test, vous créez un exemple de type de terminal, vous générez des exemples de données et vous appliquez l'expression aux exemples de données pour créer une nouvelle métrique distance .

Avant de commencer

Installez Python 3.9.x dans votre environnement.

Etape 1 : Définir votre expression

Calculez la distance parcourue par des robots. Deux des éléments de données d'entrée du type de dispositif de l'exemple de robot sont speed et travel_time.

Définissez la distance comme suit :

distance = speed * travel time
		

Etape 2 : Ecrire votre expression dans Python

Exemple :

df['distance'] = df['speed']*df['travel_time']

Etape 3 : Tester votre expression

Créez un script appelé test_my_expression.py. Dans le script, procédez comme suit :

  1. Importez des bibliothèque et des packages Python. Exemple :
    import datetime as dt
    import numpy as np
    import pandas as pd
    from collections import namedtuple
  2. Définissez un namedtuple pour capturer les métadonnées de l'expression.
    PythonExpression = namedtuple('Exp', 'output expression')
  3. Créez trois exemples de robots : robot_a, robot_b et robot_c. Affichez les données.
    row_count = 5
    data_items = ["speed","travel_time"]
    entities = ['robot_a','robotb','robot_c']
    dfs = []
    for e in entities:
        data = np.random.normal(100,10,(row_count,len(data_items)))
        df = pd.DataFrame(data=data,columns = data_items)
        df['id'] = e
        df['evt_timestamp'] = pd.date_range(
              end=dt.datetime.utcnow(),
              periods=row_count
              )
      df = df.set_index(['id','evt_timestamp'])
      dfs.append(df)
    
    df = pd.concat(dfs)
    print(df)
  4. Ajoutez l'expression.
    df["distance"] = df["speed"] * df["travel_time"]
    print(df)
  5. Modéliser la fonction PythonExpression et ses métadonnées dans le script. Comme vous exécutez le script hors ligne, vous devez modéliser le comportement de la fonction. Utilisez un tuple Python avec un nouvel élément de données et une expression de chaîne.
    ex1 = PythonExpression('distance','df["speed"]*df["travel_time"]')
  6. Evaluez l'expression.
    df[ex1.output] = eval(ex1.expression)
    print(df)
  7. Exécutez le script à partir de la ligne de commande. Exemple :
    python3 test_my_expression.py

Le script crée l'élément de données distance. En cas de succès, vous êtes prêt à utiliser l'expression dans une fonction de l'interface utilisateur.

Etape 4: Création d'un exemple de type de terminal

  1. Sur la page Configuration , dans l'onglet Périphériques , cliquez sur l'icône plus (+) pour ajouter un nouveau type de périphérique.
  2. Sélectionnez le modèle de type d'exemple Robot.
  3. Affectez un nom au type de terminal.
  4. Cliquez sur Créer.
  5. Sélectionnez l'exemple de type de terminal.
  6. Cliquez sur Configurer le type de terminal , puis sur Données.

La génération des métriques prend jusqu'à 5 minutes.

Étape 5 : Appliquer l'expression au type de dispositif

  1. Dans l'onglet Données , cliquez sur Créer une métrique.
  2. Sélectionnez la fonction PythonExpression dans le catalogue.
  3. Définissez la portée, puis cliquez sur Suivant.
  4. Supprimez distance = de la fonction antérieure et dans la zone d'expression, entrez :
    df["speed"]*df["travel_time"]
  5. Cliquez sur Suivant.
  6. Spécifiez distance comme élément de données de sortie.
  7. Cliquez sur Créer
  8. Dans la liste des éléments de données, sélectionnez distance.
  9. Affichez les nouvelles données de métrique de distance. Attendez jusqu'à 5 minutes pour évaluer l'expression par rapport aux données de l'échantillon.
Note : Un script, offline_sample_expressions.py est également disponible dans le référentiel IoT Functions pour vous aider à vous familiariser avec la syntaxe d'expression Python utilisée pour construire des expressions dans.