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