Downloads · 30 days
0
assix-research/gcc-weather-forecast-transformer
gcc-weather-forecast-transformer is a machine learning model from assix-research. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
A specialized Transformer-based model designed for short-horizon meteorological forecasting in the Gulf Cooperation Council (GCC) region. Trained on NVIDIA DGX Spark infrastructure with Grace Blackwell GPU, this model…
Downloads · 30 days
0
Access
Public
Updated Feb 1, 2026
Repo size
8.7 MB
Likes
1
Public
Click a slice to open those files.
.pt8.7 MB · 100%
From the Hugging Face model README
A specialized Transformer-based model designed for short-horizon meteorological forecasting in the Gulf Cooperation Council (GCC) region. Trained on NVIDIA DGX Spark infrastructure with Grace Blackwell GPU, this model leverages high-resolution historical data to predict immediate future weather conditions for Dubai and Riyadh.
👉 Try the model here: GCC Weather Forecast Transformer Space
| Attribute | Specification |
|---|---|
| Architecture | Transformer Encoder (Sequence-to-Vector) |
| Input Context | 72 Hours (Sliding Window) |
| Forecast Horizon | 1 Hour Ahead |
| Variables | Temperature, Humidity, Pressure (MSL), Wind Speed |
| Training Hardware | NVIDIA DGX Spark (Grace Blackwell / A100 optimized) |
| Data Source | Open-Meteo Historical Archive |
You can download and use this model directly in your Python environment.
from huggingface_hub import hf_hub_download
import torch
import pickle
import sys
# 1. Download Model Artifacts
repo_id = "assix-research/gcc-weather-forecast-transformer"
model_path = hf_hub_download(repo_id=repo_id, filename="weather_transformer.pt")
scaler_path = hf_hub_download(repo_id=repo_id, filename="feature_scaler.pkl")
code_path = hf_hub_download(repo_id=repo_id, filename="model.py")
# 2. Load Architecture Dynamically
import importlib.util
spec = importlib.util.spec_from_file_location("weather_model", code_path)
weather_model = importlib.util.module_from_spec(spec)
spec.loader.exec_module(weather_model)
# 3. Initialize & Load Weights
model = weather_model.WeatherTransformer(input_dim=4, seq_len=72)
model.load_state_dict(torch.load(model_path))
model.eval()
print("✅ Model loaded successfully!")
The core is a compact Transformer Encoder optimized for structured time-series data. Unlike LSTM or RNN baselines, the Transformer mechanism allows the model to attend to the entire 72-hour history simultaneously, capturing long-range dependencies (e.g., diurnal cycles and pressure fronts). Hyperparameters
Embedding Dimension (dmodel): 256
Attention Heads: 8 (Multi-Head Self-Attention)
Layers: 4 Encoder Blocks
Feedforward Network: 512 dimensions
Dropout: 0.1
Positional Encoding: Sinusoidal injection to preserve temporal order.
Inputs & Outputs
Input X: Tensor of shape (Batch, 72, 4).
Features: temperature_2m, relative_humidity_2m, pressure_msl, wind_speed_10m.
Output y: Tensor of shape (Batch, 4).
Predicted values for the very next hour.
The system operates on a rigorous pipeline ensuring data consistency between training and inference.
Ingestion:
Fetches hourly historical data from the Open-Meteo API.
Locations: Dubai (25.2°N, 55.2°E) and Riyadh (24.7°N, 46.6°E).
Preprocessing:
Time Alignment: All timestamps standardized to UTC.
Normalization: Scikit-Learn StandardScaler (Z-score normalization) fit on the training corpus.
Inference:
The model accepts normalized tensors.
Outputs are inverse-transformed back to physical units (°C, %, hPa, km/h) for display.