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 | 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 | /* | ... | ... |