top of page
Download ERA 5 (pressure levels)
Suponha que você deseja baixar vários anos de dados de reanálise, vários níveis, meses e horários. Devido à alta resolução dos dados da nova reanálise ERA 5 , o download realizado diretamente na página da ECMWF possui algumas restrições no volume de dados baixados de uma só vez. Mesmo utilizando um script python fornecido CDS API , é preciso adaptar o script para que sejam baixados vários anos. Hoje, a limitação é de aproximadamente 1 variável, 2 horários, 3 níveis na vertical, todos os meses e anos disponíveis. Para isso, foi criado uma solução simples e prática (mas que por vezes demanda testes para a sintaxe do shell script) e python para a realização do download dos dados.
##############################################################################################################
# #
#Shell script para baixar dados do Era 5 - Mateus Dias Nunes - Junho 2019 #
# #
#acesse https://cds.climate.copernicus.eu/api-how-to, e siga as instruções do site; #
#faça o cadastro para assegurar a sua chave de acesso e aceite os termos de uso; #
#acesse https://cds.climate.copernicus.eu/#!/search?text=era%205&type=dataset #
#selecione os parâmetros desejados, Clique em SHOW API Request, copie o shell script, #
#adaptando-o de acordo com suas necessidades; #
# #
# #
#Salvar este script com a extensão .bash #
#por exemplo: download_era5.bash #
#Não esqueça de dar a permissão no arquivo .bash: chmod 777 download_era5.bash #
# #
# execute o shell script download_era5.bash na mesma pasta do arquivo oculto .cdsapirc # # #
##############################################################################################################
FirstYear=1979
LastYear=2018
var=ozone_mass_mixing_ratio
LengthMonthly=( 00 31 28 31 30 31 30 31 31 30 31 30 31 )
iyear=${FirstYear}
while [ ${iyear} -le ${LastYear} ]; do
cat <<EOF> /home2/mateus/ERA5/wget_era5_${var}${iyear}.py
#!/usr/bin/env python
​
import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-pressure-levels',
{
'pressure_level':[
'1','2','3',
'5','7','10',
'20','30','50',
'70','100'
],
'variable':'ozone_mass_mixing_ratio',
'time':'12:00',
'product_type':'reanalysis',
'year':"${iyear}",
'day':[
'01','02','03',
'04','05','06',
'07','08','09',
'10','11','12',
'13','14','15',
'16','17','18',
'19','20','21',
'22','23','24',
'25','26','27',
'28','29','30',
'31'
],
'month':[
'01','02','03',
'04','05','06',
'07','08','09',
'10','11','12'
],
'format':'netcdf'
},
'${var}era5_${iyear}.nc')
EOF
chmod 777 /home2/mateus/ERA5/wget_era5_${var}${iyear}.py
/home2/mateus/ERA5/wget_era5_${var}${iyear}.py
rm -f /home2/mateus/ERA5/wget_era5_${var}${iyear}.py
let iyear=iyear+1
done
​
​
Existe outra possibilidade (abaixo), porém, devido à algumas instabilidades em minha rede, por vezes não eram baixados todos os dados para cada ano. Entretanto, o caminho a seguir, mostra uma maneira muito mais simples e "correta" para que o download seja realizado. Abaixo, é mostrada a dica do colega e pesquisador Joao Henry Huaman Chinchay do CPTEC/INPE.
##############################################################################################################
# #
# python para baixar dados do Era 5 - Joao H. Huaman Ch. - Julho 2019 # # #
# #
# execute o python script download_era.py na mesma pasta do arquivo oculto .cdsapirc # # #
##############################################################################################################
​
import cdsapi
path_output = '/home/joao/Downloads/'
for year in range(1979,2018):
c = cdsapi.Client()
c.retrieve('reanalysis-era5-pressure-levels',
{
'pressure_level': ['1','2','3','5','7','10','20','30','50','70','100'],
'variable': 'ozone_mass_mixing_ratio',
'product_type': 'reanalysis',
'year': str(year),
'month': ['01','02','03','04','05','06','07','08','09','10','11','12'],
'day': ['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'],
'time': ['12:00','18:00'],
'format': 'netcdf'
},
path_output+'era5_'+str(year)+'.nc')
​
​
bottom of page