Posts com Tag ‘R’

 

Por Olga Satomi Yoshida e Leonardo Fonseca Larrubia

INTRODUÇÃO

 

Este artigo mostra com detalhes o desenvolvimento do Sistema de Medição Aplicativo utilizado no Sistema de Medição de consumo de água. A Figura 1 mostra a tela de abertura do sistema aplicativo. Na sequência serão apresentadas cada uma das funcionalidades desse sistema. Para melhor compreensão deste artigo leia antes o artigo técnico “SISTEMA PORTÁTIL DE MEDIÇÃO DE CONSUMO DE ÁGUA – Descrição do Sistema”.

 

Figura 1: Tela principal do sistema aplicativo.

SISTEMA DE MEDIÇÃO APLICATIVO

Armazenamento e processamento na Amazon Web Services (AWS)

Os dados coletados e enviados a nuvem pelo sistema físico de medição precisam ser corrigidos e analisados para gerar os perfis de consumo do local monitorado. Foi desenvolvido um aplicativo tipo dashboard com este proposito especifico, e que qualquer um, em qualquer lugar e a qualquer tempo possa acessar os resultados do aplicativo.

As seguintes tecnologias foram utilizadas para desenvolver o aplicativo.

 

Amazon Elastic Compute Cloud (EC2)

O Amazon Elastic Compute Cloud  (EC2) é um serviço web da Amazon Web Services (AWS) que disponibiliza capacidade computacional segura e redimensionável na nuvem.  A AWS oferece gratuitamente 750 horas de utilização do EC2 executando uma instância t2.micro Linux, RHEL ou SLES (1 GiB de memória e suporte para plataformas de 32 e 64 bits) durante 12 meses  (Figura 2 e a Figura 3).

Figura 2: Tela de Login da AWS.

Figura 3: Página do EC2-AWS que possibilita a administração dos computadores em nuvem.

 

Ubuntu Linux Server

É o sistema operacional (SO) para operar o recurso computacional na nuvem. O sistema é de uso é gratuito e seu código fonte é aberto.

 

R: The R Project for Statistical Computing

https://www.r-project.org/about.html

É uma linguagem e também um ambiente de desenvolvimento integrado para cálculos estatísticos e gráficos. O seu uso é gratuito, assim como o código fonte que está disponível sob a licença GNU GPL. O R possui uma vasta comunidade de usuários que disponibilizam variados “pacotes” (conjunto de rotinas, funções e/ou dados pré-programadas). Neste projeto são utilizados os seguintes pacotes:

    • shiny: cria aplicativos para web que permitem um certo grau de interação com o usuário;
    • shinydashboard: simplifica a criação de dashboard;
    • ggplot2: constrói variados tipos de gráficos;
    • plotly: constrói variados tipos de gráficos interativos;
    • rmarkdown: cria e formata documentos dinâmicos e páginas web estáticas;
    • dplyr: auxilia na manipulação e estruturação de dados;
    • stringi: auxilia na manipulação e formatação de textos;
    • lubridate: auxilia na manipulação e formatação de datas e horas.

 

RStudio Server

É um Ambiente de Desenvolvimento Integrado (IDE) para programação em R que é acessado via browser (navegador). Esse IDE permite uma melhor organização no desenvolvimento do sistema e facilita a programação (Figuras 4 e 5).

Figura 4: Tela de Login para acessar o RStudio Server via browser

Figura 5: Interface do ambiente RStudio Server

Shiny Server

É um servidor que permite a disponibilização online de aplicativos shiny. Possui recursos de escalabilidade, segurança e administração de nível corporativo.

Organização e funções do R

Foi criado um servidor com o sistema operacional (SO) Linux Ubuntu no EC2 da AWS que é responsável por disponibilizar recursos computacionais na nuvem. Nesse SO foi criado um sistema de diretórios para a organização do projeto de medição. Sua estrutura é presentada na Figura 6.

Figura 6: Organização dos diretórios para o projeto de medição de perfil de consumo de água.

