WeatherNext 3 forecast data is available in Google BigQuery using the BigQuery Analytics Hub listing. BigQuery provides precomputed surface ensemble statistics, allowing you to run standard SQL analytics, execute geospatial joins with business data, and power BI dashboards without managing infrastructure.
What is BigQuery?
Google BigQuery is a serverless cloud data warehouse with built-in machine learning and geospatial analytics (BigQuery GIS). It enables petabyte-scale SQL queries, joins with enterprise datasets (like retail stores, customer locations, or supply chains), and direct integration with Looker, DataFrames, and Pandas.
Available datasets & tables
WeatherNext 3 is distributed through the WeatherNext 3 BigQuery Analytics Hub listing.
When you subscribe to the listing, the tables are linked into your Google Cloud
project dataset (e.g., [YOUR_PROJECT_ID].[YOUR_DATASET_ID]). The data is
split into two tables by spatial grid resolution:
| Table Name | Grid Resolution | Variables & Scope |
|---|---|---|
[YOUR_PROJECT_ID].[YOUR_DATASET_ID].weathernext_3_0_0_0p1deg |
0.1° |
|
[YOUR_PROJECT_ID].[YOUR_DATASET_ID].weathernext_3_0_0_0p05deg |
0.05° |
|
(For the raw 64-member ensemble and 3D atmospheric pressure levels, use Google Cloud Storage (Zarr)).
Table structure & schema
Both tables are partitioned by init_time and clustered by geography. Each
row represents a geographic grid location with its initialization time
(init_time), and contains a repeated forecast record spanning lead times
(1 to 360 hours for 6-hourly inits, 1 to 48 hours for interim hourly inits):
init_time(TIMESTAMP, Partition Key): Forecast initialization timestamp in UTC.geography(GEOGRAPHY): The geographic center point location for this grid cell.geography_polygon(GEOGRAPHY): The geographic bounding polygon (0.1° or 0.05° cell) associated with the forecast.forecast(RECORD, REPEATED): Contains detailed forecast records across lead time horizons (1 to 360 hours for 6-hourly inits, 1 to 48 hours for interim hourly inits).time(TIMESTAMP): Valid UTC prediction timestamp for this forecast step.hours(INTEGER): Forecast lead time in hours (1 to 360 for 6-hourly inits, 1 to 48 for interim hourly inits) frominit_time.- Distribution Statistics: Every variable provides 6 precomputed
ensemble metrics:
_mean,_p10,_p25,_p50,_p75,_p90.
Common query recipes
Explore standard SQL query patterns for WeatherNext datasets in BigQuery:
1. Inspect table schema and sample record
Query a single row from the 0.1° dataset:
SQL
SELECT *
FROM `YOUR_PROJECT_ID.YOUR_DATASET_ID.weathernext_3_0_0_0p1deg`
LIMIT 1;
2. Point forecast time series (0.1° gridded table)
Extract an hourly surface temperature and wind forecast (with 10th and 90th percentile distribution) for a bounding area or coordinate (e.g., New York City):
SQL
SELECT
t.geography_polygon,
f.time AS forecast_time,
f.hours AS forecast_hour,
-- Temperature converted from Kelvin to Celsius
f.temperature_2m_mean - 273.15 AS temp_mean_c,
f.temperature_2m_p10 - 273.15 AS temp_p10_c,
f.temperature_2m_p90 - 273.15 AS temp_p90_c,
-- 10m Wind speed in m/s
f.wind_speed_10m_mean AS wind_speed_mps,
-- 1-hour total precipitation in mm (total_precipitation_1hr in m * 1000)
f.total_precipitation_1hr_mean * 1000 AS precip_1hr_mm
FROM
`YOUR_PROJECT_ID.YOUR_DATASET_ID.weathernext_3_0_0_0p1deg` AS t,
t.forecast AS f
WHERE
-- Partition filter avoids full-table scan
t.init_time = TIMESTAMP('2026-08-26 00:00:00 UTC')
-- Select NYC region
AND ST_INTERSECTS(
t.geography_polygon,
ST_GEOGFROMTEXT('POLYGON((-74.26 40.50, -73.70 40.50, -73.70 40.90, -74.26 40.90, -74.26 40.50))')
)
-- 5-day forecast horizon (120 hours)
AND f.hours <= 120
ORDER BY
f.time ASC;
3. High-resolution station point forecast (0.05° table)
Query the dedicated 0.05° station observational head for ground-truth-calibrated temperature and dew point:
SQL
SELECT
t.geography_polygon,
f.time AS forecast_time,
f.hours AS forecast_hour,
f.station_head_temperature_2m_mean - 273.15 AS station_temp_mean_c,
f.station_head_temperature_2m_p10 - 273.15 AS station_temp_p10_c,
f.station_head_temperature_2m_p90 - 273.15 AS station_temp_p90_c,
f.station_head_dewpoint_temperature_2m_mean - 273.15 AS station_dewpoint_c
FROM
`YOUR_PROJECT_ID.YOUR_DATASET_ID.weathernext_3_0_0_0p05deg` AS t,
t.forecast AS f
WHERE
t.init_time = TIMESTAMP('2026-08-26 00:00:00 UTC')
AND ST_INTERSECTS(
t.geography_polygon,
ST_GEOGFROMTEXT('POLYGON((-74.26 40.50, -73.70 40.50, -73.70 40.90, -74.26 40.90, -74.26 40.50))')
)
ORDER BY
f.time ASC;
4. Global / Regional spatial snapshot
Retrieve global ensemble mean variables at a specific lead time (e.g., 6 hours after initialization) for geospatial mapping:
SQL
SELECT
f.u_component_of_wind_10m_mean,
f.v_component_of_wind_10m_mean,
f.temperature_2m_mean,
f.mean_sea_level_pressure_mean,
f.sea_surface_temperature_mean,
f.total_precipitation_1hr_mean,
ST_X(ST_Centroid(t.geography_polygon)) AS longitude,
ST_Y(ST_Centroid(t.geography_polygon)) AS latitude
FROM
`YOUR_PROJECT_ID.YOUR_DATASET_ID.weathernext_3_0_0_0p1deg` AS t,
t.forecast AS f
WHERE
t.init_time = TIMESTAMP('2026-08-26 00:00:00 UTC')
AND f.time = TIMESTAMP('2026-08-26 06:00:00 UTC');
5. Spatial join with business locations
Join weather forecasts directly with a table of retail stores, facilities, or asset coordinates:
SQL
SELECT
stores.store_id,
stores.store_name,
f.time AS forecast_time,
f.temperature_2m_mean - 273.15 AS temp_mean_c,
f.wind_speed_10m_mean AS wind_speed_mps,
f.total_precipitation_1hr_mean * 1000 AS precip_mm
FROM
`YOUR_PROJECT_ID.YOUR_DATASET_ID.weathernext_3_0_0_0p1deg` AS weather,
weather.forecast AS f
JOIN
`YOUR_PROJECT_ID.retail_data.store_locations` AS stores
ON
ST_INTERSECTS(weather.geography_polygon, stores.location_geog)
WHERE
weather.init_time = TIMESTAMP('2026-08-26 00:00:00 UTC')
AND f.time = TIMESTAMP('2026-08-27 00:00:00 UTC');
Best practices for performance & cost
- Always filter by
init_time: The table is partitioned byinit_time. Always includeWHERE init_time = ...to prune partition scans and minimize cost. - Select specific columns: Query only the statistical columns you need
(e.g.,
f.temperature_2m_mean,f.wind_speed_10m_mean) rather thanSELECT *. - Use BigQuery GIS indexing: When performing spatial lookups or joins,
use spatial predicates like
ST_INTERSECTSorST_DWITHINongeography_polygonorgeographyto leverage spatial clustering.
Starter guides
For interactive tutorials using Python and the %%bigquery magic command in
Colab:
Terms of use
- Real-Time Data (data relating to less than 1 hour ago and the future): Governed by the GDM Real-Time Weather Forecasting Experimental Data Terms of Use.
- Historical Data (data relating to 1 hour ago or more): Licensed under CC BY 4.0.
For more details, see Terms of Service and Disclaimers.