Como representar a tendência ao longo do tempo?

34

Eu tenho uma série temporal de rasters em que as células de cada varredura representam algum valor em um determinado momento.

Eu gostaria de gerar um mapa que destaque a magnitude das tendências positivas ou negativas nesse valor ao longo do tempo para cada célula.

Minha abordagem um tanto ingênua é ajustar uma regressão linear simples (X = tempo e Y = valor) a cada célula e gerar a matriz de declives para uma varredura (como nas imagens de exemplo abaixo). Isso pode ser filtrado exportando apenas resultados significativos.

séries temporais de quatro células individuais

Inclinações da regressão linear

De que outra forma eu posso representar uma tendência ao longo do tempo em séries temporais rasterizadas?

Estou interessado em técnicas gerais e não em instruções específicas de software.

user2856
fonte

Respostas:

15

Traçar as inclinações estimadas, como na pergunta, é uma ótima coisa a se fazer. Em vez de filtrar por significado, no entanto - ou em conjunto com ele - por que não mapear alguma medida de quão bem cada regressão se ajusta aos dados? Para isso, o erro quadrático médio da regressão é prontamente interpretado e significativo.

Como exemplo, o Rcódigo abaixo gera uma série temporal de 11 rasters, executa as regressões e exibe os resultados de três maneiras: na linha inferior, como grades separadas de inclinações estimadas e erros quadráticos médios; na linha superior, como a sobreposição dessas grades junto com as verdadeiras inclinações subjacentes (que na prática você nunca terá, mas é oferecida pela simulação em computador para comparação). A sobreposição, porque usa cor para uma variável (inclinação estimada) e leveza para outra (MSE), não é fácil de interpretar neste exemplo específico, mas junto com os mapas separados na linha inferior pode ser útil e interessante.

Mapas

(Ignore as legendas sobrepostas na sobreposição. Observe também que o esquema de cores do mapa "Inclinações verdadeiras" não é o mesmo que o dos mapas de inclinações estimadas: o erro aleatório faz com que algumas das inclinações estimadas abranjam uma alcance mais extremo do que as inclinações reais. Este é um fenômeno geral relacionado à regressão à média .)

BTW, essa não é a maneira mais eficiente de fazer um grande número de regressões pelo mesmo conjunto de tempos: em vez disso, a matriz de projeção pode ser pré-computada e aplicada a cada "pilha" de pixels mais rapidamente do que a recalculada para cada regressão. Mas isso não importa para esta pequena ilustração.


# Specify the extent in space and time.
#
n.row <- 60; n.col <- 100; n.time <- 11
#
# Generate data.
#
set.seed(17)
sd.err <- outer(1:n.row, 1:n.col, function(x,y) 5 * ((1/2 - y/n.col)^2 + (1/2 - x/n.row)^2))
e <- array(rnorm(n.row * n.col * n.time, sd=sd.err), dim=c(n.row, n.col, n.time))
beta.1 <- outer(1:n.row, 1:n.col, function(x,y) sin((x/n.row)^2 - (y/n.col)^3)*5) / n.time
beta.0 <- outer(1:n.row, 1:n.col, function(x,y) atan2(y, n.col-x))
times <- 1:n.time
y <- array(outer(as.vector(beta.1), times) + as.vector(beta.0), 
       dim=c(n.row, n.col, n.time)) + e
#
# Perform the regressions.
#
regress <- function(y) {
  fit <- lm(y ~ times)
  return(c(fit$coeff[2], summary(fit)$sigma))
}
system.time(b <- apply(y, c(1,2), regress))
#
# Plot the results.
#
library(raster)
plot.raster <- function(x, ...) plot(raster(x, xmx=n.col, ymx=n.row), ...)
par(mfrow=c(2,2))
plot.raster(b[1,,], main="Slopes with errors")
plot.raster(b[2,,], add=TRUE, alpha=.5, col=gray(255:0/256))
plot.raster(beta.1, main="True slopes")
plot.raster(b[1,,], main="Estimated slopes")
plot.raster(b[2,,], main="Mean squared errors", col=gray(255:0/256))
whuber
fonte
4

