Ignorar navegação

UK Met Office Global Weather Data for COVID-19 Analysis

COVID-19 coronavirus Met Office environment Weather AIforEarth

Esses dados são para os pesquisadores da COVID-19 explorarem relações entre a COVID-19 e os fatores ambientais.

Para obter mais informações, confira nossa postagem no blog. Se você precisar de recursos de computação para processar esses dados, talvez possamos ajudar.

Licença

Os usuários precisam reconhecer o Met Office como a fonte desses dados incluindo a seguinte instrução de atribuição em produtos, publicações ou aplicativos resultantes: “Contém dados do Met Office licenciados nos termos da Licença Open Government v3.0”.

Esses dados são disponibilizados nos termos da Licença Open Government.

Sobre os dados

Saída do modelo de meteorologia numérico global e do Reino Unido de alta resolução do Met Office do Reino Unido. Os dados são provenientes dos períodos bem iniciais do modelo após a assimilação dos dados, de modo que esses dados se aproximam de um conjunto de dados de observação integral da Terra.

As seguintes variáveis estão disponíveis:

  • t1o5m = temperatura do ar a 1,5 m em K
  • sh = umidade específica a 1,5 m em kg/kg (kg de vapor de água em kg de ar)
  • sw = radiação de onda curta em Wm − 2 (substituto para raio solar)
  • precip = fluxo de precipitação em kgm − 2s − 1 (multiplique por 3.600 para obter mm/h)
  • rain = fluxo de chuva em kgm − 2s − 1 (multiplique por 3.600 para obter mm/h)
  • pmsl = pressão do ar ao nível médio do mar em Pa

Esses dados são disponibilizados como arquivos NetCDF.

Os dados atualizados do modelo global e do Reino Unido estão disponíveis de 1º de janeiro de 2020 em diante. O conjunto de dados é atualizado diariamente com os dados do dia anterior.

Para informações detalhadas sobre como os dados são gerados e as particularidades dos parâmetros, confira a referência técnica.

Há algumas agregações adicionais de dados pós-processados nas regiões monitoradas quanto à COVID-19 no Reino Unido e nos EUA disponibilizadas como arquivos CSV. Mais detalhes abaixo.

Local de armazenamento

Esse conjunto de dados está armazenado na região Leste dos EUA 2 do Azure. É recomendável alocar recursos de computação na região Leste dos EUA 2 para fins de afinidade.

Volumes, retenção e frequência de atualização dos dados

Os dados matriciais são atualizados diariamente com os dados do dia anterior.

Em 18/04/20, o total do conjunto de dados foi de aproximadamente 352 G. Ele cresce toda semana em aproximadamente 22 G.

Pretendemos manter e disponibilizar esses dados desde que acreditemos que eles sejam úteis para planejar a resposta à pandemia de COVID-19.

Início rápido

Os dados são hospedados no Microsoft Azure por meio da iniciativa AI for Earth. Você pode acessar os dados de muitas formas, como:

Apontar e clicar

Abra o arquivo de índice em seu navegador. Você verá uma lista de links para arquivos de dados que podem ser baixados. Basta clicar nos links em seu navegador.

Bibliotecas de Blobs do Azure

Há uma variedade de bibliotecas em diversos idiomas para trabalhar com os Blobs do Azure. Confira a documentação do Blob do Azure para obter mais informações.

Baixar com AzCopy

Como há muitos arquivos, sugerimos instalar a ferramenta de linha de comando azcopy, que pode ser baixada aqui. Ela permite que você baixe diretórios inteiros ou vários arquivos usando curingas.

Por exemplo…

Para baixar o arquivo global_daily_precip_max_20200101.nc para o diretório atual:
azcopy cp https://metdatasa.blob.core.windows.net/covid19-response/metoffice_global_daily/precip_max/global_daily_precip_max_20200101.nc .

Para baixar o conteúdo de /metoffice_ukv_daily/snow_mean/ to ukv_daily_snow_mean/:
azcopy cp 'https://metdatasa.blob.core.windows.net/covid19-response/metoffice_ukv_daily/snow_mean/*' ukv_daily_snow_mean/

