Navigation überspringen

NOAA Global Forecast System (GFS)

Weather GFS NOAA

Stundengenaue Daten zum Wetterbericht für die nächsten 15 Tage in den USA (Beispiel: Temperatur, Niederschlag und Wind), die vom Global Forecast System (GFS) und der Behörde National Oceanic and Atmospheric Administration (NOAA) erstellt werden.

Beim GFS handelt es sich um ein Wettervorhersagemodell der Organisation National Centers for Environmental Prediction (NCEP). Dieses Dataset umfasst Dutzende Variablen zur Atmosphäre und den Böden, angefangen bei Temperaturen, Windstärken und Niederschlägen bis hin zur Bodenfeuchte und der Menge an Ozon in der Atmosphäre. Das GFS deckt die ganze Erde ab, auf horizontaler Ebene mit Abständen von 18 Meilen (28 km) zwischen Rasterpunkten, die von Meteorologen verwendet werden, die das Wetter jeweils für die nächsten 16 Tage voraussagen. Der horizontale Abstand vergrößert sich auf 44 Meilen (70 km) zwischen den Rasterpunkten für Vorhersagen für die nächsten ein bis zwei Wochen. Die Daten für dieses Dataset stammen von GFS4.

Umfang und Aufbewahrung

Dieses Dataset wird im Parquet-Format gespeichert. Es wird täglich mit Daten zu Vorhersagen für die nächsten 15 Tage aktualisiert. Aktuell (Stand: 2019) gibt es 9 Milliarden Zeilen (200 GB).

Dieses Dataset enthält alle Datensätze von Dezember 2018 bis heute. Verwenden Sie Parametereinstellungen im SDK, um Daten innerhalb eines bestimmten Zeitbereichs abzurufen.

Speicherort

Dieses Dataset wird in der Azure-Region „USA, Osten“ gespeichert. Aus Gründen der Affinität wird die Zuweisung von Computeressourcen in der Region „USA, Osten“ empfohlen.

Weitere Informationen

Dieses Dataset stammt aus dem Global Forecast System der Behörde NOAA. Zusätzliche Informationen zu diesem Dataset finden Sie unter diesem und diesem Link. Senden Sie eine E-Mail an , wenn Sie Fragen zur Datenquelle haben.

Benachrichtigungen

MICROSOFT STELLT DATASETS DER PLATTFORM AZURE OPEN DATASETS AUF EINER „AS IS“-BASIS (D. H. OHNE MÄNGELGEWÄHR) ZUR VERFÜGUNG. MICROSOFT ÜBERNIMMT WEDER AUSDRÜCKLICH NOCH STILLSCHWEIGEND DIE GEWÄHRLEISTUNG FÜR IHRE NUTZUNG DER DATENSÄTZE UND SICHERT KEINERLEI GARANTIEN ODER BEDINGUNGEN ZU. SOWEIT NACH ÖRTLICH ANWENDBAREM RECHT ZULÄSSIG, LEHNT MICROSOFT JEGLICHE HAFTUNG FÜR SCHÄDEN ODER VERLUSTE AB. DIES SCHLIEßT DIREKTE, INDIREKTE, BESONDERE ODER ZUFÄLLIGE SCHÄDEN ODER VERLUSTE SOWIE FOLGE- UND STRAFSCHÄDEN UND DAMIT VERBUNDENE VERLUSTE EIN.

Für die Bereitstellung dieses Datasets gelten die ursprünglichen Nutzungsbedingungen, unter denen Microsoft die Quelldaten bezogen hat. Das Dataset kann Daten von Microsoft enthalten.

Access

Available inWhen to use
Azure Notebooks

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

Azure Databricks

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Azure Synapse

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Preview

currentDatetime forecastHour latitude longitude precipitableWaterEntireAtmosphere seaLvlPressure snowDepthSurface temperature windSpeedGustSurface year month day
2/24/2021 12:00:00 PM 0 -90 0 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 4.5 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 0.5 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 1 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 1.5 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 2 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 2.5 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 3 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 3.5 0.604883 68805.5 1 233.113 6.31342 2021 2 24
2/24/2021 12:00:00 PM 0 -90 4 0.604883 68805.5 1 233.113 6.31342 2021 2 24
Name Data type Unique Values (sample) Description
currentDatetime timestamp 2,863 2018-12-08 12:00:00
2018-12-08 18:00:00

