classe_analise.php

Gera análises espaciais, como buffer, calculo de centróides, etc.

Licenca

GPL2

I3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet

Direitos Autorais Reservados © 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar..nosp@m.moretti@mma.g.nosp@m.ov.br

Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation;

Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.  Consulte a Licença Pública Geral do GNU para mais detalhes.  Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.

Arquivo

i3geo/classesphp/classe_analise.php

Summary
classe_analise.phpGera análises espaciais, como buffer, calculo de centróides, etc.
Analise
Variaveis
$mapaObjeto mapa
$arquivoArquivo map file
$layerObjeto layer
$nomeNome do layer
$diretorioDiretório do arquivo map_file
$qyfileNome do arquivo de seleção (.qy)
$dbaseExisteIndica se a biblioteca dbase está carregada
Functions
__constructCria um objeto Analise
criaDefDbCria um array contendo as definições das colunas que serão criadas em uma tabela DBF conforme as exigências de arquivos dbf
truncaSTrunca o comprimento de uma string em 255 caracteres
salvaSalva o mapfile atual
analiseDistriPtGera análise de distribuição de pontos.
mapaRelatorioAnaliseDistGera um relatório da análise de distribuição de pontos.
mapaClusterGera um mapa de cluster.
mapaKernelGera um mapa de kernel.
mapaDensidadeGera um mapa de densidade de pontos.
mapaDistanciaGera um mapa de distancia de pontos.
mapaDeldirCalcula a triangulação de Delaunay e diagrama de Voronoi.
pontoEmPoligonoCruza um tema pontual com temas poligonais ou raster.
distanciaptptCalcula a distancia entre um ponto de origem e os pontos em um tema.
criaBufferGera entorno (buffer) nos elementos selecionados de um tema.
centroMassaCalcula o centro médio.
criaCentroideGera centroide dos elementos selecionados de um tema.
gradeDePontosGera uma grade de pontos com espaçamento regular definido em décimos de grau.
gradeDePolGera uma grade de polígonos com espaçamento regular definido em décimos de grau.
gradeDeHexGera uma grade de polígonos hexagonais definido em décimos de grau.
nptPolConta o número de pontos em polígono cruzando dois temas.
agrupaElementosAgrupa elementos em um polígono.
dissolvePoligonoDissolve as bordas entre polígonos com o mesmo atributo.
funcoesGeometriasFunções de análise de geometrias da ferramenta Geometrias.
calculaGeometriasFunções de cálculo de geometrias da ferramenta Geometrias.
incmapageometriasInsere geometrias como tema no mapa.
gravaCoordenadasPtLê as coordenadas de um tema pontual e grava em arquivos.

Analise

Summary
Variaveis
$mapaObjeto mapa
$arquivoArquivo map file
$layerObjeto layer
$nomeNome do layer
$diretorioDiretório do arquivo map_file
$qyfileNome do arquivo de seleção (.qy)
$dbaseExisteIndica se a biblioteca dbase está carregada
Functions
__constructCria um objeto Analise
criaDefDbCria um array contendo as definições das colunas que serão criadas em uma tabela DBF conforme as exigências de arquivos dbf
truncaSTrunca o comprimento de uma string em 255 caracteres
salvaSalva o mapfile atual
analiseDistriPtGera análise de distribuição de pontos.
mapaRelatorioAnaliseDistGera um relatório da análise de distribuição de pontos.
mapaClusterGera um mapa de cluster.
mapaKernelGera um mapa de kernel.
mapaDensidadeGera um mapa de densidade de pontos.
mapaDistanciaGera um mapa de distancia de pontos.
mapaDeldirCalcula a triangulação de Delaunay e diagrama de Voronoi.
pontoEmPoligonoCruza um tema pontual com temas poligonais ou raster.
distanciaptptCalcula a distancia entre um ponto de origem e os pontos em um tema.
criaBufferGera entorno (buffer) nos elementos selecionados de um tema.
centroMassaCalcula o centro médio.
criaCentroideGera centroide dos elementos selecionados de um tema.
gradeDePontosGera uma grade de pontos com espaçamento regular definido em décimos de grau.
gradeDePolGera uma grade de polígonos com espaçamento regular definido em décimos de grau.
gradeDeHexGera uma grade de polígonos hexagonais definido em décimos de grau.
nptPolConta o número de pontos em polígono cruzando dois temas.
agrupaElementosAgrupa elementos em um polígono.
dissolvePoligonoDissolve as bordas entre polígonos com o mesmo atributo.
funcoesGeometriasFunções de análise de geometrias da ferramenta Geometrias.
calculaGeometriasFunções de cálculo de geometrias da ferramenta Geometrias.
incmapageometriasInsere geometrias como tema no mapa.
gravaCoordenadasPtLê as coordenadas de um tema pontual e grava em arquivos.