Para baixar todos os dados médios de meteorologia de municípios estatais dos EUA que correspondem ao padrão us_55*.csv:
azcopy cp --recursive --include-pattern 'us_55*.csv' https://metdatasa.blob.core.windows.net/covid19-response/regional_subset_data/us_data/ .

Como os dados são organizados

metoffice_global_daily/

…contém os arquivos de dados matriciais globais diários do Met Office. Há um diretório para cada variável.

Cada arquivo tem um nome descritivo como global_daily_{variable}_{statistic}_{YYYYMMDD}.nc.

  • .../t1o5m_mean/ = arquivos de temperatura média diária do ar
  • .../t1o5m_max/ = arquivos de temperatura máxima diária do ar
  • .../t1o5m_min/ = arquivos de temperatura mínima diária do ar
  • .../sh_mean/ = arquivos de umidade específica média diária
  • .../sh_max/ = arquivos de umidade específica máxima diária
  • .../sh_min/ = arquivos de umidade específica mínima diária
  • .../sw_mean/ = arquivos de média diária de radiação de onda curta
  • .../sw_max/ = arquivos de máxima diária de radiação de onda curta
  • .../precip_mean/ = arquivos de fluxo de precipitação média diária
  • .../precip_max/ = arquivos de fluxo de precipitação máxima diária
metoffice_global_hourly/

…contém os arquivos de dados matriciais globais por hora do Met Office.

Cada arquivo tem um nome descritivo como global_hourly_{variable}_global_{YYYYMMDD}.nc.

  • .../t1o5m/ = arquivos de temperatura do ar por hora
  • .../sh/ = arquivos de umidade específica por hora
  • .../sw/ = arquivos de radiação de onda curta por hora
  • .../precip/ = arquivos de fluxo de precipitação por hora
  • .../precip3hr/ = três arquivos de fluxo de precipitação por hora
  • .../pmsl/ = arquivos de pressão do ar por hora ao nível médio do mar
metoffice_ukv_daily/

…contém os arquivos de dados matriciais UKV diários do Met Office.

Cada arquivo tem um nome descritivo como ukv_daily_{variable}_{statistic}_{YYYYMMDD}.nc.

  • .../t1o5m_mean/ = arquivos de temperatura média diária do ar
  • .../t1o5m_max/ = arquivos de temperatura máxima diária do ar
  • .../t1o5m_min/ = arquivos de temperatura mínima diária do ar
  • .../sh_mean/ = arquivos de umidade específica média diária
  • .../sh_max/ = arquivos de umidade específica máxima diária
  • .../sh_min/ = arquivos de umidade específica mínima diária
  • .../sw_mean/ = arquivos de média diária de radiação de onda curta
  • .../sw_max/ = arquivos de máxima diária de radiação de onda curta
metoffice_ukv_hourly/

…contém os arquivos de dados matriciais UKV por hora do Met Office.

Cada arquivo tem um nome descritivo como ukv_hourly_{variable}_{YYYYMMDD}.nc.

  • .../t1o5m_ukv/ = arquivos de temperatura do ar por hora
  • .../sh_ukv/ = arquivos de umidade específica por hora
  • .../sw_ukv/ = arquivos de radiação de onda curta por hora
  • .../pmsl_ukv/ = arquivos de pressão do ar por hora ao nível médio do mar
regional_subset_data/

…contém valores diários regionais processados para o Reino Unido e os EUA como arquivos .csv.

Os arquivos foram processados colocando os arquivos globais diários matriciais do Met Office em subconjuntos com o uso de arquivos de formato para cada região, tomando o valor médio de latitude-longitude para cada variável em cada região para cada data e salvando-os como uma tabela em um arquivo .csv*.

  • .../uk_daily_meteodata_2020jan-mar_v03.csv = valores diários para t1o5m, sh, sw e precip para todas as regiões monitoradas no Reino Unido (com todos os arquivos mesclados em /uk_data/ e /uk_data_precip).
  • .../us_daily_meteodata_2020jan-mar_v03.csv = valores diários para t1o5m, sh, sw e precip para todos os condados nos EUA (com todos os arquivos mesclados em /us_data/ e /us_data_precip)
  • .../uk_data/ = valores diários para t1o5m, sh e sw para cada região monitorada no Reino Unido (um arquivo .csv por região)
  • .../uk_data_precip/ = valores diários para precip para cada região monitorada no Reino Unido (um arquivo .csv por região)
  • .../us_data/ = valores diários para t1o5m, sh e sw para cada município nos EUA (um arquivo .csv por município)
  • .../us_data_precip/ = valores diários para precip para cada município nos EUA (um arquivo .csv por município)