Die Laufzeit des Vorhersagemodellzyklus.

day int 31 1
5

Tag von currentDatetime.

forecastHour int 129 336
102

Stunde seit „currentDatetime“ (aktuellem datetime-Wert), Vorhersage- oder Beobachtungszeitpunkt.

latitude double 361 50.0
13.0

Breitengrad, degrees_north (Grad Nord).

longitude double 1,079 124.0
116.0

Längengrad, degrees_east (Grad Ost).

month int 12 12
1

Monat von currentDateTime.

precipitableWaterEntireAtmosphere double 5,520,555 0.5
1.0

Niederschlagswasser in gesamter Atmosphäre. Einheiten: kg.m-2

seaLvlPressure double 8,568,607 101088.0
101080.0

Druck am Boden oder an der Wasseroberfläche. Einheiten: pa

snowDepthSurface double 1,245 nan
1.0

Schneetiefe am Boden oder an der Wasseroberfläche. Einheiten: m

temperature double 5,840,727 273.0
273.1

Temperatur am Boden oder an der Wasseroberfläche. Einheiten: K

totalCloudCoverConvectiveCloud double 82 1.0
2.0

Wolkendecke insgesamt auf einer konvektiven Wolkenebene. Einheiten: %

windSpeedGustSurface double 19,188,997 4.5
5.0

Windgeschwindigkeit (Böe) am Boden oder an der Wasseroberfläche. Einheiten: m/s

year int 5 2019
2020

Jahr von currentDatetime.

Select your preferred service:

Azure Notebooks

Azure Databricks

Azure Synapse

Azure Notebooks

Package: Language: Python Python
In [1]:
# This is a package in preview.
from azureml.opendatasets import NoaaGfsWeather

from dateutil import parser


start_date = parser.parse('2018-12-20')
end_date = parser.parse('2018-12-21')
gfs = NoaaGfsWeather(start_date, end_date)
gfs_df = gfs.to_pandas_dataframe()
ActivityStarted, to_pandas_dataframe Due to size, we only allow getting 1-day data into pandas dataframe! We are taking the latest day: /year=2018/month=12/day=21/ Target paths: ['/year=2018/month=12/day=21/'] Looking for parquet files... Reading them into Pandas dataframe... Reading GFSWeather/GFSProcessed/year=2018/month=12/day=21/part-00000-tid-570650763889113128-ff3109d0-23cf-4024-a096-63964952b0c7-4397-c000.snappy.parquet under container gfsweatherdatacontainer Reading GFSWeather/GFSProcessed/year=2018/month=12/day=21/part-00001-tid-570650763889113128-ff3109d0-23cf-4024-a096-63964952b0c7-4398-c000.snappy.parquet under container gfsweatherdatacontainer ... Reading GFSWeather/GFSProcessed/year=2018/month=12/day=21/part-00199-tid-570650763889113128-ff3109d0-23cf-4024-a096-63964952b0c7-4596-c000.snappy.parquet under container gfsweatherdatacontainer Done. ActivityCompleted: Activity=to_pandas_dataframe, HowEnded=Success, Duration=91914.45 [ms]
In [2]:
gfs_df.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 24172560 entries, 0 to 120634 Data columns (total 10 columns): currentDatetime datetime64[ns] forecastHour int32 latitude float64 longitude float64 precipitableWaterEntireAtmosphere float64 seaLvlPressure float64 snowDepthSurface float64 temperature float64 windSpeedGustSurface float64 totalCloudCoverConvectiveCloud float64 dtypes: datetime64[ns](1), float64(8), int32(1) memory usage: 1.9 GB
In [1]:
# Pip install packages
import os, sys

