Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados - Gandin (1963)

Dr. Carlos Frederico Bastarz
Dr. Dirceu Luis Herdies

Programa de Pós-Graduação em Meteorologia (PGMET) do INPE

15 de Outubro de 2025

Com conteúdo parcial das notas de aulas de Peter Lynch - University College Dublin 🍀

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Formalização Estatística


  • O campo meteorológico é uma variável aleatória com estrutura de covariância conhecida
  • Os erros de observação são aleatórios, não correlacionados e de variância conhecida
  • O BLUE🔸 do campo em um ponto qualquer é dado por uma combinação linear das observações disponíveis
  • Uso de funções de correlação ou covariância espacial:
    • Descrevem a relação entre dois pontos no espaço
    • Permite representar matematicamente a ideia de que pontos mais próximos tendem a ter valores mais semelhantes
🔸BLUE: Best Linear Unbiased Estimator

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Suposições Principais

  • Objetivo destas suposições:
    • Viabilizar a aplicação do método nos computadores da época🔸
  • 👉 Isotropia e homogeneidade das correlações

  • 👉 Funções de correlação com decaimento exponencial simples

  • 👉 Raio de influência - limita o número de observações consideradas ao redor de cada ponto de grade (escala de correlação)

  • A interpolação ótima é um esquema de análise multivariado

  • Durante das décadas de 1980 e 1990, foi operacional em diversos centros (inclusive no CPTEC)

🔸Por questões práticas, muitas destas suposições ainda podem ser válidas

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Equação Fundamental


  • Onde:

    • é o vetor de análise (estado estimado)
    • é o vetor de background ou first guess
    • é o vetor de observações
    • é a matriz de peso (ou ganho)
    • é o operador observação não linear (transforma o espaço do modelo para o espaço físico das observações)
  • 👉 Esta equação é resolvida de forma analítica

Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matriz de Peso


  • A matriz determina quanto cada obvservação deve corrigir o campo de previsão:


  • Onde:

    • é a matriz de covariância dos erros de previsão (ela é constante)
    • é a matriz de covariância dos erros de observação
  • Note que é linear!

Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matriz de Peso

  • A matriz determina quanto cada observação deve corrigir o campo de previsão:


  • representa como os erros do modelo estão correlacionados espacialmente, ou seja, como uma correção em um ponto se propaga na vizinhança
  • representa a confiabilidade das observações (instrumentos, localização etc)
  • O termo funciona como um filtro estatístico que pondera o peso relativo do modelo e das observações - 👉 e o termo ?
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Operador Observação


  • Também chamado de forward operator :
    • Permite obter o first guess das observações
    • Realiza interpolações espaciais das previsões para o ponto das observações
    • Realiza transformações das variáveis de estado do modelo em quantidades observadas (e.g., o modelo de transferência radiativa CRTM🔸)
  • Note que ora escrevemos , ora escrevemos :
    • 👉 é um operador linear
    • 👉 é um operador não linear
🔸CRTM: Community Radiative Transfer Model

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Operador Observação - operador linear


  • Exemplo de interpolação linear (considere que a observação está entre dois pontos de grade; se estivesse entre 4 pontos, então a interpolação seria bilinear)
  • Considerando o exemplo de uma interpolação linear, 2 pontos de grade e 1 observação, sendo que modelo e observação representam as mesmas quantidades (e.g., temperatura)
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Operador Observação - operador linear

  • Utilzando a lei de proporções entre os seguimentos de reta:

  • Desenvolvendo a relação e resolvendo para , obtemos:

Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Operador Observação - operador linear


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Operador Observação - operador não linear

  • Se o modelo estivesse certo, qual seria o valor observado?
  • Considerando o exemplo da energia radiada por um corpo negro:

    • Lei de Stefan Boltzman:
    • Quando mais quente for um corpo, a energia total que ele irradia aumenta com a quarta potência da temperatura
  • Neste exemplo, definiremos a temperatura como a variável de estado (o modelo nos fornece ) e a energia radiada como a observação (o sensor do satélite observa ):

    • A inovação é então
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Operador Observação - operador não linear


  • Como é não linear, usamos uma aproximação linear (por série de Taylor) em torno de uma temperatura de referência :