shapefiles/

Contém arquivos de formato para Reino Unido, EUA, Itália, Brasil, Uganda e Vietnã.

  • .../UK/ = regiões monitoradas quanto à COVID-19 no Reino Unido
  • .../USA/ = municípios estatais dos EUA
  • .../Italy/ = GADM v3.6 de nível administrativo 2 para a Itália
  • .../Brazil/ = GADM v3.6 de nível administrativo 2 para o Brasil
  • .../Uganda/ = GADM v3.6 de nível administrativo 2 para a Uganda
  • .../Vietnam/ = GADM v3.6 de nível administrativo 2 para o Vietnã

Quando possível, os nomes de arquivo são os descritos. No entanto, considerando os curtos períodos nos quais os dados foram disponibilizados, podem ocorrer pequenas variações nas descrições de nome de arquivo. Os nomes de arquivo ainda devem descrever os dados com precisão. Se você encontrar problemas com nomes de arquivo ou com os dados em si, entre em contato conosco em covid19@informaticslab.co.uk.

Obter ajuda e contato

Para obter ajuda ou solicitações de dados adicionais, entre em contato conosco em covid19@informaticslab.co.uk.

Avisos

A MICROSOFT FORNECE O AZURE OPEN DATASETS NO ESTADO EM QUE SE ENCONTRA. A MICROSOFT NÃO OFERECE GARANTIAS OU COBERTURAS, EXPRESSAS OU IMPLÍCITAS, EM RELAÇÃO AO USO DOS CONJUNTOS DE DADOS. ATÉ O LIMITE PERMITIDO PELA LEGISLAÇÃO LOCAL, A MICROSOFT SE EXIME DE TODA A RESPONSABILIDADE POR DANOS OU PERDAS, INCLUSIVE DIRETOS, CONSEQUENTES, ESPECIAIS, INDIRETOS, ACIDENTAIS OU PUNITIVOS, RESULTANTES DO USO DOS CONJUNTOS DE DADOS.

Access

Available inWhen to use
Azure Notebooks

Quickly explore the dataset with Jupyter notebooks hosted on Azure or your local machine.

Select your preferred service:

Azure Notebooks

Azure Notebooks

Package: Language: Python

Met Office COVID-19 response dataset

This dataset is created, curated and updated for researchers looking to understand links between COVID-19 and environmental factors.

For more information check out our blog post and the data readme.

We are constantly updating the available data; subscribe to our news group to stay up to date or contact us if you have any requests or questions.

Imports and globals

Import the required modules, set up the default plot size and set some constants

In [1]:
import matplotlib.pyplot as plt 
import datetime

from azure.storage.blob import BlobClient, ContainerClient
from IPython.display import Markdown
from collections import namedtuple

%matplotlib inline
plt.rcParams['figure.figsize'] = (20.0, 10.0)

Set up the blob client with the connection details

In [2]:
account_url  = 'https://metdatasa.blob.core.windows.net/'
container_name = 'covid19-response'

# Create the ContainerClient object which will be used to enumerate blobs
container_client = ContainerClient(account_url=account_url,
                                   container_name=container_name,
                                   credential=None)

List the files under metoffice_global_daily/t1o5m_max

In [3]:
max_blobs = 10
for i_blob,blob in enumerate(container_client.list_blobs(
    name_starts_with='metoffice_global_daily/t1o5m_max')):
    print(f'{blob.name}')
    if i_blob >= max_blobs:
        break
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200101.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200102.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200103.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200104.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200105.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200106.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200107.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200108.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200109.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200110.nc
metoffice_global_daily/t1o5m_max/global_daily_t1o5m_max_20200111.nc

