Commit a84d96fbd81e1924e288bedef7f9f3d19be959d3
1 parent
5061d625
Exists in
master
and in
7 other branches
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)
Showing
2 changed files
with
80 additions
and
19 deletions
Show diff stats
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 | /* |