Inverso da potência das distâncias - pt.LinkFang.org

Inverso da potência das distâncias


O método do inverso da potência das distâncias é um procedimento para estimação ou interpolação determinista (por oposição a um processo estocástico) em recurso a um conjunto de dados separados, geralmente no espaço. As localizações de valor desconhecido são calculadas em recurso a uma média ponderada pelo inversos das distâncias dessa mesma localização à localização de valores conhecidos (regra geral os dados reais).[1] É habitualmente utilizado em sistemas de informaçao geográfica e geoestatística e por esse motivo comparado com outros dos métodos de interpolação utilizados nessa área como é o caso da krigagem ou interpolação por vizinho mais próximo (também chamado, por vezes, método dos polígonos de influência). A sua formulação habitual é utilizando a potência de 2, sendo nesse caso denominado inverso do quadrado da distância.

Índice

Nota histórica


No laboratório de Harvard para computação gráfica e análise espacial, começando em 1965, vários cientistas reconsideraram, entre outras coisas, as metodologias utilizadas em sistemas de informação geográfica. Howard Fisher concebeu um novo software de mapeamento chamado SYMAP com o objectivo de melhorar a interpolação. Divulgou o seu trabalho entre os seus colegas dos quais vários vieram a participar nos eventos do laboratório. Um desses colegas, Donald Shepard, decidiu melhorar o procedimento do SYMAP, sendo os seus desenvolvimentos documentados num artigo em 1968.[2] O algoritmo de Shepard foi influênciado pelas experiências de William Warntz e outros colegas do mesmo laboratório que trabalhavam em análise espacial e conduziam experiências com a exponenciação da distância. Devido a isso Shepard usou o inverso da potência distância como ponderador na interpolação.

Definição


O cálculo do valor u numa dada posição x em recurso às amostras \({\displaystyle u_{i}=u(x_{i})}\) for \({\displaystyle i=0,1,...,N}\) utilizando o método do inverso da potência das distâncias é (segundo Shepard, 1968)[2]:

\({\displaystyle u(\mathbf {x} )=\sum _{i=0}^{N}{\frac {w_{i}(\mathbf {x} )u_{i}}{\sum _{j=0}^{N}{w_{j}(\mathbf {x} )}}},}\)

onde

\({\displaystyle w_{i}(\mathbf {x} )={\frac {1}{d(\mathbf {x} ,\mathbf {x} _{i})^{p}}}}\)

Algoritmo do Inverso da potência das distâncias (Python)


A implementação bidimensional que se segue é feita na linguagem Python (versão 2.7.2) com recurso à biblioteca NumPy tendo por esse motivo o seguinte cabeçalho de importações (está considerado também a biblioteca matplotlib usada para visualização):

from __future__ import division
import numpy as np
import matplotlib.pyplot as plt

Repare-se que a primeira linha de importação refere-se à possibilidade de uma divisão entre inteiros poder ser lida como podendo ter um resultado decimal não sendo de maior consequência na transcrição do seguinte procedimento para qualquer outra linguagem (inclusive o próprio Python em versões mais recentes). A função que se segue faz, com efeito, a interpolação com recurso a uma matriz de dados na qual a primeira coluna é a coluna da posição X, a segunda posição Y, e terceira valor da amostra.

def IPD(dados,blocos,p):
    resultado = np.zeros(blocos)
    for x in xrange(resultado.shape[0]):
        for y in xrange(resultado.shape[1]):
             dist = np.sqrt((x-dados[:,0])**2+(y-dados[:,1])**2)
             if 0 in dist:
                 ind = np.where(dist == 0)
                 resultado[x,y] = dados[ind[0][0],2]
             else:
                 resultado[x,y] = np.sum((1/dist**p)*dados[:,2])/np.sum(1/dist**p)
    return resultado

Numa versão simplificada poderiamos ter o seguinte procedimento:

def IPD(dados,blocos,p):
    resultado = np.zeros(blocos)
    for x in xrange(resultado.shape[0]):
        for y in xrange(resultado.shape[1]):
             dist = np.sqrt((x-dados[:,0])**2+(y-dados[:,1])**2)
             resultado[x,y] = np.sum((1/dist**p)*dados[:,2])/np.sum(1/dist**p)
    return resultado