Também foram instalados nesse SO os softwares R, RStudio Server e Shiny Server. Toda a programação para leitura, comandos e as análises dos dados foram realizadas usando o R. Os scripts com o códigos em R foram construídos e divididos de acordo com as funcionalidade exigida pelo sistema. Ao todo existem oito scripts, a seguir listados.

  • atualiza.R: conecta-se com a conta do pCloud, baixa, atualiza e faz uma estruturação e formatação inicial do conjunto de dados no diretório do computador da nuvem;
  • func_auxiliar.R: conjunto de funções genéricas de suporte que tem papel secundário nas análises;
  • func_carregaDados.R: conjunto de funções que carregam os dados dos diretórios e os estruturam numa única tabela;
  • func_corrigeDados.R: conjunto de funções que transformam as observações da base temporal de evento para hora, período do dia e dia. Também possuem funções que verificam a consistência e aplicam correções aos dados;
  • func_estatisticas.R: conjunto de funções que obtém informações estatísticas dos dados;
  • func_interface.R: conjunto de funções responsáveis pela construção da interface do aplicativo;
  • func_visualizacao.R: conjunto de funções que geram gráficos;
  • pacotes.R: conjunto de pacotes utilizados na programação e análise.

O RStudio Server foi utilizado como um IDE auxiliar para a interação com o R, além de servir como uma interface de acesso ao servidor via browser. Já o Shiny Server é responsável por “disponibilizar” o aplicativo online, atendendo as requisições de acesso do usuário.

 

Componentes funcionais do aplicativo

De modo geral, o funcionamento do sistema na nuvem pode ser dividido em duas partes: atualização e formatação dos dados e a análise e apresentação dos resultados.  Na Figura 7, pode-se observar que o esquema desenvolvido simplifica todo esse sistema na nuvem: O esquema do processo da operacionalização dos dados na nuvem relacionando o uso de cada tecnologia. Em 1 o desenvolvedor cria toda a operacionalização e análise de dado na nuvem e faz ajustes quando necessário. Em 2 o sistema na nuvem conecta-se ao pCloud e baixa e atualiza os dados no computador na nuvem.  Em 3 o usuário solicita o acesso ao aplicativo quando acessa o endereço via web e recebe as informações e análises (Figura 7).

Figura 7: Esquema do processo da operacionalização dos dados na nuvem.

 

Atualização e formatação dos dados

Consiste em um script em linguagem R (atualiza.R) responsável por baixar os dados do pCloud e salvá-los em um diretório local do sistema operacional Ubuntu Linux. Os dados primários estão organizados em arquivos .csv que são definidos por sensor e por dia. Após serem baixados, esses dados são estruturados em uma única tabela e a quantidade de pulsos acumulada pelo sistema de medição em cada evento é transformada em volume de água consumida. Depois é aplicada uma análise de consistência e, por fim, a tabela é salva. O sistema operacional manda o R executar essa rotina a cada 15 minutos.

 

Análise e apresentação dos resultados no aplicativo

A seguir os resultados de consumo são organizados em três bases temporais: hora, período do dia (madrugada, manhã, tarde e noite) ou dia. Diversas análises estatísticas são aplicadas e vários gráficos são construídos para cada base temporal de consumo. As análises e o monitoramento do consumo são apresentados em um aplicativo do tipo dashboard. Esse procedimento é executado toda vez que um usuário acessa o aplicativo.

 

Inteligências inseridas no aplicativo

A primeira ação do aplicativo é a análise de consistência dos dados monitorados dos sensores. O objetivo é identificar e eliminar ruídos no conjunto de dados. Eventos que apresentam consumos acima de um limite máximo são considerados ruídos e são excluídos. Para as torneiras e mictórios foi fixado um volume máximo de 3600 litros por hora.

Devido a uma falha inerente de conectividade do sistema de medição, há sempre um delay no acionamento do sistema de medição, e portanto foi acrescentado um tempo médio de 2,5 segundos ao tempo de duração dos eventos.

O volume obtido para os eventos de cada ponto de medição é sempre corrigido pela curva média de erro de cada medidor de acordo com as calibrações realizadas em laboratório.

Nos vasos sanitários é registrado apenas a ocorrência de evento com sua respectiva duração, sem ser medido, de fato, o consumo de água em cada evento. Tal consumo é estimado pela multiplicação da vazão média de descarga (obtidas através de estudos anteriores) com a duração do evento.

Com os consumos de cada ponto já estimados e corrigidos parte-se para a fase de análises estatísticas, que procuram descrever o perfil de consumo de água no ambiente. Os consumos, que até então eram por evento, são agregados por hora, por período do dia e por dia. De acordo com cada uma dessas bases temporais são obtidas algumas estatísticas resumo como média, mediana, máximo, mínimo de consumo, entre outras.