Onde:

  • Nota: a derivada representa o operador tangente linear e o seu transposto, representa o operador adjunto utilizados no 4DVar - o adjunto, é o transposto do tangente linear 😱
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matrizes de Covariâncias

  • e são as matrizes de covariâncias dos erros de previsão e observação, respectivamente
    • Ambas são assumidas serem conhecidas
  • inclui erros dos instrumentos e de representatividade (e.g., efeitos locais) e ambos são não correlacionados
  • representa a covariância dos erros de previsão, i.e., como os erros na previsão do modelo estão distrbuídos no espaço e, indiretamente, no tempo
    • define o peso que cada observação terá na análise e o raio de influência das observações - por meio da escala de correlação
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matrizes de Covariâncias


  • De forma geral, uma matriz de covariâncias é obtida pela multiplicação do vetor de erros pelo seu transposto :


  • Considerando um número de casos suficientemente grande, obtemos o valor experado:

  • Por definição, matrizes de covariâncias são Simétricas e Positivas Definidas (SPD)
  • Na diagonal principal, tem-se os elementos de variâncias

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matrizes de Covariâncias

  • Matriz Simétrica e Positiva Definida:
    • é simétrica se
    • é positiva definida se, para qualquer vetor coluna , todos os seus autovalores forem positivos (i.e., a variância é sempre positiva)
      • Isso garante que nenhuma combinação linear entre as variáveis seja negativa e que, portanto, todas as variâncias e covariâncias serão sempre positivas
      • Além disso, há a necessidade de inversões e decomposições (e.g, Cholesky) que necessitam destas propriedades
      • Garante estabilidade numérica
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matrizes de Covariâncias

  • Dividindo-se cada elemento da matriz de covariâncias pelo produto dos desvios-padrão, obtemos a matriz de correlação:

  • Onde:
    • é a correlação dos elementos da matriz
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Matrizes de Covariâncias

  • De forma prática, matrizes de covariâncias podem ser decompostas

  • Um exemplo:

    • Onde é a matriz com as variâncias:

Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Equações da Interpolação Ótima

Equação de Análise

  • A análise é obtida adicionando-se ao campo de background o produto entre a matriz peso e a inovação:

  • A matriz peso é dada pela covariâncias do erro da previsão no espaço físico ( multiplicada pelo inverso da covariância do erro total (quanto maior a covariância do erro da previsão em relação à covariância do erro da observação, maior é a correção na previsão - e se ?):

  • A covariância do erro da análise é dada pela covariância do erro da previsão, reduzida por uma matriz igual à matriz identidade menos a matriz de peso

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)



Exemplo 1D


  • Considere um modelo matemático simples:

  • A função seno com a adição de um ruído normalmente distribuído
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


x = np.arange(-np.pi, np.pi, 0.01)
xb_seno = np.sin(x)
  • Outra forma de acrescentar o ruído:
sigma = 0.5  
ruido = np.random.randn(*x.shape) * sigma

xb = xb_seno + ruido
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


# Posições

obs_pos = np.array([-2.2, -2.1, -2.0, -1.8, 0.9, 1, 2, 3])

# Valores medidos

obs_vals = np.array([-2.2, -1.8, 0.9, 0, 1, 2, 3, 4])
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 1D

# Função peso IO

L=0.5
sigma_b=0.5
sigma_o=0.1

def weight_io(x_grid, obs_x, obs_val, xb, L=L, sigma_b=sigma_b, sigma_o=sigma_o):
    def cov(a, b): return sigma_b**2 * np.exp(-((a - b)**2)/(2*L**2))
    n = len(x_grid)
    p = len(obs_x)
    B_Ht = np.array([[cov(xi, xj) for xj in obs_x] for xi in x_grid])
    HBHt = np.array([[cov(xi, xj) for xi in obs_x] for xj in obs_x])
    R = np.eye(p) * sigma_o**2
    K = B_Ht @ np.linalg.inv(HBHt + R)
    Hxb = np.interp(obs_x, x_grid, xb)
    return xb + K @ (obs_val - Hxb)
  • Note que estamos utilizando o modelo de covariâncias Gaussiano para e , com média e desvios-padrão e
  • , assim como no exemplo do método de correções sucessivas, restringe a influência das observações no ponto analisado

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


# Cálculo da Análise - embutido na função anterior e dada por xb + K @ (obs_val - Hxb)

# Chamada da função peso (retorna o valor da análise)

xa = weight_io(x, obs_x, obs_val, xb)
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da escala de correlação :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


  • Efeitos da amplitude de :


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 2D

  • Considere um modelo matemático simples:

  • A função seno com a adição de um ruído normalmente distribuído
  • Definimos um plano Cartesiano de 100 pontos onde esta função será aplicada


Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 2D

  • Definimos dois vetores com o domínio para e
  • Definimos uma malha a partir dos valores do domínio
lon = np.linspace(-np.pi, np.pi, 10)
lat = np.linspace(-np.pi, np.pi, 10)

X, Y = np.meshgrid(lon, lat)
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 2D

  • Aplicamos a função para os valores do domínio
  • Definimos um ruído
  • Somamos o ruído à função
xb_seno = np.sin(X)

sigma = 0.5  
ruido = np.random.randn(*X.shape) * sigma

xb_2d = xb_seno + ruido
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Definição das posições e valores das observações
# Posições
obs_x = np.array([-2.2, -2.1, -2.0, -1.8, 0.9, 1.0, 2.0, 3.0])  
obs_y = np.array([ -1, 0.5, -0.5, 2, -2.8, 1.0, 0.0, 0.5]) 

# Valores medidos
obs_val = np.array([-1.0, -1.5, -2.0, -1.0, 1.0, 0.0, 0.5, 0.0]) 
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 2D

# Função peso IO

L=0.5
sigma_b=0.5
sigma_o=0.1

def weight_io_2d(X, Y, obs_x, obs_y, obs_val, xb, L=L, sigma_b=sigma_b, sigma_o=sigma_o):
    obs_pos = np.vstack((obs_x, obs_y)).T
    grid_pos = np.vstack((X.ravel(), Y.ravel())).T
    def cov(p1, p2): return sigma_b**2 * np.exp(-np.sum((p1 - p2)**2)/(2*L**2))
    B = np.array([[cov(p1, p2) for p2 in obs_pos] for p1 in obs_pos])
    Hx = np.array([[cov(p1, p2) for p2 in obs_pos] for p1 in grid_pos])
    R = np.eye(len(obs_x))*sigma_o**2
    K = Hx @ np.linalg.inv(B + R)
    Hxb = np.interp(obs_x, np.linspace(0, 2*np.pi, X.shape[1]), xb.mean(axis=0))
    ana = xb.ravel() + K @ (obs_val - Hxb)
    return ana.reshape(X.shape)
  • Note que estamos utilizando o modelo de covariâncias Gaussiano para e , com média e desvios-padrão e
  • , assim como no exemplo do método de correções sucessivas, restringe a influência das observações no ponto analisado

Histórico da Assimilação de Dados



Objective Analysis of Meteorological Fields (Gandin, 1963)


Exemplo 1D


# Cálculo da Análise - embutido na função anterior e dada por xb + K @ (obs_val - Hxb)

# Chamada da função peso (retorna o valor da análise)

xa = weight_io_2d(X, Y, obs_x, obs_y, obs_val, xb_2d)
Introdução à Assimilação de Dados (MET 563-3)

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da escala de correlação :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da amplitude de :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da amplitude de :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da amplitude de :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da amplitude de :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da amplitude de :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)

Exemplo 2D

  • Efeitos da amplitude de :

Histórico da Assimilação de Dados


Objective Analysis of Meteorological Fields (Gandin, 1963)


🎲 Notebook com Atividade Prática 5

Introdução à Assimilação de Dados (MET 563-3)

🤔 Dúvidas








🔗 https://cfbastarz.github.io/met563-3/
🐙 https://github.com/cfbastarz/MET563-3
📧 carlos.bastarz@inpe.br

Introdução à Assimilação de Dados (MET 563-3)

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style

Scoped style