Commit a84d96fbd81e1924e288bedef7f9f3d19be959d3

Authored by Edmar Moretti
1 parent 5061d625

Incluidos novos parâmetros na opção de análise de kernel (sigma) e nas análises …

…de distribuição de pontos(limitar análise aos pontos de um tema ou ao mapa)
classesphp/classe_analise.php
@@ -121,10 +121,14 @@ $corf - Cor final em rgb. @@ -121,10 +121,14 @@ $corf - Cor final em rgb.
121 121
122 $tmpurl - Url com o nome da imagem final 122 $tmpurl - Url com o nome da imagem final
123 123
  124 +$sigma - desvio padrão para a opção kernel
  125 +
  126 +$limitepontos - "TRUE"|"FALSE" limita o resultado ao limite geográfico dos pontos se "TRUE" ou ao limite do mapa se "FALSE"
  127 +
124 Include: 128 Include:
125 <class.palette.php> 129 <class.palette.php>
126 */ 130 */
127 - function analiseDistriPt($locaplic,$dir_tmp,$R_path,$numclasses,$tipo,$cori,$corf,$tmpurl) 131 + function analiseDistriPt($locaplic,$dir_tmp,$R_path,$numclasses,$tipo,$cori,$corf,$tmpurl,$sigma="",$limitepontos="TRUE")
128 { 132 {
129 $layerPt = $this->layer; 133 $layerPt = $this->layer;
130 $layerPt->set("tolerance",0); 134 $layerPt->set("tolerance",0);
@@ -164,17 +168,27 @@ Include: @@ -164,17 +168,27 @@ Include:
164 foreach ($pontosy as $pt) 168 foreach ($pontosy as $pt)
165 {fwrite($f,$pt."\n");} 169 {fwrite($f,$pt."\n");}
166 fclose($f); 170 fclose($f);
167 - $xi = (min($pontosx));  
168 - $xf = (max($pontosx));  
169 - $yi = (min($pontosy));  
170 - $yf = (max($pontosy));  
171 - 171 + if ($limitepontos == "TRUE")
  172 + {
  173 + $xi = (min($pontosx));
  174 + $xf = (max($pontosx));
  175 + $yi = (min($pontosy));
  176 + $yf = (max($pontosy));
  177 + }
  178 + else
  179 + {
  180 + $ext = $this->mapa->extent;
  181 + $xi = $ext->minx;
  182 + $xf = $ext->maxx;
  183 + $yi = $ext->miny;
  184 + $yf = $ext->maxy;
  185 + }
172 $dimx = "c(".$xi.",".$xf.")"; 186 $dimx = "c(".$xi.",".$xf.")";
173 $dimy = "c(".$yi.",".$yf.")"; 187 $dimy = "c(".$yi.",".$yf.")";
174 switch ($tipo) 188 switch ($tipo)
175 { 189 {
176 case "kernel": 190 case "kernel":
177 - $this->mapaKernel($nomearq,$dimx,$dimy,$dir_tmp,$R_path,$locaplic); 191 + $this->mapaKernel($nomearq,$dimx,$dimy,$dir_tmp,$R_path,$locaplic,$sigma);
178 break; 192 break;
179 case "densidade": 193 case "densidade":
180 $this->mapaDensidade($nomearq,$dimx,$dimy,$dir_tmp,$R_path,$locaplic); 194 $this->mapaDensidade($nomearq,$dimx,$dimy,$dir_tmp,$R_path,$locaplic);
@@ -258,14 +272,18 @@ $locaplic - Onde fica o I3Geo. @@ -258,14 +272,18 @@ $locaplic - Onde fica o I3Geo.
258 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) 272 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
259 { 273 {
260 $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/win")'; 274 $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/win")';
  275 + if(file_exists($locaplic.'/pacotes/rlib/win'))
  276 + $rcode[] = $lib;
261 $tipoimg = "png"; 277 $tipoimg = "png";
262 } 278 }
263 else 279 else
264 { 280 {
265 if(file_exists($locaplic."/pacotes/rlib/linux")) 281 if(file_exists($locaplic."/pacotes/rlib/linux"))
266 - $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/linux")';  
267 - }  
268 - $rcode[] = $lib; 282 + {
  283 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/linux")';
  284 + $rcode[] = $lib;
  285 + }
  286 + }
269 $rcode[] = 'library(spatstat)'; 287 $rcode[] = 'library(spatstat)';
270 $rcode[] = 'oppp <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')'; 288 $rcode[] = 'oppp <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
271 $rcode[] = 'img<-distmap(oppp)'; 289 $rcode[] = 'img<-distmap(oppp)';
@@ -368,25 +386,44 @@ $dir_tmp - Diretório temporário do mapserver. @@ -368,25 +386,44 @@ $dir_tmp - Diretório temporário do mapserver.
368 $R_path - Onde fica o R. 386 $R_path - Onde fica o R.
369 387
370 $locaplic - Onde fica o I3Geo. 388 $locaplic - Onde fica o I3Geo.
  389 +
  390 +$sigma - Bandwidth for kernel smoother in "smooth" option.
371 */ 391 */
372 - function mapaKernel($arqpt,$dimx,$dimy,$dir_tmp,$R_path,$locaplic) 392 + function mapaKernel($arqpt,$dimx,$dimy,$dir_tmp,$R_path,$locaplic,$sigma="")
373 { 393 {
374 $gfile_name = nomeRandomico(20); 394 $gfile_name = nomeRandomico(20);
375 $graf = "png"; 395 $graf = "png";
376 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")'; 396 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")';
377 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")'; 397 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")';
378 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) 398 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
379 - {$lib = '.libPaths("'.$locaplic.'/pacotes/r/win/library")';}  
380 - $rcode[] = $lib; 399 + {
  400 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/win")';
  401 + if(file_exists($locaplic.'/pacotes/rlib/win'))
  402 + $rcode[] = $lib;
  403 + $tipoimg = "png";
  404 + }
  405 + else
  406 + {
  407 + if(file_exists($locaplic."/pacotes/rlib/linux"))
  408 + {
  409 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/linux")';
  410 + $rcode[] = $lib;
  411 + }
  412 + }