Os gráficos de séries temporais exibem a história do consumo até o momento atual. Os gráficos de “pizza” mostram a participação de cada aparelho ou grupo de pontos no consumo total. Os gráficos de barras permitem desagregar o consumo de acordo com a base temporal selecionada, possibilitando a visualização dos picos horários de maior consumo, a verificação de consumo nas madrugadas, ou os dias de maior consumo na semana. Os gráficos  boxplot e histogramas descrevem a distribuição da dispersão dos consumos ocorridos, sendo possível perceber qual é a faixa de consumo mais frequente, se períodos de tempo de consumo elevados são recorrentes, quais os valores de consumo mais destoantes entre muitas outras funcionalidades de análises.

As falhas possíveis de ocorrer são:

  • Perda de dados em decorrência de falta de energia, falta de bateria, ou entupimento da mangueira de água provocando erros como ZEROS ou VAZIOS nos registros de pulsos; ou
  • erro no registro de pulsos tipo outlier impactando no volume calculado.

Foi desenvolvida uma inteligência de dados para gerar alarmes, identificar e corrigir estes erros em tempo real. Na Figura 8 os alarmes estão indicando perda de dados em 3 aparelhos, 2 mictórios e uma torneira. Para estes pontos, a inteligência do aplicativo estima um consumo para toda perda de dado.

Figura 8: No link, a direita indicação de que não está havendo registro de consumo em três aparelhos.

 

Interfaces de acesso às funcionalidades do aplicativo

O aplicativo permite ao usuário ter acesso às informações e análises do consumo de água de forma dinâmica, fácil, simples e em tempo real. O aplicativo apresenta uma interface em essencialmente duas partes: uma barra lateral de navegação  (Figura 9 – A) e um painel que exibe informações e análises de acordo com o item selecionado na barra lateral (Figura 9 – B).

Figura 9: – Tela inicial do aplicativo.

A barra lateral é composta por três itens (Figura 10 – A):

  • Monitoramento: exibe informações do consumo;
  • Informações técnicas: exibe informações mais técnicas sobre o projeto;
  • Sobre: breve descrição do projeto.

Monitoramento: agrupa seis subitens responsáveis por exibir o consumo de água de acordo com o local escolhido pelo usuário (Figura 10 – B):.

  • Global: relativo ao consumo de todo o ambiente.
  • Torneiras: relativo ao consumo das torneiras. Na parte inferior do painel que exibe o acompanhamento de consumo é possível selecionar e exibir as informações individualizadas de cada torneira.
  • Mictórios: relativo ao consumo dos mictórios. Na parte inferior do painel que exibe o acompanhamento de consumo é possível selecionar e exibir as informações individualizadas de cada mictório.
  • Vasos: relativo ao consumo dos vasos.
  • Frequência de pessoas: relativo à quantidade de pessoas que usam o ambiente.
  • Análise de correlação: permite o usuário fazer uma cruzar o perfil de consumo entre os pontos de monitoramento.

Além dos seis subitens há uma barra de seleção que permite o usuário selecionar a base temporal (hora, período do dia ou dia) na qual deseja exibir as informações e análises do consumo; há uma caixa de marcação que permite o usuário escolher se quer ou não considerar os períodos que não houve consumo na análise e, por fim, há dois campos de data em que o usuário pode definir a data de inicio e de fim do período que deseja acompanhar o consumo.

O item Informações técnicas é composto por quatro subitens (Figura 10 – C)::

  • Sensores: exibe detalhes dos sensores e sobre seu funcionamento;
  • Modelagem: exibe informações sobre a modelagem aplicada aos dados;
  • Equipe: exibe a composição da equipe que participou do projeto;
  • Outros: exibe outras informações que podem ser relevantes.

O item Sobre exibe informações gerais sobre o projeto.

Figura 10: Detalhamento da barra lateral.

RESUMO

 

Este artigo apresentou com detalhes a solução desenvolvida para o Sistema de Medição Aplicativo e as diversas funcionalidades e ferramentas de análise que foram disponibilizadas aos usuários.

SISTEMA PORTÁTIL DE MEDIÇÃO DE CONSUMO DE ÁGUA

Outros artigos da série

 

Licença Creative Commons
Esta obra, “SISTEMA PORTÁTIL DE MEDIÇÃO DE PERFIS DE CONSUMO DE ÁGUA – Desenvolvimento de solução no Amazon AWS“, de  Olga Satomi Yoshida e Leonardo Fonseca Larrubia está sob a licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional.