1
My files are these...
regressao.js
(regre.list(data)
Which calculates the regression and returns values for atualizaPa.js
(atualPA.atua(data,palavra)
var db = require('../config/db_config.js'); //Definição do CONTROLLER no BANCO
var atual = require('../controller/atualizaPA.js');
// função de de listar-----------------------------------------------
exports.list = function regressao(data) {
var capTX = 0;
var contPA = 0;
var consPA = 0;
var consDia = 0.02;
var capT2 = 0;
var diasTY = 0;
var calcXY = 0;
var somDes = 0;
var medX = 0;
var medY = 0;
var calcA = 0;
var calcB = 0;
var desvioP = 0;
var erroP = 0;
if (!data) {
return ({
error: 'Regressão não realizada'
});
} else {
for (var i = 0; i < data.paa.length; i++) {
var ps = data.paa[i];
capTX += ps.capacPA; // Soma do consumo de todos os PA's
contPA = 1 + i; // Contador da amostragem
capT2 += ps.capacPA * ps.capacPA;
diasTY += ps.capacPA / (ps.qtdPesPA * consDia);
consPA += (ps.capacPA / (ps.qtdPesPA * consDia)) * ps.qtdPesPA;
calcXY += ps.capacPA * (ps.capacPA / (ps.qtdPesPA * consDia));
};
medX = (capTX / contPA);
medY = (diasTY / contPA);
calcA = ((contPA * calcXY) - (capTX * diasTY)) / ((contPA * capT2) - (capTX * capTX));
calcB = (medY - (calcA * medX));
for (var i = 0; i < data.paa.length; i++) {
var md = data.paa[i];
somDes += (medY - md.capacPA / (md.qtdPesPA * consDia)) * (medY - md.capacPA / (md.qtdPesPA * consDia));
};
desvioP = Math.sqrt(somDes / (contPA - 1));
erroP = (desvioP / Math.sqrt(contPA));
return (calcA + ' ' + calcB + ' ' + erroP + ' ' + consDia);
}
};
updates.js Updating all records with the calculation returned from the previous function
var paAtual = require('../controller/paController.js');
var db = require('../config/db_config.js'); //Definição do CONTROLLER no BANCO
exports.atua = function(data, palavra) {
var calcA = parseFloat(palavra[0]);
var calcB = parseFloat(palavra[1]);
var erroP = parseFloat(palavra[2]);
var consDia = parseFloat(palavra[3]);
var atua;
var valor = 0;
data.paa = data.paa.map(function(teste) {
var linhaY = teste.capacPA / (teste.qtdPesPA * consDia);
teste.qtdDiaPA = Math.round(((linhaY - ((calcA * teste.capacPA) + calcB) + erroP) + erroP + linhaY) * erroP / 10);
teste.cadPA = new Date();
db.Pa.findOne({
codPA: teste.codPA
}, function(error, pa) {
if (!error && !pa) {
return ('PA ' + test.codPA + ' NÃO ENCONTRADO');
} else {
pa.codPA = teste.codPA;
pa.latPA = teste.latPA;
pa.lonPA = teste.lonPA;
pa.qtdPesPA = teste.qtdPesPA;
pa.qtdDiaPA = teste.qtdDiaPA;
pa.adminPA = teste.adminPA;
pa.nomePA = teste.nomePA;
pa.capacPA = teste.capacPA;
pa.cidadePA = teste.cidadePA;
pa.estadoPA = teste.estadoPA;
pa.statusPA = teste.statusPA;
pa.cadPA = new Date
pa.save(function(error, pa) {
if (error) {
return ('Valor de campo inválido');
} else {
return (pa);
}
});
}
})
valor = [teste.qtdDiaPA, Math.round(linhaY), teste.capacPA];
return valor;
});
var test = data.paa;
//test = test.replace(/"/gi, '');
return test;
};
app.js - What is my interpoint where I call /regre to perform the previous functions
// ***EU QUERO TRANSFORMAR ISSO EM UM FUNÇÃO EM QUE POSSA CHAMAR DE ONDE QUISER***
var app = require('./config/app_config.js');
var regre = require('./controller/regressao.js');
var atualPA = require('./controller/atualizaPA.js');
var verifica = require('./controller/entrega.js');
var fs = require('fs');
//var consPA = 0, qtdDias = 0, consumo = 0, popul = 0, cont = 0;
var paController = require('./controller/paController.js');
var pipeiroController = require('./controller/pipeiroController.js');
var rotaController = require('./controller/rotaController.js');
var manancialController = require('./controller/manancialController.js');
var omController = require('./controller/omController.js');
var entregaController = require('./controller/entregaController.js');
var validator = require('validator');
var replace = require('replace');
var data = 0;
var palavra = 0;
var testando = 0;
app.get('/regre', function(req, res) {
paController.list(function(resp) {
data = {
"paa": resp
};
var teste = regre.list(data);
palavra = teste.split(" ");
var atual = atualPA.atua(data, palavra);
res.jsonp(atual);
});
});
graphic.html - Which is where I want to call the function that will bring the array data to be rendered, that is, when the page is loaded, it should already go with the data set returned - array.
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="../controller/entrega.js"></script>
<script type="text/javascript">
var testegraf = [[9,11,8],[8,9,8],[1,3,10],[4,7,10],[8,11,10],[5,11,12],[5,13,14],[24,39,15],[1,10,15],[18,33,16]];
//var aux1 = testegraf.replace(/"/gi, '');
google.charts.load('current', {'packages':['scatter']});
google.charts.setOnLoadCallback(drawChart);
function drawChart () {
var data = new google.visualization.DataTable();
data.addColumn('number', 'Analise Dispersão');
data.addColumn('number', 'Regressão');
data.addColumn('number', 'Cisternas');
alert([testegraf]);
data.addRows(testegraf);
var options = {
chart: {
title: 'Analise de Regressão em dispersão',
subtitle: 'Baseado nas Cisternas Existentes'
},
width: 500,
height: 300,
series: {
0: {axis: 'hours studied'},
1: {axis: 'final grade'}
},
axes: {
y: {
'hours studied': {label: 'Cisternas'},
'final grade': {label: 'Regressão'}
}
}
};
var chart = new google.charts.Scatter(document.getElementById('scatter_dual_y'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="scatter_dual_y" style="width: 500px; height: 500px;"></div>
</body>
</html>
So far, I haven’t been able to get it computed in html.
Please avoid long discussions in the comments; your talk was moved to the chat
– Maniero