Variaveis

$mapa

Objeto mapa

$arquivo

Arquivo map file

$layer

Objeto layer

$nome

Nome do layer

$diretorio

Diretório do arquivo map_file

$qyfile

Nome do arquivo de seleção (.qy)

$dbaseExiste

Indica se a biblioteca dbase está carregada

Functions

__construct

function __construct($map_file,  
$tema = "",
$locaplic = "",
$ext = "")

Cria um objeto Analise

parameters

$map_fileEndereço do mapfile no servidor.
$temaNome do tema que será processado
$extExtensão geográfica do mapa

criaDefDb

function criaDefDb($itens)

Cria um array contendo as definições das colunas que serão criadas em uma tabela DBF conforme as exigências de arquivos dbf

parameters

$itensarray com os nomes originais das colunas

return

{array}

truncaS

function truncaS($s)

Trunca o comprimento de uma string em 255 caracteres

parameters

$sstring

return {string}

salva

function salva()

Salva o mapfile atual

analiseDistriPt

function analiseDistriPt($locaplic,  
$dir_tmp,  
$R_path,  
$numclasses,  
$tipo,  
$cori,  
$corf,  
$tmpurl,  
$sigma = "",
$limitepontos = "TRUE",
$tema2 = "",
$extendelimite = 5)

Gera análise de distribuição de pontos.

Executa script R para gerar a imagem.

parameters

$locaplicLocalização da aplicação I3Geo
$dir_tmpDiretório temporário do mapserver
$R_pathOnde fica o R
$numclassesNúmero de classes que serão representadas
$tipoTipo de análise.
$coriCor inicial em rgb.
$corfCor final em rgb.
$tmpurlUrl com o nome da imagem final
$sigmadesvio padrão para a opção kernel
$limitepontos”TRUE”|”FALSE” limita o resultado ao limite geográfico dos pontos se “TRUE” ou ao limite do mapa se “FALSE”
$extendelimiteextende o limite dos pontos em um determinado percentual em relação a área final de abrangência Include: class.palette.php

mapaRelatorioAnaliseDist

function mapaRelatorioAnaliseDist($arqpt,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)

Gera um relatório da análise de distribuição de pontos.

Executa script R para gerar relatório .

parameters

$arqptPrefixo dos arquivos em disco com os pontos.
$dimxRange em x no formato R c(-54,-53).
$dimyRange em y no formato R c(-25,-23).
$dir_tmpDiretório temporário do mapserver.
$R_pathOnde fica o R.
$locaplicOnde fica o I3Geo.

mapaCluster

function mapaCluster($arqpt,
$arqpt2,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)

Gera um mapa de cluster.

Executa script R para gerar os dados.

parameters

$arqptPrefixo dos arquivos em disco com os pontos.
$dimxRange em x no formato R c(-54,-53).
$dimyRange em y no formato R c(-25,-23).
$dir_tmpDiretório temporário do mapserver.
$R_pathOnde fica o R.
$locaplicOnde fica o I3Geo.
$sigmaBandwidth for kernel smoother in “smooth” option.

mapaKernel

function mapaKernel($arqpt,  
$dimx,  
$dimy,  
$dir_tmp,  
$R_path,  
$locaplic,  
$sigma = "")

Gera um mapa de kernel.

