Historical Data
This section covers access to historical weather data (hindcasts) for comprehensive backtesting and model evaluation.
File Access
Jua hindcasts are available as xarray-compatible Zarr files through our data.jua.ai platform.
To gain access to the file server, you may use the same API key details used for the API. This consists of both an ID and a secret. The file server makes use of HTTP Basic authentication, where the username is your API key ID, and the password is the secret.
Please see our Getting Started guide for help on configuring an API key.
Hindcast Coverage
By default, most of our models provide 2 years of hindcast data. Custom time periods are available upon request. Please contact us for more information on extended historical data access.
Available Hindcast Products
EPT-1.5 Hindcasts - Our primary hindcast product with European and North American coverage
Also includes EPT-1.5 Early hindcasts for Europe (2024)
EPT-2 Hindcasts - Our latest global hindcast product
Global coverage with higher resolution
Includes standard and Early variants
AIFS Hindcasts - ECMWF AIFS hindcasts
Global coverage at 0.25° resolution
6-hourly forecasts up to 20 days
Historical ECMWF IFS - Historical ECMWF IFS forecast data
Available upon request
Contact our support team for access details
Microsoft Aurora - Microsoft Aurora hindcast dataset
Available upon request
Contact our support team for access details
Reading Hindcast Data
You can read and visualize our hindcast data with Python and xarray. See our examples below.
Examples
Basic Data Access
import xarray as xr
from aiohttp import BasicAuth
import os
import matplotlib.pyplot as plt
# Authentication
API_KEY_ID = os.environ["JUA_API_KEY_ID"]
API_SECRET = os.environ["JUA_API_SECRET"]
AUTH = BasicAuth(login=API_KEY_ID, password=API_SECRET)
# Open the dataset
ds = xr.open_dataset(
"https://data.jua.ai/hindcasts/ept-2/v2/global/2023-01-01-to-2024-12-28.zarr",
engine="zarr",
decode_timedelta=False,
consolidated=False,
storage_options={"auth": AUTH},
)
print(ds)
Visualization Example
import xarray as xr
from aiohttp import BasicAuth
import os
import matplotlib.pyplot as plt
# Authentication
API_KEY_ID = os.environ["JUA_API_KEY_ID"]
API_SECRET = os.environ["JUA_API_SECRET"]
AUTH = BasicAuth(login=API_KEY_ID, password=API_SECRET)
# Open the dataset
ds = xr.open_dataset(
"https://data.jua.ai/hindcasts/ept-2/v2/global/2023-01-01-to-2024-12-28.zarr",
engine="zarr",
decode_timedelta=False,
consolidated=False,
storage_options={"auth": AUTH},
)
# Select a specific latitude, longitude, and time
latitude = 50.0 # Example: 50°N
longitude = 10.0 # Example: 10°E
time = "2023-06-01T12:00:00" # Example: Specific time
# Filter the dataset for the specific location and time
ds_filtered = ds.sel(latitude=latitude, longitude=longitude, time=time, method="nearest")
# Get temperature data (convert from Kelvin to Celsius)
temp_data = ds_filtered['air_temperature_at_height_level_2m'] - 273.15
# Extract prediction_timedelta and temperature values
timedeltas = ds_filtered['prediction_timedelta'].values
temperatures = temp_data.values
# Plot the evolution of temperature over prediction_timedelta
plt.figure(figsize=(10, 6))
plt.plot(timedeltas, temperatures, marker='o', label='Temperature (°C)')
# Add labels and title
plt.xlabel('Prediction Timedelta (hours)')
plt.ylabel('Temperature (°C)')
plt.title(f'Temperature Evolution at {latitude}°N, {longitude}°E on {time}')
plt.grid()
plt.legend()
# Save and show the plot
plt.tight_layout()
plt.savefig('temperature_evolution.png')
plt.show()
Last updated