Hoppa över navigering

UK Met Office Global Weather Data for COVID-19 Analysis

COVID-19 coronavirus Met Office environment Weather AIforEarth

Dessa data är riktade till covid-19-forskare som utforskar relationerna mellan covid-19 och miljöfaktorer.

Mer information finns i vårt blogginlägg. Om du behöver beräkningsresurser för att bearbeta dessa data kan vi kanske hjälpa dig.

Licens

Användarna måste godkänna Met Office som källa till dessa data genom att inkludera följande uttalande i resulterande produkter, publikationer och program: ”Innehåller Met Office-data som är licensierade med Open Government Licence v3.0”.

Dessa data är tillgängliga med Open Government License.

Om de data som används

Globala och högupplösta brittiska numeriska vädermodellutdata från UK Met Office. Data har hämtats från mycket tidiga steg i modellen efter dataassimilering, vilket innebär att dessa data är en ungefärlig datamängd för hela jordobservationen.

Följande variabler är tillgängliga:

  • t1o5m = Lufttemperatur på 1,5 m i K
  • sh = Massfukthalt på 1,5 m i kg/kg (kg vattenånga i kg luft)
  • sw = Kortvågig strålning i Wm − 2 (surrogat för solljus)
  • precip = Nederbördsflöde i kgm − 2s − 1 (multiplicera med 3600 för att få mm/hr)
  • rain = Regnflöde i kgm − 2s − 1 (multiplicera med 3600 för att få mm/hr)
  • pmsl = Lufttryck vid havsytans medelnivå i Pa

Datauppgifterna är tillgängliga som NetCDF-filer.

Uppdaterade globala och brittiska modelldata är tillgängliga från och med den 1 januari 2020 och framåt. Datamängden uppdateras dagligen för föregående dag.

Detaljerad information om hur dessa data genereras och de särskilda parametrarna finns i den tekniska referensen.

Vissa efterbearbetade dataaggregeringar för covid-19-rapporterande regioner i Storbritannien och USA finns tillgängliga som CSV-filer. Mer information nedan.

Lagringsplats

Datamängden lagras i Azure-regionen USA, östra 2. Vi rekommenderar att beräkningsresurser tilldelas i USA, östra 2 av tillhörighetsskäl.

Snabblänkar

Volymer, kvarhållning och uppdateringsfrekvens för data

Data i rutnät uppdateras dagligen för föregående dag.

Den 18 april 2020 var datamängden cirka 352 G. Den växer med ungefär 22 G i veckan.

Vi kommer att behålla och göra data tillgängliga så länge vi bedömer att de är användbara vid planeringen av åtgärder för covid-19-pandemin.

Snabbstart

Datauppgifterna finns hos Microsoft Azure via deras AI for Earth-initiativ. Du kan komma åt datauppgifterna på flera sätt, exempelvis genom att:

Peka och klicka

Öppna indexfilen i webbläsaren. En lista visas med länkar till datafiler som du kan ladda ner genom att klicka på dem i din webbläsare.

Azure-blobbibliotek

Det finns flera olika bibliotek på olika språk när du arbetar med Azure-blobbar. Se Dokumentationen om Azure-blobbar för mer information.

Ladda ned med AzCopy

Det finns många filer, så vi föreslår att du installerar kommandoradsverktyget azcopy, som du kan ladda ner här. På så sätt kan du ladda ner hela kataloger eller flera filer genom att använda jokertecken.

Till exempel …

Om du vill ladda ned filen global_daily_precip_max_20200101.nc till den aktuella katalogen:
azcopy cp https://metdatasa.blob.core.windows.net/covid19-response/metoffice_global_daily/precip_max/global_daily_precip_max_20200101.nc .

Om du vill ladda ned innehållet i /metoffice_ukv_daily/snow_mean/ till ukv_daily_snow_mean/:
azcopy cp 'https://metdatasa.blob.core.windows.net/covid19-response/metoffice_ukv_daily/snow_mean/*' ukv_daily_snow_mean/

Om du vill ladda ned genomsnittliga meteorologidata för samtliga amerikanska delstater som matchar mönstret us_55*.csv:
azcopy cp --recursive --include-pattern 'us_55*.csv' https://metdatasa.blob.core.windows.net/covid19-response/regional_subset_data/us_data/ .

Hur dessa data organiseras

metoffice_global_daily/

… innehåller Met Offices dagliga globala rutnätsdatafiler. Det finns en katalog för varje variabel.

Varje fil har ett beskrivande namn som t.ex. global_daily_{variable}_{statistic}_{YYYYMMDD}.nc.

  • .../t1o5m_mean/ = Filer för genomsnittlig lufttemperatur varje dag
  • .../t1o5m_max/ = Filer för högsta lufttemperatur varje dag
  • .../t1o5m_min/ = Filer för lägsta lufttemperatur varje dag
  • .../sh_mean/ = Filer för genomsnittlig massfukthalt varje dag
  • .../sh_max/ = Filer för högsta massfukthalt varje dag
  • .../sh_min/ = Filer för lägsta massfukthalt varje dag
  • .../sw_mean/ = Filer för genomsnittlig kortvågig strålning varje dag
  • .../sw_max/ = Filer för högsta kortvågig strålning varje dag
  • .../precip_mean/ = Filer för genomsnittligt nederbördsflöde varje dag
  • .../precip_max/ = Filer för högsta nederbördsflöde varje dag
metoffice_global_hourly/