O que você está descrevendo é "Detecção de alterações". Existem muitas técnicas para detecção de alterações usando rasters. Provavelmente, o mais comum é o diferencial de imagem, onde você subtrai uma imagem da outra para produzir uma terceira. No entanto, isso depende do tipo de dados que você está tentando comparar. Pela sua imagem, parece que você está comparando alterações de inclinação ao longo do tempo (a menos que essa área esteja sujeita a grandes obras de terra, é provável que isso não mude muito). No entanto, se você estiver comparando alterações de classe de terra ao longo do tempo, poderá usar uma abordagem diferente.

Me deparei com este artigo de D. Lu et al. em que eles comparam diferentes métodos de detecção de alterações. Aqui está o resumo:

A detecção oportuna e precisa das mudanças nas características da superfície da Terra é extremamente importante para a compreensão das relações e interações entre os fenômenos humanos e naturais, a fim de promover uma melhor tomada de decisão. Os dados de sensoriamento remoto são fontes primárias amplamente usadas para detecção de alterações nas últimas décadas. Muitas técnicas de detecção de alterações foram desenvolvidas. Este artigo resume e revisa essas técnicas. A literatura anterior mostrou que a diferenciação de imagem, a análise de componentes principais e a comparação pós-classificação são os métodos mais comuns usados ​​para a detecção de alterações. Nos últimos anos, a análise espectral de misturas, redes neurais artificiais e a integração do sistema de informações geográficas e dados de sensoriamento remoto tornaram-se técnicas importantes para aplicações de detecção de alterações. Diferentes algoritmos de detecção de alterações têm seus próprios méritos e nenhuma abordagem única é ideal e aplicável a todos os casos. Na prática, algoritmos diferentes são frequentemente comparados para encontrar os melhores resultados de detecção de alterações para uma aplicação específica. A pesquisa de técnicas de detecção de mudanças ainda é um tópico ativo e são necessárias novas técnicas para usar efetivamente os dados remotamente cada vez mais diversificados e complexos disponíveis ou projetados para serem disponibilizados em breve a partir de sensores aéreos e via satélite. Este artigo é uma exploração abrangente de todas as principais abordagens de detecção de alterações implementadas, conforme encontrado na literatura. algoritmos diferentes são frequentemente comparados para encontrar os melhores resultados de detecção de alterações para uma aplicação específica. A pesquisa de técnicas de detecção de mudanças ainda é um tópico ativo e são necessárias novas técnicas para usar efetivamente os dados remotamente cada vez mais diversificados e complexos disponíveis ou projetados para serem disponibilizados em breve a partir de sensores aéreos e via satélite. Este artigo é uma exploração abrangente de todas as principais abordagens de detecção de alterações implementadas, conforme encontrado na literatura. algoritmos diferentes são frequentemente comparados para encontrar os melhores resultados de detecção de alterações para uma aplicação específica. A pesquisa de técnicas de detecção de mudanças ainda é um tópico ativo e são necessárias novas técnicas para usar efetivamente os dados remotamente cada vez mais diversificados e complexos disponíveis ou projetados para serem disponibilizados em breve a partir de sensores aéreos e via satélite. Este artigo é uma exploração abrangente de todas as principais abordagens de detecção de alterações implementadas, conforme encontrado na literatura.

Fezter
fonte
4

Existe um complemento do ArcGIS desenvolvido pelo Centro de Ciências Ambientais do USGS Upper Midwest chamado Curve Fit: uma ferramenta de regressão de varredura em nível de pixel que pode ser exatamente o que você procura. A partir da documentação:

O Curve Fit é uma extensão do aplicativo GIS ArcMap que permite ao usuário executar análises de regressão em uma série de conjuntos de dados raster (imagens com referência geográfica). O usuário insere uma matriz de valores para uma variável explicativa (X). Um conjunto de dados raster que representa a variável de resposta correspondente (Y) é emparelhado com cada valor X inserido pelo usuário. O Curve Fit usa técnicas de regressão linear ou não linear (dependendo da seleção do usuário) para calcular um modelo matemático exclusivo em cada pixel dos conjuntos de dados rasterizados de entrada. O Ajuste de curva produz superfícies rasterizadas de estimativa de parâmetros, erro e inferência de vários modelos. O Curve Fit é uma ferramenta explicativa e preditiva que fornece aos modeladores espaciais a capacidade de executar as principais funções estatísticas na melhor escala.

Aaron
fonte