Lesson 1 of 3
Em andamento

Download de dados ERA5 usando a linguagem de programação Python

Paulo Jorge 8 de Outubro, 2024

1.1 Objetivo para a lição

Nesta lição será apresentado um processo para fazer o download de dados do modelo ERA-5, de uma forma programática utilizando a linguagem de programação Python, através da Climate Data Store (CDS) Application Programming Interface (API).

1.2 Leitura da metainformação do modelo ERA5

1.2.1 Metainformação

A primeira etapa na exploração de dados passa por ler a metainformação do conjunto de dados de interesse. A metainformação é informação descritiva dos dados que ajuda os utilizadores a entender os formatos, as estruturas de organização, as variáveis disponíveis e unidades utilizadas, etc. Ao analisar a metainformação do modelo ERA5 ficamos a saber que o ERA5 é a 5ª geração do modelo global de reanálise do European Center Medium Weather Forecast (ECMWF) com dados de 1940 até à atualidade. Os modelos de reanálise combinam os dados observados in-situ em estações distribuídas pelo mundo com dados resultantes de modelos numéricos desenvolvidos de acordo com as leis físicas que permitem modelar as propriedades e comportamentos da atmosfera.

Acedendo à metainformação do modelo é possível conhecer a estrutura dos dados e as variáveis disponíveis.

DATA DESCRIPTION
Data type Gridded
Projection Regular latitude-longitude grid
Horizontal coverage Global
Horizontal resolution Reanalysis: 0.25° x 0.25° (atmosphere), 0.5° x 0.5° (ocean waves)

Mean, spread and members: 0.5° x 0.5° (atmosphere), 1° x 1° (ocean waves)

Temporal coverage 1940 to present
Temporal resolution Hourly
File format GRIB
Update frequency Daily

Nesta lição será explicado o download e uso dos dados de vento utilizando as variáveis descritas de seguida (aceder à metainformação para conhecer todas as variáveis do modelo):

10m u-component of wind m s-1 This parameter is the eastward component of the 10m wind. It is the horizontal speed of air moving towards the east, at a height of ten metres above the surface of the Earth, in metres per second. Care should be taken when comparing this parameter with observations, because wind observations vary on small space and time scales and are affected by the local terrain, vegetation and buildings that are represented only on average in the ECMWF Integrated Forecasting System (IFS). This parameter can be combined with the V component of 10m wind to give the speed and direction of the horizontal 10m wind.
10m v-component of wind m s-1 This parameter is the northward component of the 10m wind. It is the horizontal speed of air moving towards the north, at a height of ten metres above the surface of the Earth, in metres per second. Care should be taken when comparing this parameter with observations, because wind observations vary on small space and time scales and are affected by the local terrain, vegetation and buildings that are represented only on average in the ECMWF Integrated Forecasting System (IFS). This parameter can be combined with the U component of 10m wind to give the speed and direction of the horizontal 10m wind.

1.2.2 Licenciamento e uso dos dados

A reutilização dos dados depende das condições de uso e licenças que o proprietário estabelece. Os utilizadores (e.g. investigadores, cidadãos, empresas, etc.) devem dedicar especial atenção às licenças associadas aos conjuntos de dados.  No caso do ERA5 o utilizador acede à “Licença e Condições de uso” clicando em “Licence to use Copernicus Products” disponível na barra de informação do lado direito.

Todo o texto da licença é importante para os utilizadores, porém, destaca-se a secção 4 “Licence Permission” e a 5 “Attribution” que se transcreve de seguida na sua versão original:

4. Licence Permission

4.1. This Licence is free of charge, worldwide, non-exclusive, royalty free and perpetual.

4.2. Access to Copernicus Products is given for any purpose in so far as it is lawful, whereas use may include, but is not limited to: reproduction; distribution; communication to the public; adaptation, modification and combination with other data and information; or any combination of the foregoing.

5. Attribution

5.1. All users of Copernicus Products must provide clear and visible attribution to the Copernicus programme. The Licensee will communicate to the public the source of the Copernicus Products by crediting the Copernicus Climate Change and Atmosphere Monitoring Services:

5.1.1. Where the Licensee communicates or distributes Copernicus Products to the public, the Licensee shall inform the recipients of the source by using the following or any similar notice:
• ‘Generated using Copernicus Climate Change Service information [Year]’ and/or
• ‘Generated using Copernicus Atmosphere Monitoring Service information [Year]’.

5.1.2. Where the Licensee makes or contributes to a publication or distribution containing adapted or modified Copernicus Products, the Licensee shall provide the following or any similar notice:
• ‘Contains modified Copernicus Climate Change Service information [Year]’; and/or
• ‘Contains modified Copernicus Atmosphere Monitoring Service information [Year]’

5.1.3. Any such publication or distribution covered by clauses 5.1.1 and 5.1.2 shall state that neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.

1.3 Download dos dados

O download dos dados pode ser realizado de duas formas: A primeira através de uma interface gráfica e a segunda de forma programática utilizando a CDS API ou a CDS Toolbox.

A primeira forma, adequada a download esporádico, é realizado através do Web Graphical User Interface. O formulário web permite ao utilizador selecionar as opções disponíveis dentro dos seguintes grupos:

1. Tipo de Produto; 2. Variáveis; 3. Anos; 4. Meses; 5. Dias; 6. Horas; 7. Área geográfica de interesse;

No final do formulário o utilizador poderá fazer o download através do botão: “Login/Register to Submite request”. O processo de download está limitado a um tamanho máximo dos ficheiros de dados após seleção das opções, por essa razão existem situações em que é necessário automatizar o download para fazer a recolha sequencial de dados (por exemplo: as mesmas variáveis recolhidas de ano a ano). O download de dados de um subset do modelo ERA5 chega rapidamente a 1GB o que justifica a necessidade de uma gestão criteriosa do processo.

No final do formulário o utilizador irá encontrar dois botões que são de especial interesse para implementar os processos de download programático de dados (usados na situação em que é necessário automatizar processos). O botão “Show API Request” que mostra o código python para download via CDS API que vamos detalhar no capítulo seguinte e o “Show Toolbox Request” que permite ver o código python que pode ser utilizado no ambiente online do CDS Toolbox para correr processos. A documentação da CDS Toolbox descreve a ferramenta como um “laboratório virtual”  que oferece um espaço de trabalho que permite desenvolver aplicações em python e corrê-las nos computadores na cloud do CDS. Dessa forma os utilizadores conseguem correr programas e visualizar os resultados sem necessidade de fazer download dos dados para os seus computadores ou desenvolver programas específicos para interagir com os formatos dos dados (e.g. NetCDF). No final do processo o utilizador faz o download dos resultados e partilha-os no ambiente virtual do CDS.

O download programático será detalhado na secção seguinte onde será demonstrado o uso da CDS API.

1.4 Documentação da Climate Data Store API

A documentação da CDS API descreve os passos para instalar as bibliotecas necessárias para fazer download de dados da Climate Data Store (CDS). O processo pressupõe a criação prévia de uma conta CDS e a obtenção de uma api-key que pode ser introduzida num ficheiro de configuração. Após obter uma api-key é necessário instalar a biblioteca cdsapi através do gestor de pacotes pip (comando –> $ pip install cdsapi) ou através da aplicação anaconda.

Depois de realizados os passos anteriores o utilizador deverá programar o processo. A título demonstrativo, de seguida, é apresentado o código para fazer o download das componentes U e V do vento a 10 metros, para todas as horas, dos anos 1959 e 1960.

 

Python Code is available on GitHub -> downloadDataEra5.py.