!{sys.executable} -m pip install azure-storage-blob
!{sys.executable} -m pip install pyarrow
!{sys.executable} -m pip install pandas
In [2]:
# Azure storage access info
azure_storage_account_name = "azureopendatastorage"
azure_storage_sas_token = r""
container_name = "gfsweatherdatacontainer"
folder_name = "GFSWeather/GFSProcessed"
In [3]:
from azure.storage.blob import BlockBlobServicefrom azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

if azure_storage_account_name is None or azure_storage_sas_token is None:
    raise Exception(
        "Provide your specific name and key for your Azure Storage account--see the Prerequisites section earlier.")

print('Looking for the first parquet under the folder ' +
      folder_name + ' in container "' + container_name + '"...')
container_url = f"https://{azure_storage_account_name}.blob.core.windows.net/"
blob_service_client = BlobServiceClient(
    container_url, azure_storage_sas_token if azure_storage_sas_token else None)

container_client = blob_service_client.get_container_client(container_name)
blobs = container_client.list_blobs(folder_name)
sorted_blobs = sorted(list(blobs), key=lambda e: e.name, reverse=True)
targetBlobName = ''
for blob in sorted_blobs:
    if blob.name.startswith(folder_name) and blob.name.endswith('.parquet'):
        targetBlobName = blob.name
        break

print('Target blob to download: ' + targetBlobName)
_, filename = os.path.split(targetBlobName)
blob_client = container_client.get_blob_client(targetBlobName)
with open(filename, 'wb') as local_file:
    blob_client.download_blob().download_to_stream(local_file)
In [4]:
# Read the parquet file into Pandas data frame
import pandas as pd

print('Reading the parquet file into Pandas data frame')
df = pd.read_parquet(filename)
In [5]:
# you can add your filter at below
print('Loaded as a Pandas data frame: ')
df
In [6]:
 

Azure Databricks

Package: Language: Python Python
In [1]:
# This is a package in preview.
# You need to pip install azureml-opendatasets in Databricks cluster. https://docs.microsoft.com/en-us/azure/data-explorer/connect-from-databricks#install-the-python-library-on-your-azure-databricks-cluster
from azureml.opendatasets import NoaaGfsWeather

from dateutil import parser


start_date = parser.parse('2018-12-20')
end_date = parser.parse('2018-12-21')
gfs = NoaaGfsWeather(start_date, end_date)
gfs_df = gfs.to_spark_dataframe()
ActivityStarted, to_spark_dataframe ActivityCompleted: Activity=to_spark_dataframe, HowEnded=Success, Duration=92636.3 [ms]
In [2]:
display(gfs_df.limit(5))
currentDatetimeforecastHourlatitudelongitudeprecipitableWaterEntireAtmosphereseaLvlPressuresnowDepthSurfacetemperaturewindSpeedGustSurfacetotalCloudCoverConvectiveCloudyearmonthday
2018-12-20T00:00:00.000+00000-90.079.03.54831433296203671160.97656251.0099999904632568260.606781005859412.820813179016113null20181220
2018-12-20T00:00:00.000+00000-90.0268.03.54831433296203671160.97656251.0099999904632568260.606781005859412.820813179016113null20181220
2018-12-20T00:00:00.000+00000-89.536.53.448314189910888770757.77343751.0099999904632568258.606781005859412.620813369750977null20181220
2018-12-20T00:00:00.000+00000-89.543.03.348314285278320370597.77343751.0099999904632568258.306793212890612.720812797546387null20181220
2018-12-20T00:00:00.000+00000-89.5144.03.24831438064575269701.77343751.0099999904632568259.5067749023437512.620813369750977null20181220
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "gfsweatherdatacontainer"
blob_relative_path = "GFSWeather/GFSProcessed"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))

Azure Synapse

Package: Language: Python Python
In [23]:
# This is a package in preview.
from azureml.opendatasets import NoaaGfsWeather

from dateutil import parser


start_date = parser.parse('2018-12-20')
end_date = parser.parse('2018-12-21')
gfs = NoaaGfsWeather(start_date, end_date)
gfs_df = gfs.to_spark_dataframe()
In [24]:
# Display top 5 rows
display(gfs_df.limit(5))
Out[24]:
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "gfsweatherdatacontainer"
blob_relative_path = "GFSWeather/GFSProcessed"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))