Executa script R para gerar a imagem.

parameters

$arqptPrefixo dos arquivos em disco com os pontos.
$dimxRange em x no formato R c(-54,-53).
$dimyRange em y no formato R c(-25,-23).
$dir_tmpDiretório temporário do mapserver.
$R_pathOnde fica o R.
$locaplicOnde fica o I3Geo.
$sigmaBandwidth for kernel smoother in “smooth” option.

mapaDensidade

function mapaDensidade($arqpt,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)

Gera um mapa de densidade de pontos.

Executa script R para gerar a imagem.

parameters

$arqptPrefixo dos arquivos em disco com os pontos.
$dimxRange em x no formato R c(-54,-53).
$dimyRange em y no formato R c(-25,-23).
$dir_tmpDiretório temporário do mapserver.
$R_pathOnde fica o R.
$locaplicOnde fica o I3Geo.

mapaDistancia

function mapaDistancia($arqpt,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)

Gera um mapa de distancia de pontos.

Executa script R para gerar a imagem.

parameters

$arqptPrefixo dos arquivos em disco com os pontos.
$dimxRange em x no formato R c(-54,-53).
$dimyRange em y no formato R c(-25,-23).
$dir_tmpDiretório temporário do mapserver.
$R_pathOnde fica o R.
$locaplicOnde fica o I3Geo.

mapaDeldir

function mapaDeldir($arqpt,
$dir_tmp,
$R_path,
$locaplic)

Calcula a triangulação de Delaunay e diagrama de Voronoi.

Para funcionar, é necessário a instalação da biblioteca deldir do R.

http://cran.r-project.org/web/packages/deldir

parameters

$arqptPrefixo dos arquivos em disco com os pontos.
$dir_tmpDiretório temporário do mapserver.
$R_pathOnde fica o R.
$locaplicOnde fica o I3Geo.

pontoEmPoligono

function pontoEmPoligono($temaPt,
$temasPo,
$locaplic)

Cruza um tema pontual com temas poligonais ou raster.

Salva o mapa acrescentando um novo layer com o resultado.

parameters

$temaPtTema de pontos que será utilizado.
$temaPoTemas poligonais separados por virgula.
$locaplicLocalização do I3geo.

distanciaptpt

function distanciaptpt($temaorigem,
$temadestino,
$temaoverlay,
$locaplic,
$itemorigem,
$itemdestino)

Calcula a distancia entre um ponto de origem e os pontos em um tema.

São considerados apenas os pontos dentro de um tema de overlay.

parameters

temaorigemnome do layer com o ponto de origem
temadestinonome od tema com os pontos de destino
temaoverlaytema que será utilizado para selecionar o tema de destino
locapliendereço da aplicação i3geo
itemorigemnome do item na tabela de atributos do tema de origem que será acrescentado ao tema que será criado
itemdestinonome do item na tabela de atributos do tema de origem que será acrescentado ao tema que será criado

criaBuffer

function criaBuffer($distancia,  
$locaplic,  
$unir = "nao",
$wkt = "")

Gera entorno (buffer) nos elementos selecionados de um tema.

Salva o mapa acrescentando um novo layer com o buffer.

Parametros

$distanciaDistância em metros.
$locaplicLocalização do I3geo.
$unirsim|nao indica se os elementos selecionados deverão ser unidos em um só antes do buffer ser criado
$wkt(opcional) elemento no formato wkt para o qual o buffer será gerado.  Só de ve ser definido se $this->nome for vazio, ou seja se o parâmetro “tema” não tiver sido fornecido ao construtor da classe

return

nome do layer criado com o buffer.

centroMassa

function centroMassa($item = "")

Calcula o centro médio.

Se “item” for diferente de vazio, calcula o centro médio ponderado baseado no item

Parametros

$item {string}(opcional) Item q será utilizado para ponderar os valores.

criaCentroide

function criaCentroide($locaplic)

Gera centroide dos elementos selecionados de um tema.

Salva o mapa acrescentando um novo layer com os pontos.

Parametros

$locaplicLocalização do I3geo.