381 $rcode[] = 'library(spatstat)'; 413 $rcode[] = 'library(spatstat)';
382 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')'; 414 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
383 - $rcode[] = 'img <- ksmooth.ppp(pt)'; 415 + $rcode[] = 'img <- ksmooth.ppp(pt';
  416 + if (is_numeric($sigma))
  417 + {$rcode[] = ',sigma='.$sigma.')';}
  418 + else
  419 + {$rcode[] = ')';}
384 $rcode[] = 'cat(img$v,file="'.$arqpt.'img",fill=FALSE)'; 420 $rcode[] = 'cat(img$v,file="'.$arqpt.'img",fill=FALSE)';
385 $rcode[] = 'cat(img$xstep,file="'.$arqpt.'h",fill=TRUE)'; 421 $rcode[] = 'cat(img$xstep,file="'.$arqpt.'h",fill=TRUE)';
386 $rcode[] = 'cat(img$ystep,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 422 $rcode[] = 'cat(img$ystep,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
387 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 423 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
388 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 424 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
389 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)'; 425 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
  426 + //var_dump($rcode);
390 $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name); 427 $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name);
391 return "ok"; 428 return "ok";
392 } 429 }
@@ -417,8 +454,20 @@ $locaplic - Onde fica o I3Geo. @@ -417,8 +454,20 @@ $locaplic - Onde fica o I3Geo.
417 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")'; 454 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")';
418 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")'; 455 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")';
419 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) 456 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
420 - {$lib = '.libPaths("'.$locaplic.'/pacotes/r/win/library")';}  
421 - $rcode[] = $lib; 457 + {
  458 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/win")';
  459 + if(file_exists($locaplic.'/pacotes/rlib/win'))
  460 + $rcode[] = $lib;
  461 + $tipoimg = "png";
  462 + }
  463 + else
  464 + {
  465 + if(file_exists($locaplic."/pacotes/rlib/linux"))
  466 + {
  467 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/linux")';
  468 + $rcode[] = $lib;
  469 + }
  470 + }
422 $rcode[] = 'library(spatstat)'; 471 $rcode[] = 'library(spatstat)';
423 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')'; 472 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
424 $rcode[] = 'img <- density.ppp(pt)'; 473 $rcode[] = 'img <- density.ppp(pt)';
@@ -459,8 +508,20 @@ $locaplic - Onde fica o I3Geo. @@ -459,8 +508,20 @@ $locaplic - Onde fica o I3Geo.
459 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")'; 508 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")';
460 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")'; 509 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")';
461 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) 510 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
462 - {$lib = '.libPaths("'.$locaplic.'/pacotes/r/win/library")';}  
463 - $rcode[] = $lib; 511 + {
  512 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/win")';
  513 + if(file_exists($locaplic.'/pacotes/rlib/win'))
  514 + $rcode[] = $lib;
  515 + $tipoimg = "png";
  516 + }
  517 + else
  518 + {
  519 + if(file_exists($locaplic."/pacotes/rlib/linux"))
  520 + {
  521 + $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/linux")';
  522 + $rcode[] = $lib;
  523 + }
  524 + }
464 $rcode[] = 'library(spatstat)'; 525 $rcode[] = 'library(spatstat)';
465 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')'; 526 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
466 $rcode[] = 'img <- distmap(pt)'; 527 $rcode[] = 'img <- distmap(pt)';
classesphp/mapa_controle.php
@@ -1178,7 +1178,7 @@ Include: @@ -1178,7 +1178,7 @@ Include:
1178 include("classe_analise.php"); 1178 include("classe_analise.php");
1179 copiaSeguranca($map_file); 1179 copiaSeguranca($map_file);
1180 $m = new Analise($map_file,$tema); 1180 $m = new Analise($map_file,$tema);
1181 - $cp->set_data($m->analiseDistriPt($locaplic,$dir_tmp,$R_path,$numclasses,$tipo,$cori,$corf,$tmpurl)); 1181 + $cp->set_data($m->analiseDistriPt($locaplic,$dir_tmp,$R_path,$numclasses,$tipo,$cori,$corf,$tmpurl,$sigma,$limitepontos));
1182 $m->salva(); 1182 $m->salva();
1183 break; 1183 break;
1184 /* 1184 /*