No entanto repare-se que o algoritmo não está preparado para conceber casos onde a distância do bloco da matriz ao ponto é 0 (sendo por isso o inverso da distância de valor indeterminado). Assim inserindo a seguinte condição if/else podemos prever esta situação perguntando se existe algum valor 0 no vector calculado de distâncias entre pontos dos dados e bloco a calcular:

             dist = np.sqrt((x-dados[:,0])**2+(y-dados[:,1])**2)
             if 0 in dist:
                 ind = np.where(dist == 0)
                 resultado[x,y] = dados[ind[0][0],2]
             else:
                 resultado[x,y] = np.sum((1/dist**p)*dados[:,2])/np.sum(1/dist**p)

Se existir tal caso então o algoritmo procura a posição do 0 e devolve esse valor como valor estimado (sendo por isso o valor da própria amostra onde está localizado), caso contrário é feito o procedimento de calculo habitual. Para melhor compreensão do algoritmo descrito aqui é importante que se compreenda o que algumas das funções fazem:

Na utilização da função o utilizador deverá introduzir como argumentos a matriz de dados (onde as colunas devem ser X, Y , valor, por esta ordem: 0,1,2), uma tupla com o número de blocos na dimensão X e Y, por exemplo: (150,200), e finalmente o valor da potência que se pretende utilizar (2 para o inverso do quadrado das distâncias). No exemplo seguinte a estimação vai ser feita numa matriz de 150 blocos na direção X e 200 blocos na direção Y com recurso à função transcrita acima e ao seguinte conjunto de dados:

Da função, utilizando uma potência de dois resultou, o seguinte por comparação com a imagem original de onde foram retirados os dados:

A utilização de diferente potências (1 a 6) tem uma influência significativa no modelo final que se pode aproximar mais ou menos da imagem objectivo:

Evidentemente no sentido de se atingir uma imagem objectivo (nesta experiência por nós conhecida) não só é importante a representação visual como também a reprodução estatística dos dados. Não existe qualquer ferramenta matemática que force à reprodução do histograma na interpolação por inverso da potência das distâncias. Mesmo na eventualidade disso se concretizar nada garante que os dados usados na interpolação tenham a mesma distribuição univariada (histograma) que a imagem objectivo (ou área de estudo) como podemos ver na comparação seguinte entre a distribuição dos dados e distribuição da imagem objectivo:

Analisando a reprodução do histograma nas interpolações por oposição à imagem objectivo podemos observar que para este caso em particular quanto maior a potência mais aproximado é o histograma:

Isto não implica que a melhor reprodução da imagem objectivo será com potências elevadas mas sim que dependerá do caso de estudo. Entre excepções de notar estão:

Discussão


Existem várias modificações ao procedimento original de Shepard, geralmente por modificando o método de cálculo dos ponderados ou inserindo a noção de anisotropia na estimação à semelhança da krigagem.

Ver também


Referências


  1. Soares, A. (2006), "Geoestatística para as ciências da Terra e do Ambiente" (2006), Lisboa: Instituto Superior Técnico
  2. a b Shepard, Donald (1968). «A two-dimensional interpolation function for irregularly-spaced data». Proceedings of the 1968 ACM National Conference. pp. 517–524. doi:10.1145/800186.810616  









Categorias: Geoestatística | Estatística




Data da informação: 17.12.2020 06:15:26 CET

Fonte: Wikipedia (Autores [História])    Licença: CC-by-sa-3.0

Mudanças: Todas as imagens e a maioria dos elementos de design relacionados a essas foram removidos. Alguns ícones foram substituídos por FontAwesome-Icons. Alguns modelos foram removidos (como "o artigo precisa de expansão) ou atribuídos (como" notas de rodapé "). As classes CSS foram removidas ou harmonizadas.
Os links específicos da Wikipedia que não levam a um artigo ou categoria (como "Redlinks", "links para a página de edição", "links para portais") foram removidos. Todo link externo possui um FontAwesome-Icon adicional. Além de algumas pequenas mudanças de design, foram removidos os contêineres de mídia, mapas, caixas de navegação, versões faladas e microformatos geográficos.

Observe: Como o conteúdo fornecido é retirado automaticamente da Wikipedia no momento especificado, uma verificação manual foi e não é possível. Portanto, o LinkFang.org não garante a precisão e a atualidade do conteúdo adquirido. Se houver uma informação incorreta no momento ou com uma exibição imprecisa, sinta-se à vontade para Contate-Nos: email.
Veja também: Cunho & Política de Privacidade.