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 121  
122 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 128 Include:
125 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 133 $layerPt = $this->layer;
130 134 $layerPt->set("tolerance",0);
... ... @@ -164,17 +168,27 @@ Include:
164 168 foreach ($pontosy as $pt)
165 169 {fwrite($f,$pt."\n");}
166 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 186 $dimx = "c(".$xi.",".$xf.")";
173 187 $dimy = "c(".$yi.",".$yf.")";
174 188 switch ($tipo)
175 189 {
176 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 192 break;
179 193 case "densidade":
180 194 $this->mapaDensidade($nomearq,$dimx,$dimy,$dir_tmp,$R_path,$locaplic);
... ... @@ -258,14 +272,18 @@ $locaplic - Onde fica o I3Geo.
258 272 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
259 273 {
260 274 $lib = '.libPaths("'.$locaplic.'/pacotes/rlib/win")';
  275 + if(file_exists($locaplic.'/pacotes/rlib/win'))
  276 + $rcode[] = $lib;
261 277 $tipoimg = "png";
262 278 }
263 279 else
264 280 {
265 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 287 $rcode[] = 'library(spatstat)';
270 288 $rcode[] = 'oppp <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
271 289 $rcode[] = 'img<-distmap(oppp)';
... ... @@ -368,25 +386,44 @@ $dir_tmp - Diretório temporário do mapserver.
368 386 $R_path - Onde fica o R.
369 387  
370 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 394 $gfile_name = nomeRandomico(20);
375 395 $graf = "png";
376 396 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")';
377 397 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")';
378 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 413 $rcode[] = 'library(spatstat)';
382 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 420 $rcode[] = 'cat(img$v,file="'.$arqpt.'img",fill=FALSE)';
385 421 $rcode[] = 'cat(img$xstep,file="'.$arqpt.'h",fill=TRUE)';
386 422 $rcode[] = 'cat(img$ystep,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
387 423 $rcode[] = 'cat(img$xrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
388 424 $rcode[] = 'cat(img$yrange,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
389 425 $rcode[] = 'cat(img$dim,file="'.$arqpt.'h",append=TRUE,fill=TRUE)';
  426 + //var_dump($rcode);
390 427 $r = executaR($rcode,$dir_tmp,$R_path,$gfile_name);
391 428 return "ok";
392 429 }
... ... @@ -417,8 +454,20 @@ $locaplic - Onde fica o I3Geo.
417 454 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")';
418 455 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")';
419 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 471 $rcode[] = 'library(spatstat)';
423 472 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
424 473 $rcode[] = 'img <- density.ppp(pt)';
... ... @@ -459,8 +508,20 @@ $locaplic - Onde fica o I3Geo.
459 508 $rcode[] = 'dadosx<-scan("'.$arqpt.'x")';
460 509 $rcode[] = 'dadosy<-scan("'.$arqpt.'y")';
461 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 525 $rcode[] = 'library(spatstat)';
465 526 $rcode[] = 'pt <- ppp(dadosx, dadosy, '.$dimx.','.$dimy.')';
466 527 $rcode[] = 'img <- distmap(pt)';
... ...
classesphp/mapa_controle.php
... ... @@ -1178,7 +1178,7 @@ Include:
1178 1178 include("classe_analise.php");
1179 1179 copiaSeguranca($map_file);
1180 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 1182 $m->salva();
1183 1183 break;
1184 1184 /*
... ...