gradeDePontos

function gradeDePontos($xdd,
$ydd,
$px,
$py,
$locaplic,
$nptx,
$npty)

Gera uma grade de pontos com espaçamento regular definido em décimos de grau.

Salva o mapa acrescentando um novo layer com a grade de coordenadas.

$ddxEspaçamento em x.
$ddyEspaçamento em y.
$pxX do primeiro ponto (superior esquerdo)
$pyY do primeiro ponto.
$locaplicEndereço da aplicação.
$nptxNúmero de pontos em X (opcional)
$nptyNúmero de pontos em Y (opcional)

gradeDePol

function gradeDePol($xdd,
$ydd,
$px,
$py,
$locaplic,
$nptx,
$npty)

Gera uma grade de polígonos com espaçamento regular definido em décimos de grau.

Salva o mapa acrescentando um novo layer com a grade.

parameters

$xddEspaçamento em x.
$yddEspaçamento em y.
$xX do primeiro ponto (superior esquerdo)
$yY do primeiro ponto.
$locaplicEndereço da aplicação.
$nptxNúmero de pontos em X (opcional)
$nptyNúmero de pontos em Y (opcional)

gradeDeHex

function gradeDeHex($xdd,
$ydd,
$px,
$py,
$locaplic,
$nptx,
$npty)

Gera uma grade de polígonos hexagonais definido em décimos de grau.

Salva o mapa acrescentando um novo layer com a grade.

parameters

$xddEspaçamento em x.
$yddEspaçamento em y.
$pxX do primeiro ponto (superior esquerdo)
$pyY do primeiro ponto.
$locaplicEndereço da aplicação.
$nptxNúmero de pontos em X (opcional)
$nptyNúmero de pontos em Y (opcional)

nptPol

function nptPol($temaPt,
$temaPo,
$locaplic)

Conta o número de pontos em polígono cruzando dois temas.

Salva o mapa acrescentando um novo layer com o resultado.

parameters

$temaPtTema de pontos.
$temaPoTema poligonal.
$locaplicLocalização do I3geo

agrupaElementos

function agrupaElementos($item,
$locaplic)

Agrupa elementos em um polígono.

Salva o mapa acrescentando um novo layer com o resultado.

dissolvePoligono

function dissolvePoligono($item,
$locaplic)

Dissolve as bordas entre polígonos com o mesmo atributo.

Salva o mapa acrescentando um novo layer com o resultado.

$itemitem utilizado para agregar os polígonos
$locaplicLocalização do I3geo

funcoesGeometrias

function funcoesGeometrias($dir_tmp,
$imgdir,
$lista,
$operacao)

Funções de análise de geometrias da ferramenta Geometrias.

parameters

$dir_tmpDiretório temporário do mapserver
$imgdirDiretório das imagens do mapa atual
$listaString com a lista de nomes dos arquivos serializados que contém as geometrias
$operacaoTipo de análise.

calculaGeometrias

function calculaGeometrias($dir_tmp,
$imgdir,
$lista,
$operacao)

Funções de cálculo de geometrias da ferramenta Geometrias.

parameters

$dir_tmpDiretório temporário do mapserver
$imgdirDiretório das imagens do mapa atual
$listaArquivos com as geometrias
$operacaoTipo de análise.

incmapageometrias

function incmapageometrias($dir_tmp,  
$imgdir,  
$lista,  
$tipoLista = "stringArquivos")

Insere geometrias como tema no mapa.

parameters

$dir_tmpDiretório temporário do mapserver
$imgdirDiretório das imagens do mapa atual
$listaNomes, sem o caminho, dos arquivos com as geometrias, separados por vírgula.
$tipoListatipo de valores que são passados em $lista stringArquivos|arraywkt.  O default é stringArquivos

gravaCoordenadasPt

function gravaCoordenadasPt($tema,  
$limitepontos = "TRUE",
$extendelimite  )

Lê as coordenadas de um tema pontual e grava em arquivos.

Essa função é utilizada nas opções que utilizam o R para cálculos e necessitam ler as coordenadas dos pontos.

