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