Ignora esplorazione

NOAA Global Forecast System (GFS)

Weather GFS NOAA

Dati delle previsioni metereologiche orarie degli Stati Uniti per 15 giorni, ad esempio temperatura, precipitazioni e vento, prodotti da Global Forecast System (GFS) di National Oceanic and Atmospheric Administration (NOAA).

Global Forecast System (GFS) è un modello di previsioni metereologiche prodotto da National Centers for Environmental Prediction (NCEP). Dozzine di variabile atmosferiche e relative al suolo sono disponibili tramite questo set di dati, da temperature, precipitazioni e venti all’umidità del suolo e alla concentrazione dell’ozono nell’atmosfera. L’intero globo è coperto da GFS a una risoluzione orizzontale di base pari a 18 miglia (28 chilometri) tra punti della griglia, usata dagli strumenti operativi per le previsioni che prevedono il clima per un periodo futuro massimo di 16 giorni. La risoluzione orizzontale si riduce a 44 miglia (70 chilometri) tra punti della griglia per previsioni relative a un periodo compreso tra una settimana e due settimane. Questo set di dati è originato in modo specifico da GFS4.

Volume e conservazione

Il set di dati è archiviato nel formato Parquet. Viene aggiornato ogni giorno con dati per una previsione futura di 15 giorni. Sono disponibili in totale circa 9 miliardi di righe (200 GB) a oggi (2019).

Questo set di dati include record cronologici accumulati da dicembre 2018 a oggi. Puoi usare le impostazioni dei parametri nell’SDK per recuperare i dati entro un intervallo di tempo specifico.

Posizione di archiviazione

Questo set di dati è archiviato nell’area Stati Uniti orientali di Azure. L’allocazione delle risorse di calcolo nell’area Stati Uniti orientali è consigliata per motivi di affinità.

Informazioni aggiuntive

Il set di dati viene generato da NOAA Global Forecast System. Informazioni aggiuntive su questo set di dati sono disponibili qui e qui. Invia un messaggio di posta elettronica a se hai domande sull’origine dati.

Notifiche

MICROSOFT FORNISCE I SET DI DATI APERTI DI AZURE “COSÌ COME SONO”. MICROSOFT NON OFFRE ALCUNA GARANZIA O CONDIZIONE ESPLICITA O IMPLICITA RELATIVAMENTE ALL’USO DEI SET DI DATI DA PARTE DELL’UTENTE. NELLA MISURA MASSIMA CONSENTITA DALLE LEGGI LOCALI, MICROSOFT NON RICONOSCE ALCUNA RESPONSABILITÀ RELATIVAMENTE A DANNI O PERDITE COMMERCIALI, INCLUSI I DANNI DIRETTI, CONSEQUENZIALI, SPECIALI, INDIRETTI, INCIDENTALI O PUNITIVI DERIVANTI DALL’USO DEI SET DI DATI DA PARTE DELL’UTENTE.

Questo set di dati viene fornito in conformità con le condizioni originali in base alle quali Microsoft ha ricevuto i dati di origine. Il set di dati potrebbe includere dati provenienti da Microsoft.

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 temperature windSpeedGustSurface totalCloudCoverConvectiveCloud year month day
11/11/2020 12:00:00 PM 96 -45 90 20.2 98938.2 282.097 4.11901 17 2020 11 11
11/11/2020 12:00:00 PM 96 -45 94.5 18.2 99309.4 281.497 10.319 1 2020 11 11
11/11/2020 12:00:00 PM 96 -45 90.5 20 98984.6 281.997 6.41901 11 2020 11 11
11/11/2020 12:00:00 PM 96 -45 91 19.9 99037.4 282.197 7.41901 30 2020 11 11
11/11/2020 12:00:00 PM 96 -45 91.5 19.7 99082.2 281.997 8.31901 20 2020 11 11
11/11/2020 12:00:00 PM 96 -45 92 19.6 99122.2 281.897 8.31901 16 2020 11 11
11/11/2020 12:00:00 PM 96 -45 92.5 19.5 99165.4 281.697 7.81901 0 2020 11 11
11/11/2020 12:00:00 PM 96 -45 93 19.1 99213.4 281.497 7.81901 0 2020 11 11
11/11/2020 12:00:00 PM 96 -45 93.5 18.8 99272.6 281.597 9.51901 0 2020 11 11
11/11/2020 12:00:00 PM 96 -45 94 18.6 99299.8 281.497 10.319 0 2020 11 11
Name Data type Unique Values (sample) Description
currentDatetime timestamp 2,483 2018-12-04 12:00:00
2019-01-08 06:00:00

Runtime del ciclo del modello di previsione.

day int 31 1
5

Giorno di currentDatetime.

forecastHour int 129 336
102

Ora rispetto all’ora di currentDatetime, della previsione o dell’osservazione.

latitude double 361 41.5
90.0

Latitudine, gradi_nord.

longitude double 1,079 132.0
13.0

Longitudine, gradi_est.

month int 12 12
9

Mese di currentDatetime.

precipitableWaterEntireAtmosphere double 5,088,604 0.5
0.2

Acqua precipitabile a livello dell’intera atmosfera. Unità: kg.m-2

seaLvlPressure double 8,562,932 101096.0
101120.0

Pressione a terra o a livello di superficie d’acqua. Unità: Pa

snowDepthSurface double 1,209 nan
1.0

Profondità della neve al suolo o al livello della superficie dell’acqua. Unità: m

temperature double 5,840,561 273.0
273.1

Temperatura al suolo o al livello della superficie dell’acqua. Unità: K

totalCloudCoverConvectiveCloud double 82 1.0
2.0

Copertura nuvolosa totale al livello di libera convezione. Unità: %

windSpeedGustSurface double 19,047,755 4.5
5.0

Velocità del vento (raffica) a terra o a livello di superficie d’acqua. Unità: m/s

year int 4 2019
2020

Anno di 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'))