Parametros

temanome do tema com os pontos
limitepontosFALSE para considerar a extensão geográfica do mapa atual e TRUE para considerar como limite as ocorrências pontuais do tema
extendelimitepercentual utilizado para extender o limite da área resultante

return

array com as dimensões em x e y e nome dos arquivos com x e y gerados.

function __construct($map_file,  
$tema = "",
$locaplic = "",
$ext = "")
Cria um objeto Analise
function criaDefDb($itens)
Cria um array contendo as definições das colunas que serão criadas em uma tabela DBF conforme as exigências de arquivos dbf
function truncaS($s)
Trunca o comprimento de uma string em 255 caracteres
function salva()
Salva o mapfile atual
function analiseDistriPt($locaplic,  
$dir_tmp,  
$R_path,  
$numclasses,  
$tipo,  
$cori,  
$corf,  
$tmpurl,  
$sigma = "",
$limitepontos = "TRUE",
$tema2 = "",
$extendelimite = 5)
Gera análise de distribuição de pontos.
function mapaRelatorioAnaliseDist($arqpt,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)
Gera um relatório da análise de distribuição de pontos.
function mapaCluster($arqpt,
$arqpt2,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)
Gera um mapa de cluster.
function mapaKernel($arqpt,  
$dimx,  
$dimy,  
$dir_tmp,  
$R_path,  
$locaplic,  
$sigma = "")
Gera um mapa de kernel.
function mapaDensidade($arqpt,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)
Gera um mapa de densidade de pontos.
function mapaDistancia($arqpt,
$dimx,
$dimy,
$dir_tmp,
$R_path,
$locaplic)
Gera um mapa de distancia de pontos.
function mapaDeldir($arqpt,
$dir_tmp,
$R_path,
$locaplic)
Calcula a triangulação de Delaunay e diagrama de Voronoi.
function pontoEmPoligono($temaPt,
$temasPo,
$locaplic)
Cruza um tema pontual com temas poligonais ou raster.
function distanciaptpt($temaorigem,
$temadestino,
$temaoverlay,
$locaplic,
$itemorigem,
$itemdestino)
Calcula a distancia entre um ponto de origem e os pontos em um tema.
function criaBuffer($distancia,  
$locaplic,  
$unir = "nao",
$wkt = "")
Gera entorno (buffer) nos elementos selecionados de um tema.
function centroMassa($item = "")
Calcula o centro médio.
function criaCentroide($locaplic)
Gera centroide dos elementos selecionados de um tema.
function gradeDePontos($xdd,
$ydd,
$px,
$py,
$locaplic,
$nptx,
$npty)
Gera uma grade de pontos com espaçamento regular definido em décimos de grau.
function gradeDePol($xdd,
$ydd,
$px,
$py,
$locaplic,
$nptx,
$npty)
Gera uma grade de polígonos com espaçamento regular definido em décimos de grau.
function gradeDeHex($xdd,
$ydd,
$px,
$py,
$locaplic,
$nptx,
$npty)
Gera uma grade de polígonos hexagonais definido em décimos de grau.
function nptPol($temaPt,
$temaPo,
$locaplic)
Conta o número de pontos em polígono cruzando dois temas.
function agrupaElementos($item,
$locaplic)
Agrupa elementos em um polígono.
function dissolvePoligono($item,
$locaplic)
Dissolve as bordas entre polígonos com o mesmo atributo.
function funcoesGeometrias($dir_tmp,
$imgdir,
$lista,
$operacao)
Funções de análise de geometrias da ferramenta Geometrias.
function calculaGeometrias($dir_tmp,
$imgdir,
$lista,
$operacao)
Funções de cálculo de geometrias da ferramenta Geometrias.
function incmapageometrias($dir_tmp,  
$imgdir,  
$lista,  
$tipoLista = "stringArquivos")
Insere geometrias como tema no mapa.
function gravaCoordenadasPt($tema,  
$limitepontos = "TRUE",
$extendelimite  )
Lê as coordenadas de um tema pontual e grava em arquivos.