… innehåller Met Offices globala rutnätsdatafiler per timme.

Varje fil har ett beskrivande namn som t.ex. global_hourly_{variable}_global_{YYYYMMDD}.nc.

  • .../t1o5m/ = Filer för lufttemperatur varje timme
  • .../sh/ = Filer för massfukthalt varje timme
  • .../sw/ = Filer för kortvågig strålning varje timme
  • .../precip/ = Filer för nederbördsflöde varje timme
  • .../precip3hr/ = Filer för nederbördsflöde var tredje timme
  • .../pmsl/ = Filer för lufttryck vid havsytans medelnivå varje timme
metoffice_ukv_daily/

… innehåller Met Offices dagliga UKV-rutnätsdatafiler.

Varje fil har ett beskrivande namn som t.ex. ukv_daily_{variable}_{statistic}_{YYYYMMDD}.nc.

  • .../t1o5m_mean/ = Filer för genomsnittlig lufttemperatur varje dag
  • .../t1o5m_max/ = Filer för högsta lufttemperatur varje dag
  • .../t1o5m_min/ = Filer för lägsta lufttemperatur varje dag
  • .../sh_mean/ = Filer för genomsnittlig massfukthalt varje dag
  • .../sh_max/ = Filer för högsta massfukthalt varje dag
  • .../sh_min/ = Filer för lägsta massfukthalt varje dag
  • .../sw_mean/ = Filer för genomsnittlig kortvågig strålning varje dag
  • .../sw_max/ = Filer för högsta kortvågig strålning varje dag
metoffice_ukv_hourly/

… innehåller Met Office UKV-rutnätsdatafiler varje timme.

Varje fil har ett beskrivande namn som t.ex. ukv_hourly_{variable}_{YYYYMMDD}.nc.

  • .../t1o5m_ukv/ = Filer för lufttemperatur varje timme
  • .../sh_ukv/ = Filer för massfukthalt varje timme
  • .../sw_ukv/ = Filer för kortvågig strålning varje timme
  • .../pmsl_ukv/ = Filer för lufttryck vid havsytans medelnivå varje timme
regional_subset_data/

… innehåller bearbetade regionala dagsvärden för Storbritannien och USA som .csv-filer.

Filerna har bearbetats genom en underinställning av Met Offices globala dagliga rutnätsfiler med formfiler för varje region, där genomsnittsvärdet för latitud/longitud används för varje variabel i varje region för varje datum. Värdena sparas som en tabell i en .csv-fil*.

  • .../uk_daily_meteodata_2020jan-mar_v03.csv = dagsvärden för t1o5m, sh, sw och precip för alla rapporterande regioner i Storbritannien (sammanslagning av alla filer i /uk_data/ och /uk_data_precip).
  • .../us_daily_meteodata_2020jan-mar_v03.csv = dagsvärden för t1o5m, sh, sw och precip för alla län i USA (sammanslagning av alla filer i /us_data/ och /us_data_precip)
  • .../uk_data/ = dagsvärden för t1o5m, sh och sw för varje rapporterande region i Storbritannien (en CSV-fil per region)
  • .../uk_data_precip/ = dagsvärden för precip för varje rapporterande region i Storbritannien (en CSV-fil per region)
  • .../us_data/ = dagsvärden för t1o5m, sh och sw för varje län i USA (en CSV-fil per län)
  • .../us_data_precip/ = dagsvärden för precip för varje län i USA (en CSV-fil per län)
shapefiles/

Innehåller formfiler för Storbritannien, USA, Italien, Brasilien, Uganda och Vietnam.

  • .../UK/ = Rapporteringsregioner i Storbritannien för covid-19
  • .../USA/ = Countyn i USA:s delstater
  • .../Italy/ = GADM v3.6 på administrativ nivå 2 för Italien
  • .../Brazil/ = GADM v3.6 på administrativ nivå 2 för Brasilien
  • .../Uganda/ = GADM v3.6 på administrativ nivå 2 för Uganda
  • .../Vietnam/ = GADM v3.6 på administrativ nivå 2 för Vietnam

Filnamnen beskrivs när det är möjligt. Men med tanke på de korta tidsramarna för när data görs tillgängliga, kan mindre variationer i filnamnsbeskrivningarna uppstå. Filnamnen ska fortfarande beskriva datauppgifterna på ett korrekt sätt. Om du hittar fel i filnamnen eller data är du välkommen att kontakta oss på covid19@informaticslab.co.uk.

Få hjälp och kontakta oss

För hjälp eller fler databegäranden är du välkommen att kontakta oss på covid19@informaticslab.co.uk.

Meddelanden

MICROSOFT TILLHANDAHÅLLER AZURE OPEN DATASETS I BEFINTLIGT SKICK. MICROSOFT UTFÄRDAR INTE NÅGRA GARANTIER ELLER VILLKOR, UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA, AVSEENDE ANVÄNDNINGEN AV DATAMÄNGDERNA. I DEN UTSTRÄCKNING DET ÄR TILLÅTET ENLIGT NATIONELL LAGSTIFTNING, FRISKRIVER MICROSOFT SIG FRÅN ALLT ANSVAR BETRÄFFANDE SKADOR OCH FÖRLUSTER, INKLUSIVE DIREKTA SKADOR, FÖLJDSKADOR, SÄRSKILDA SKADOR, INDIREKTA SKADOR, ELLER OFÖRUTSEDDA SKADOR FRÅN ANVÄNDNINGEN AV DATAMÄNGDERNA.

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