Skip to content
Mateus Sotero edited this page Dec 21, 2023 · 8 revisions

Bem-vindo à Wiki de Rotas, aqui é descrito informações detalhadas sobre o sistema de rotas deste projeto no GitHub. Esta Wiki foi criada para fornecer uma documentação clara e abrangente sobre como a navegação e o roteamento são implementados e gerenciados em nosso código.

Predict.js

Esse tópico tem como objetivo principal explicar como o sistema de roteamento funciona e como a previsão meteorológica é determinada com base na localização do usuário. Essa rota recebe uma requisição POST com a latitude/longitude do usuário, encontra a estação de monitoramento climático mais próxima e chama o modelo de previsão (predict_oc.py) para ela. Após isso, é devolvido o resultado da previsão.

Modelo de dados da requisição POST

A requisição POST deve ser feita para a rota http://localhost:3000/predict do servidor. O corpo da requisição deve incluir um objeto JSON contendo a propriedade localização, que, por sua vez, deve ser um objeto contendo as propriedades latitude e longitude.

Exemplo de Corpo da Requisição POST

*sugestão de programa para testar a rota: insomnia

Integração com Previsão Meteorológica

O código integra um script Python para previsão meteorológica. Quando a estação mais próxima é determinada, o código inicia um processo filho para executar o script Python predict_oc.py, passando a estação como argumento. O resultado da execução é enviado de volta para o frontend como resposta à requisição.

Função SeletorDeEstacao

A função SeletorDeEstação recebe as coordenadas de latitude e longitude do usuário e determina a estação meteorológica mais próxima. Utilizando a fórmula de Haversine, o código calcula a distância entre as coordenadas do usuário e as coordenadas de cada estação na lista coordenadasEstacoes.json. A estação mais próxima é então identificada e passada como argumento para um script Python que realiza a previsão meteorológica.

current snapshot

Com o servidor backend ligado, (No diretório atmoseer-app\backend, aplicar o comando > node app.js) enviar uma requisição POST para a rota /predict conforme o Modelo de dados da requisição POST descrito acima. Ao seguir esses passos, quando a rota chama o script predict_oc.py, o mesmo apresenta um erro nos dados passados por parâmetro para a função OrdinalClassifier como mostra a foto abaixo: