Fazer um loop por arquivos netcdf e executar cálculos - Python ou R
Esta é a primeira vez que uso o netCDF e estou tentando pensar nisso.
Eu tenho vários arquivos netcdf versão 3 (NOAA NARR air.2m médias diárias durante um ano inteiro). Cada arquivo abrange um ano entre 1979 e 2012. São redes de 349 x 277 com resolução de aproximadamente 32 km. Os dados foram baixados doAqui.
A dimensão é tempo (horas desde 1/1/1800) e minha variável de interesse é ar. Eu preciso calcular dias acumulados com uma temperatura <0. Por exemplo
Day 1 = +4 degrees, accumulated days = 0
Day 2 = -1 degrees, accumulated days = 1
Day 3 = -2 degrees, accumulated days = 2
Day 4 = -4 degrees, accumulated days = 3
Day 5 = +2 degrees, accumulated days = 0
Day 6 = -3 degrees, accumulated days = 1
Eu preciso armazenar esses dados em um novo arquivo netcdf. Eu estou familiarizado com o Python e um pouco com R. Qual é a melhor maneira de percorrer cada dia, verificar o valor do dia anterior e, com base nisso, gerar um valor para um novo arquivo netcdf com exatamente a mesma dimensão e variável ... ou talvez apenas adicione outra variável ao arquivo netcdf original com a saída que estou procurando.
É melhor deixar todos os arquivos separados ou combiná-los? Eu combinei eles com ncrcat e funcionou bem, mas o arquivo é de 2,3GB.
Obrigado pela contribuição.
Meu progresso atual em python:
import numpy
import netCDF4
#Change my working DIR
f = netCDF4.Dataset('air7912.nc', 'r')
for a in f.variables:
print(a)
#output =
lat
long
x
y
Lambert_Conformal
time
time_bnds
air
f.variables['air'][1, 1, 1]
#Output
298.37473
Para me ajudar a entender melhor com que tipo de estrutura de dados estou trabalhando? A ['air'] a chave no exemplo acima e [1,1,1] também são chaves? para obter o valor de 298.37473. Como eu posso fazer um loop através de [1,1,1]?