Get a particular file based on the data required

In [4]:
data_end = (datetime.datetime.now() - datetime.timedelta(days=9)).date()
data_start = datetime.date(2020,1,1)

def url_from_properties(model, param, freq, stat=None, day=None, hour=None):
    
    assert model in ["global","ukv"]
    assert param in ["rain", "sh", "snow", "t1o5m", "pmsl","precip","sw"]
    assert freq in ["daily","hourly"]
    if freq == 'daily':
        assert stat in ['max', 'min', 'mean']
    else:
        assert stat is None  
    assert data_start <= day <= data_end
    
    stat = '_'+stat if stat else ''

    filepath = f'metoffice_{model}_{freq}/{param}{stat}/{model}_{freq}_{param}{stat}_{day:%Y%m%d}.nc'
    return f"{account_url}/{container_name}/{filepath}"

Properties = namedtuple('Properties',["model","param","freq","stat","day"])

files = [
    Properties("global","precip","daily","mean",datetime.date(2020,3,3)),
    Properties("ukv","t1o5m","daily","min",datetime.date(2020,4,1)),
    Properties("ukv","snow","hourly",None,datetime.date(2020,2,2)),
]

for file in files:
    path = url_from_properties(*file)
    print(path.replace(account_url,''))
/covid19-response/metoffice_global_daily/precip_mean/global_daily_precip_mean_20200303.nc
/covid19-response/metoffice_ukv_daily/t1o5m_min/ukv_daily_t1o5m_min_20200401.nc
/covid19-response/metoffice_ukv_hourly/snow/ukv_hourly_snow_20200202.nc

xarray and iris are useful tools for interacting with this sort of data

In [5]:
import xarray as xr
import iris
from io import BytesIO

Stream blob into memory and load dataset in xarray

In [6]:
data_description = Properties("global","precip","daily","mean",datetime.date(2020,1,30))
file_data = BytesIO(BlobClient.from_blob_url(
    url_from_properties(*data_description)).download_blob().readall())
ds = xr.open_dataset(file_data)
ds
Out[6]:
Show/Hide data repr Show/Hide attributes
xarray.Dataset
    • bnds: 2
    • latitude: 1920
    • longitude: 2560
    • latitude
      (latitude)
      float32
      -89.953125 -89.859375 ... 89.953125
    • longitude
      (longitude)
      float32
      0.0703125 0.2109375 ... 359.9297
    • forecast_period
      ()
      timedelta64[ns]
      ...
    • forecast_reference_time
      ()
      datetime64[ns]
      ...
    • time
      ()
      datetime64[ns]
      ...
    • precipitation_flux
      (latitude, longitude)
      float32
      ...
    • latitude_longitude
      ()
      int32
      ...
    • forecast_period_bnds
      (bnds)
      float64
      ...
    • forecast_reference_time_bnds
      (bnds)
      datetime64[ns]
      ...
    • time_bnds
      (bnds)
      datetime64[ns]
      ...
  • source :
    Data from Met Office Unified Model
    um_version :
    11.2
    Conventions :
    CF-1.5

Plot it with iris

In [ ]:
import tempfile

ds.precipitation_flux.plot()

tmp = tempfile.NamedTemporaryFile(delete=False)
data_description = Properties("ukv","sw","hourly",None,datetime.date(2020,1,30))
tmp.write(BlobClient.from_blob_url(
    url_from_properties(*data_description)).download_blob().readall())
local_path = tmp.name
tmp.close()

sw = iris.load_cube(local_path)
sw
Out[ ]:
M01S01I202 (1) forecast_period forecast_reference_time grid_latitude grid_longitude
Shape 6 4 808 621
Dimension coordinates
forecast_period x - - -
forecast_reference_time - x - -
grid_latitude - - x -
grid_longitude - - - x
Auxiliary coordinates
time x x - -
Attributes
Conventions CF-1.5
STASH m01s01i202
source Data from Met Office Unified Model
um_version 11.2