Tutorial: incluindo expressões
Neste tutorial, você está gravando uma expressão para calcular a distância percorrida por robôs com base na velocidade e no tempo de viagem. Teste a expressão antes de aplicá-la a um tipo de dispositivo em.
Sobre esta tarefa
Você está testando a expressão off-line para certificar-se de que o cálculo funciona e de que a sintaxe está correta.
No script de teste, você cria um tipo de dispositivo de amostra, gerando alguns dados de amostra e aplica a expressão aos dados de amostra para criar uma nova métrica distance .
Antes de iniciar
Instale o Python 3.9.x em seu ambiente.
Etapa 1: definir sua expressão
Calcule a distância percorrida por robôs. Dois dos itens de dados de entrada do tipo de dispositivo de amostra de robô são speed e travel_time.
Defina a distância como:
distance = speed * travel time
Etapa 2: gravar sua expressão em Python
Por exemplo:
df['distance'] = df['speed']*df['travel_time']
Etapa 3: testar sua expressão
Crie um script chamado test_my_expression.py. No script, conclua estas etapas:
- Importar as bibliotecas e os pacotes do Python. Por exemplo:
import datetime as dt import numpy as np import pandas as pd from collections import namedtuple - Defina um namedtuple para capturar os metadados para a expressão.
PythonExpression = namedtuple('Exp', 'output expression') - Crie três robôs de amostra,
robot_a,robot_berobot_c. Exiba os dados.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) - Inclua a expressão.
df["distance"] = df["speed"] * df["travel_time"] print(df) - Modele a função
PythonExpressione seus metadados no script. Como você está executando o script off-line, deve-se modelar o comportamento da função. Use uma tupla Python com um novo item de dados e uma expressão de sequência.ex1 = PythonExpression('distance','df["speed"]*df["travel_time"]') - Avalie a expressão.
df[ex1.output] = eval(ex1.expression) print(df) - Execute o script na linha de comandos. Por exemplo:
python3 test_my_expression.py
O script cria um novo item de dados distance. Se for bem-sucedido, você estará pronto para usar a expressão em uma função na interface do usuário.
Etapa 4: Criar um tipo de dispositivo de amostra
- Na página Configuração , na aba Devices , clique no ícone de mais (+) para adicionar um novo tipo de dispositivo.
- Selecione o modelo de tipo de amostra de Robot.
- Designe um nome ao tipo de dispositivo.
- Clique em Criar.
- Selecione o tipo de dispositivo de amostra.
- Clique em Configurar tipo de dispositivo e em seguida, clique em Dados.
As métricas levam até 5 minutes minutos para gerar.
Etapa 5: aplicar a expressão ao tipo de dispositivo
- Na guia dados , clique em Criar métrica.
- Selecione a função
PythonExpressionno catálogo. - Configure o escopo e, em seguida, clique em Avançar.
- Remova
distance =da função de antes e, no campo de expressão, insira:df["speed"]*df["travel_time"] - Clique em Avançar.
- Especificar
distancecomo o item de dados de saída. - Clique em Criar.
- Na lista de itens de dados, selecione
distance. - Visualizar os novos dados da métrica a distância. Aguarde até 5 minutos para avaliar a expressão em relação aos dados de amostra.