Commit 33e39436810995864ae2da55609471aeee5cef4c

Authored by Edmar Moretti
1 parent 5fe14577

--no commit message

admin/admin.db
No preview for this file type
admin/php/classe_metaestat.php
@@ -475,8 +475,9 @@ class Metaestat{ @@ -475,8 +475,9 @@ class Metaestat{
475 $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); 475 $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel);
476 $un = $this->listaUnidadeMedida($metaVariavel["codigo_unidade_medida"]); 476 $un = $this->listaUnidadeMedida($metaVariavel["codigo_unidade_medida"]);
477 $agrupamento = ""; 477 $agrupamento = "";
  478 + $colunavalor = $metaVariavel["colunavalor"];
478 foreach($dados as $d){ 479 foreach($dados as $d){
479 - $valores[] = $d[$metaVariavel["colunavalor"]]; 480 + $valores[] = $d[$colunavalor];
480 } 481 }
481 if(!empty($agruparpor)){ 482 if(!empty($agruparpor)){
482 $agrupamento = array(); 483 $agrupamento = array();
@@ -484,10 +485,10 @@ class Metaestat{ @@ -484,10 +485,10 @@ class Metaestat{
484 $g = $d[$agruparpor]; 485 $g = $d[$agruparpor];
485 //var_dump($d);exit; 486 //var_dump($d);exit;
486 if(!empty($agrupamento[$g])){ 487 if(!empty($agrupamento[$g])){
487 - $agrupamento[$g] += $d[$metaVariavel["colunavalor"]]; 488 + $agrupamento[$g] += $d[$colunavalor];
488 } 489 }
489 else{ 490 else{
490 - $agrupamento[$g] = $d[$metaVariavel["colunavalor"]]; 491 + $agrupamento[$g] = $d[$colunavalor];
491 } 492 }
492 } 493 }
493 natsort($agrupamento); 494 natsort($agrupamento);
@@ -497,6 +498,7 @@ class Metaestat{ @@ -497,6 +498,7 @@ class Metaestat{
497 $min = ""; 498 $min = "";
498 $max = ""; 499 $max = "";
499 $quantidade = count($valores); 500 $quantidade = count($valores);
  501 + $quartis = array();
500 if($un["permitesoma"] == "1"){ 502 if($un["permitesoma"] == "1"){
501 $soma = array_sum($valores); 503 $soma = array_sum($valores);
502 } 504 }
@@ -507,9 +509,33 @@ class Metaestat{ @@ -507,9 +509,33 @@ class Metaestat{
507 sort($valores); 509 sort($valores);
508 $min = $valores[0]; 510 $min = $valores[0];
509 $max = $valores[$quantidade - 1]; 511 $max = $valores[$quantidade - 1];
  512 + include_once(__DIR__."/../../classesphp/classe_estatistica.php");
  513 + $calc = new estatistica();
  514 + $calc->calcula($valores);
  515 + $v = $calc->resultado;
  516 + //expressao para o mapfile
  517 + $expressao[] = "([".$colunavalor."]<=".($v["quartil1"]).")";
  518 + $expressao[] = "(([".$colunavalor."]>".($v["quartil1"]).")and([".$colunavalor."]<=".($v["quartil2"])."))";
  519 + $expressao[] = "(([".$colunavalor."]>".($v["quartil2"]).")and([".$colunavalor."]<=".($v["quartil3"])."))";
  520 + $expressao[] = "([".$colunavalor."]>".($v["quartil3"]).")";
  521 + $nomes[] = "<= ".($v["quartil1"]);
  522 + $nomes[] = "> ".($v["quartil1"])." e <= ".($v["quartil2"]);
  523 + $nomes[] = "> ".($v["quartil2"])." e <= ".($v["quartil3"]);
  524 + $nomes[] = "> ".($v["quartil3"]);
  525 +
  526 + $quartis = array(
  527 + "cortes"=>array(
  528 + "q1"=>$v['quartil1'],
  529 + "q2"=>$v['quartil2'],
  530 + "q3"=>$v['quartil3']
  531 + ),
  532 + "expressoes"=>$expressao,
  533 + "nomes"=>$nomes
  534 + );
510 } 535 }
511 $histograma = array_count_values($valores); 536 $histograma = array_count_values($valores);
512 return array( 537 return array(
  538 + "colunavalor"=>$colunavalor,
513 "soma"=>$soma, 539 "soma"=>$soma,
514 "media"=>$media, 540 "media"=>$media,
515 "menor"=>$min, 541 "menor"=>$min,
@@ -517,7 +543,8 @@ class Metaestat{ @@ -517,7 +543,8 @@ class Metaestat{
517 "quantidade"=>$quantidade, 543 "quantidade"=>$quantidade,
518 "histograma"=>$histograma, 544 "histograma"=>$histograma,
519 "grupos"=>$agrupamento, 545 "grupos"=>$agrupamento,
520 - "unidademedida"=>$un 546 + "unidademedida"=>$un,
  547 + "quartis"=>$quartis
521 ); 548 );
522 } 549 }
523 return false; 550 return false;
admin/php/metaestat.php
@@ -252,9 +252,18 @@ switch (strtoupper($funcao)) @@ -252,9 +252,18 @@ switch (strtoupper($funcao))
252 */ 252 */
253 case "ALTERAMEDIDAVARIAVEL": 253 case "ALTERAMEDIDAVARIAVEL":
254 $m = new Metaestat(); 254 $m = new Metaestat();
  255 + $default = false;
  256 + //verifica se a criacao da medida esta sendo feita na tabela default
  257 + if($codigo_tipo_periodo < 5 && $codigo_estat_conexao == 0 && $esquemadb == "public" && $colunaidgeo == "codigoregiao"){
  258 + $default = true;
  259 + }
255 if(empty($id_medida_variavel)){ 260 if(empty($id_medida_variavel)){
256 //isso ira criar um novo registro 261 //isso ira criar um novo registro
257 $id_medida_variavel = $m->alteraMedidaVariavel($codigo_variavel); 262 $id_medida_variavel = $m->alteraMedidaVariavel($codigo_variavel);
  263 + //o filtro e necessario para permitir a selecao dos registros apenas do que pertence a medida da variavel escolhida
  264 + if($default == true){
  265 + $filtro = " id_medida_variavel = $id_medida_variavel ";
  266 + }
258 if(!empty($nomemedida)){ 267 if(!empty($nomemedida)){
259 $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida); 268 $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida);
260 } 269 }
@@ -262,10 +271,9 @@ switch (strtoupper($funcao)) @@ -262,10 +271,9 @@ switch (strtoupper($funcao))
262 else{ 271 else{
263 $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida); 272 $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida);
264 } 273 }
265 - //verifica se a criacao da medida esta sendo feita para a tabela default  
266 - if($codigo_tipo_periodo < 5 && $codigo_estat_conexao == 0 && $esquemadb == "public" && $colunaidgeo == "codigoregiao"){ 274 + //adiciona os parametros de tempo conforme o tipo de periodo escolhido
  275 + if($default == true){
267 $parametros = $m->listaParametro($id_medida_variavel); 276 $parametros = $m->listaParametro($id_medida_variavel);
268 - //adiciona os parametros de tempo conforme o tipo de periodo escolhido  
269 //anual 277 //anual
270 if($codigo_tipo_periodo >= 0){ 278 if($codigo_tipo_periodo >= 0){
271 if($m->buscaNoArray($parametros,"coluna","ano") == false){ 279 if($m->buscaNoArray($parametros,"coluna","ano") == false){
@@ -298,7 +306,6 @@ switch (strtoupper($funcao)) @@ -298,7 +306,6 @@ switch (strtoupper($funcao))
298 } 306 }
299 } 307 }
300 } 308 }
301 -  
302 retornaJSON($m->listaMedidaVariavel("",$id_medida_variavel)); 309 retornaJSON($m->listaMedidaVariavel("",$id_medida_variavel));
303 exit; 310 exit;
304 break; 311 break;
@@ -347,6 +354,38 @@ switch (strtoupper($funcao)) @@ -347,6 +354,38 @@ switch (strtoupper($funcao))
347 retornaJSON($m->listaClassificacaoMedida($id_medida_variavel,$id_classificacao)); 354 retornaJSON($m->listaClassificacaoMedida($id_medida_variavel,$id_classificacao));
348 exit; 355 exit;
349 break; 356 break;
  357 + case "CALCULACLASSIFICACAO":
  358 + if($tipo == "quartil"){
  359 + $m = new Metaestat();
  360 + $dados = $m->sumarioMedidaVariavel($id_medida_variavel);
  361 + $dados = $dados["quartis"];
  362 + $n = count($dados["expressoes"]);
  363 + //as cores vem no formato rgb(0,0,0);
  364 + if(!empty($cores)){
  365 + $cores = str_replace("rgb(","",$cores);
  366 + $cores = str_replace(")","",$cores);
  367 + $cores = explode(";",$cores);
  368 + }
  369 + $m->excluirRegistro("i3geoestat_classes","id_classificacao",$id_classificacao);
  370 + for($i=0;$i<$n;++$i){
  371 + $id_classe = $m->alteraClasseClassificacao($id_classificacao);
  372 + $expressao = $dados["expressoes"][$i];
  373 + $titulo = $dados["nomes"][$i];
  374 + if(!empty($cores)){
  375 + $cor = explode(",",$cores[$i]);
  376 + $vermelho = $cor[0];
  377 + $verde = $cor[1];
  378 + $azul = $cor[2];
  379 + }
  380 + $m->alteraClasseClassificacao("",$id_classe,$titulo,$expressao,$vermelho,$verde,$azul,"","","-1","-1","-1","");
  381 + }
  382 + }
  383 + if($tipo == "intervalosiguais"){
  384 + //TODO
  385 + }
  386 + retornaJSON("ok");
  387 + exit;
  388 + break;
350 /* 389 /*
351 Valor: ALTERACLASSECLASSIFICACAO 390 Valor: ALTERACLASSECLASSIFICACAO
352 391
classesjs/classe_util.js
@@ -2190,7 +2190,7 @@ i3GEO.util = { @@ -2190,7 +2190,7 @@ i3GEO.util = {
2190 novoel, 2190 novoel,
2191 wdocaiframe, 2191 wdocaiframe,
2192 fix = false, 2192 fix = false,
2193 - wsrc = i3GEO.configura.locaplic+"/ferramentas/colourramp/index.php?ncores="+ncores+"&doc="+janelaid+"&elemento="+elemento, //+janela+"&elemento="+elemento+"&tipo="+tipo, 2193 + wsrc = i3GEO.configura.locaplic+"/ferramentas/colourramp/index.php?ncores="+ncores+"&doc="+janelaid+"&elemento="+elemento+"&locaplic="+i3GEO.configura.locaplic, //+janela+"&elemento="+elemento+"&tipo="+tipo,
2194 nx = "", 2194 nx = "",
2195 texto = "Cor", 2195 texto = "Cor",
2196 id = "i3geo_janelaCorRamp", 2196 id = "i3geo_janelaCorRamp",
classesphp/class.palette.php
@@ -36,13 +36,13 @@ class palette{ @@ -36,13 +36,13 @@ class palette{
36 protected $colors=array(); //Arreglo de colores por los cuales debe pasar la paleta 36 protected $colors=array(); //Arreglo de colores por los cuales debe pasar la paleta
37 /* 37 /*
38 Variavel: $colorPath 38 Variavel: $colorPath
39 - 39 +
40 Array com os valores finais 40 Array com os valores finais
41 */ 41 */
42 public $colorPath=array(); //Arreglo de colores finales de la paleta 42 public $colorPath=array(); //Arreglo de colores finales de la paleta
43 /* 43 /*
44 Variavel: $colorRGB 44 Variavel: $colorRGB
45 - 45 +
46 Array com os valores finais em RGB 46 Array com os valores finais em RGB
47 */ 47 */
48 public $colorRGB=array(); //Arreglo de colores finales de la paleta em rgb 48 public $colorRGB=array(); //Arreglo de colores finales de la paleta em rgb
@@ -50,7 +50,7 @@ class palette{ @@ -50,7 +50,7 @@ class palette{
50 /* 50 /*
51 Function: __construct 51 Function: __construct
52 52
53 -Cria o objeto palette 53 +Cria o objeto palette
54 54
55 parameters: 55 parameters:
56 56
@@ -123,12 +123,12 @@ $numSteps - n&amp;uacute;mero de cores finais @@ -123,12 +123,12 @@ $numSteps - n&amp;uacute;mero de cores finais
123 $string.="\t</tr>\n</table>\n"; 123 $string.="\t</tr>\n</table>\n";
124 return($string); 124 return($string);
125 } 125 }
126 - 126 +
127 public function listaColourRamps($locaplic){ 127 public function listaColourRamps($locaplic){
128 $arquivos = array(); 128 $arquivos = array();
129 - if ($dh = opendir($locaplic."/symbols/colourramp")) 129 + if ($dh = opendir($locaplic."/symbols/colourramp"))
130 { 130 {
131 - while (($file = readdir($dh)) !== false) 131 + while (($file = readdir($dh)) !== false)
132 { 132 {
133 if(!stristr($file, '.cores') === FALSE) 133 if(!stristr($file, '.cores') === FALSE)
134 { 134 {
@@ -151,8 +151,10 @@ $numSteps - n&amp;uacute;mero de cores finais @@ -151,8 +151,10 @@ $numSteps - n&amp;uacute;mero de cores finais
151 $coresfinais = array(); 151 $coresfinais = array();
152 $p = intval(($fim - $inicio) / $ncores); 152 $p = intval(($fim - $inicio) / $ncores);
153 for($i=$inicio;$i<=$fim;$i = $i + $p){ 153 for($i=$inicio;$i<=$fim;$i = $i + $p){
154 - if(count($coresfinais) < $ncores)  
155 - $coresfinais[] = $cores[$i]; 154 + if(count($coresfinais) < $ncores){
  155 + if($cores[$i])
  156 + $coresfinais[] = $cores[$i];
  157 + }
156 } 158 }
157 return $coresfinais; 159 return $coresfinais;
158 } 160 }
ferramentas/colourramp/index.php
@@ -194,7 +194,7 @@ function aplicarCores() @@ -194,7 +194,7 @@ function aplicarCores()
194 doc.getElementById(elemento).onchange.call(); 194 doc.getElementById(elemento).onchange.call();
195 } 195 }
196 catch(e){} 196 catch(e){}
197 - window.parent.YAHOO.janelaCorRamp.xp.panel.destroy(); 197 + window.parent.YAHOO.i3GEO.janela.manager.find("i3geo_janelaCorRamp").destroy();
198 } 198 }
199 199
200 (function () { 200 (function () {
ferramentas/metaestat/dicionario1.js
@@ -86,6 +86,13 @@ it:&quot;&quot; @@ -86,6 +86,13 @@ it:&quot;&quot;
86 }], 86 }],
87 "13":[ 87 "13":[
88 { 88 {
  89 +pt:"Escolher cores",
  90 +en:"",
  91 +es:"",
  92 +it:""
  93 +}],
  94 +"14":[
  95 +{
89 pt:"", 96 pt:"",
90 en:"", 97 en:"",
91 es:"", 98 es:"",
ferramentas/metaestat/index.js
@@ -592,10 +592,10 @@ i3GEOF.metaestat = { @@ -592,10 +592,10 @@ i3GEOF.metaestat = {
592 i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3"); 592 i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3");
593 }, 593 },
594 quartis: function(){ 594 quartis: function(){
595 - //TODO quartis  
596 var id_medida_variavel = $i("i3geoCartoComboMedidaVariavelEditor").value, 595 var id_medida_variavel = $i("i3geoCartoComboMedidaVariavelEditor").value,
597 id_classificacao = $i("i3geoCartoComboClassificacoesEditor").value, 596 id_classificacao = $i("i3geoCartoComboClassificacoesEditor").value,
598 - p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=calculaClassificacao&tipo=quartil&id_classificacao="+id_classificacao+"&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid, 597 + cores = $i("listaColourRampEditor").value,
  598 + p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=calculaClassificacao&tipo=quartil&cores="+cores+"&id_classificacao="+id_classificacao+"&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid,
599 temp = function(retorno){ 599 temp = function(retorno){
600 core_carregando("desativa"); 600 core_carregando("desativa");
601 }; 601 };
@@ -603,7 +603,7 @@ i3GEOF.metaestat = { @@ -603,7 +603,7 @@ i3GEOF.metaestat = {
603 i3GEO.util.ajaxGet(p,temp); 603 i3GEO.util.ajaxGet(p,temp);
604 }, 604 },
605 intervalosIguais: function(){ 605 intervalosIguais: function(){
606 - 606 +//TODO int iguais
607 }, 607 },
608 t0: function(){ 608 t0: function(){
609 var ins = "<p class='paragrafo' >" + $trad(2,i3GEOF.metaestat.dicionario1) + 609 var ins = "<p class='paragrafo' >" + $trad(2,i3GEOF.metaestat.dicionario1) +
@@ -719,26 +719,29 @@ i3GEOF.metaestat = { @@ -719,26 +719,29 @@ i3GEOF.metaestat = {
719 i3GEO.php.listaClassificacaoMedida($i("i3geoCartoComboMedidaVariavelEditor").value,temp); 719 i3GEO.php.listaClassificacaoMedida($i("i3geoCartoComboMedidaVariavelEditor").value,temp);
720 } 720 }
721 }, 721 },
722 - t4: function(remove,textoSelecionado){  
723 - //TODO incluir as opcoes de escolha de cores e criacao de classes por quartil e intervalos iguais  
724 - if(remove == true){  
725 - //remove o conteudo anteriormente construido  
726 - i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4");  
727 - } 722 + t4: function(){
  723 + //remove o conteudo anteriormente construido
  724 + i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4");
728 if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){ 725 if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){
729 alert($trad(9,i3GEOF.metaestat.dicionario)); 726 alert($trad(9,i3GEOF.metaestat.dicionario));
730 i3GEOF.metaestat.editor.t3(false); 727 i3GEOF.metaestat.editor.t3(false);
731 } 728 }
732 else{ 729 else{
733 var temp = function(dados){ 730 var temp = function(dados){
734 - var ins = "<p class='paragrafo' >" + $trad(10,i3GEOF.metaestat.dicionario1) + "<br><br>" +  
735 - "<span></span>" +  
736 - "<br><br><p><input id=i3GEOFmetaestatEditorBotao6 type='button' value='"+$trad(11,i3GEOF.metaestat.dicionario1)+"' />" +  
737 - "&nbsp;<input id=i3GEOFmetaestatEditorBotao7 type='button' value='"+$trad(12,i3GEOF.metaestat.dicionario1)+"' />"; 731 + var ins = "<p class='paragrafo' >" + $trad(10,i3GEOF.metaestat.dicionario1) +
  732 + "<br><br><p>" +
  733 + "&nbsp;<input id=i3GEOFmetaestatEditorBotao8 type='button' value='"+$trad(13,i3GEOF.metaestat.dicionario1)+"' />" +
  734 + "<br><br>&nbsp;<input id=i3GEOFmetaestatEditorBotao6 type='button' value='"+$trad(11,i3GEOF.metaestat.dicionario1)+"' />" +
  735 + "&nbsp;<input id=i3GEOFmetaestatEditorBotao7 type='button' value='"+$trad(12,i3GEOF.metaestat.dicionario1)+"' />" +
  736 + '<input type=hidden value="" id="listaColourRampEditor" />'; //utilizado pelo seletor de colourramp;
738 i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t3()","i3GEOF.metaestat.editor.t5()",ins,"i3GEOF.metaestat.editor.t4","i3GEOFmetaestatEditor",true); 737 i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t3()","i3GEOF.metaestat.editor.t5()",ins,"i3GEOF.metaestat.editor.t4","i3GEOFmetaestatEditor",true);
739 - //i3GEO.util.abreColourRamp("","listaColourRamp",ncores);  
740 - // '<input type=hidden value="" id="listaColourRamp" onchange="javascript:i3GEOF.legenda.aplicaColourRamp()" />'; //utilizado pelo seletor de colourramp  
741 - 738 + new YAHOO.widget.Button(
  739 + "i3GEOFmetaestatEditorBotao8",
  740 + {onclick:{fn: function(){
  741 + i3GEO.util.abreColourRamp("","listaColourRampEditor",5);
  742 + }}}
  743 + );
  744 + $i("i3GEOFmetaestatEditorBotao8-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
742 new YAHOO.widget.Button( 745 new YAHOO.widget.Button(
743 "i3GEOFmetaestatEditorBotao6", 746 "i3GEOFmetaestatEditorBotao6",
744 {onclick:{fn: i3GEOF.metaestat.editor.quartis}} 747 {onclick:{fn: i3GEOF.metaestat.editor.quartis}}
@@ -1061,14 +1064,14 @@ i3GEOF.metaestat = { @@ -1061,14 +1064,14 @@ i3GEOF.metaestat = {
1061 }, 1064 },
1062 comboClassificacoesMedidaVariavel: function(dados,idcombo){ 1065 comboClassificacoesMedidaVariavel: function(dados,idcombo){
1063 var ins,i,n = dados.length; 1066 var ins,i,n = dados.length;
1064 - ins = "<select id='"+idcombo+"' style='box-shadow:0 1px 5px gray;width:"+(i3GEOF.metaestat.LARGURA - 20)+"px' onchange='i3GEOF.metaestat.principal.comboClassificacoesMedidaVariavelOnchange()'><option value=''>---</option>"; 1067 + ins = "<select id='"+idcombo+"' style='box-shadow:0 1px 5px gray;width:"+(i3GEOF.metaestat.LARGURA - 20)+"px' onchange='i3GEOF.metaestat.principal.comboClassificacoesMedidaVariavelOnchange(this)'><option value=''>---</option>";
1065 for(i=0;i<n;i++){ 1068 for(i=0;i<n;i++){
1066 ins += "<option title='"+dados[i].observacao+"' value='"+dados[i].id_classificacao+"'>"+dados[i].nome+"</option>"; 1069 ins += "<option title='"+dados[i].observacao+"' value='"+dados[i].id_classificacao+"'>"+dados[i].nome+"</option>";
1067 } 1070 }
1068 ins += "</select>"; 1071 ins += "</select>";
1069 return ins; 1072 return ins;
1070 }, 1073 },
1071 - comboClassificacoesMedidaVariavelOnchange: function(){ 1074 + comboClassificacoesMedidaVariavelOnchange: function(combo){
1072 1075
1073 } 1076 }
1074 } 1077 }