PAM: Regional Cloud-Probability Forecasting

Authors: Hanyue Shen (Stevens Institute of Technology) and Xinling Liao (King's College London).

PAM combines four six-hourly Himawari cloud fields with GFS guidance to forecast satellite cloud-detection probability 24, 48, and 72 hours ahead. It operates on a 71 × 101, 1-degree grid covering 70–170°E and 10°S–60°N, with approximately 0.59 million parameters.

This release accompanies Spatial Fusion of Himawari Observations and GFS Guidance for 24–72-Hour Regional Cloud-Probability Forecasting. It contains the six final PAM checkpoints used for the manuscript's 2026 model comparisons: one 24-h checkpoint and one shared 48/72-h checkpoint for each of seeds 42, 31415, and 271828. Weights are distributed as Safetensors. The separate 2024 illustrative model shown in the manuscript's prediction example is not included in this release.

Forecast performance

Lead Evaluation initializations Spatial PCC Pixel mIoU at 0.5 PF-MSE
24 h 784 0.7587 67.45% 0.05690
48 h 780 0.7111 64.13% 0.06620
72 h 776 0.6697 61.65% 0.07390

Values are equal-grid, per-initialization means averaged over three independently fitted seeds. They are not ensemble scores or scores assigned to the default seed alone. The default seed, 42, is the first prespecified seed. Individual-seed scores and area-weighted, regional, and cloud-field comparisons are provided in evaluation/.

Spatial fusion increases pixel mIoU over uniform scalar blending by 5.82, 6.19, and 6.03 percentage points at the three leads. The evaluation uses previously viewed January–July 2026 cases and is a post-hoc model comparison. Model fitting uses pre-2026 data. The 48/72-h models share weights and receive the requested lead as an input.

PAM and input-source comparisons at 24, 48, and 72 hours

Install and run

Download the versioned repository, then install its small Python package:

from huggingface_hub import snapshot_download
release = snapshot_download("HanyueShen/PAM-Cloud-Forecasting", revision="v1.0.0")
print(release)
pip install /path/printed/above

Run the supplied example at any supported lead:

from pathlib import Path
import numpy as np
import torch
from pam_forecast import PAMForecast

lead = 48
sample = np.load(Path(release) / "examples/example_inputs_and_predictions.npz")
model = PAMForecast.from_pretrained(release, lead_hours=lead, seed=42, device="cpu")
with torch.inference_mode():
    prediction = model(
        cloud_probability=sample["cloud_probability"],
        mask_fraction=sample["mask_fraction"],
        gfs_cloud_fraction=sample[f"gfs_{lead}"],
        initialization_time=str(sample["initialization_time"]),
    )
print(prediction.shape)  # torch.Size([1, 71, 101])

For later loading, PAMForecast.from_pretrained("HanyueShen/PAM-Cloud-Forecasting", lead_hours=72, seed=31415, revision="v1.0.0") downloads only JSON and Safetensors. Model code comes from the installed package. No hosted inference endpoint is deployed.

Inputs and preprocessing

Input Shape Meaning
cloud_probability B × 4 × 71 × 101 Satellite cloud-detection probability at initialization −18, −12, −6, and 0 h
mask_fraction B × 4 × 71 × 101 Cloud-mask fraction averaged from valid source pixels over the same cells
gfs_cloud_fraction B × 71 × 101 GFS total-cloud-cover fraction for the requested lead and initialization
initialization_time ISO UTC timestamp, or B timestamps 00, 06, 12, or 18 UTC initialization

All numerical inputs are finite fractions in [0, 1]. Latitude increases from −10 to 60°N along the first spatial axis; longitude increases from 70 to 170°E along the second. Satellite probability and binary-mask source pixels are aggregated separately to their nearest analysis-grid centers with equal pixel weighting after product validity filtering. The training loader replaces missing coarse satellite values with 0.5. GFS fields use the corresponding native 1-degree centers and represent fractions, not percentages. The evaluation requires complete finite input fields.

The loader reproduces the model's mask-channel encoding and cyclical initialization-time features. Its internal mask channel is not temperature. The model does not consume multispectral radiances, vertical atmospheric profiles, or computed optical flow. Motion-branch inputs are zero. Predictions are direct forecasts for each requested lead; no recursive rollout is used.

The target is the satellite retrieval's cloud-detection probability. GFS total-cloud-cover fraction is guidance with a different physical definition. Pixel mIoU thresholds the prediction and verifying probability field identically at 0.5 and averages the cloud and clear classes.

Architecture and fitting

A 32-channel ConvGRU encoder processes the four two-channel satellite frames, followed by four neighborhood-mixing blocks at 3/5/9-cell scales. A width-64 spatial fusion network combines satellite features, target-valid GFS, geographic and time features. Six dilated residual blocks predict a spatial mixing weight and bounded logit correction. The 24-h and shared long-lead models have 587,587 and 590,787 parameters, respectively.

The 24-h learning-rate search uses 2,688 training examples and 533 purged validation examples. Each seed is refitted for seven epochs on 3,229 pre-2026 examples. Long-lead fitting begins from its own seed's 24-h model and uses seven balanced joint epochs followed by two 48/72-h adaptation epochs. See research/ for the training, loss, cohort-selector, input-loader, and metric code, and config.json for weight identities and hashes.

Intended use and limits

PAM supports research on regional cloud structure and satellite–numerical-weather-prediction fusion over one to three days. It has been evaluated in the stated East Asian–western Pacific domain. Transfer to other regions, years, input products, or grids has not been established.

At 1-degree resolution, the forecasts emphasize regional structure. PAM has higher neighborhood FSS than raw GFS but smoother spatial fields and lower cloud-object CSI. These results do not establish better cloud-object detection or native satellite-pixel forecasting. The model's output is not a verified probability of an operational event such as an imaging opportunity. The input-history comparison does not show a universal benefit from four distinct frames across metrics and lead times.

The published scalar scores come from the original CUDA float16-autocast evaluation. CPU float32 execution can differ slightly; RELEASE_VALIDATION.json records the release checks. Weight conversion is lossless and no model was retrained for this release.

Open research materials

This repository provides trained PAM weights, load/inference code, training and metric routines, explicit cohort definitions, one real input example with saved reference predictions, and the existing aggregate comparison data. The complete processed training/evaluation tensor collection and full per-case prediction collection are not included. Upstream products are available from NOAA Himawari and NOAA/NCEP GFS. A full study-data deposit should accompany this model release for reproducibility of every reported analysis.

License and attribution

MIT, copyright 2026 Hanyue Shen and Xinling Liao, for the original code and released model weights. Upstream observations and guidance retain their own terms and attribution; see NOTICE.md. SIAI provided computing resources.

Citation

@software{shen_liao_pam_2026,
  author = {Shen, Hanyue and Liao, Xinling},
  title = {PAM: Spatial Fusion of Himawari Observations and GFS Guidance for 24--72-Hour Regional Cloud-Probability Forecasting},
  year = {2026},
  version = {1.0.0},
  publisher = {Hugging Face},
  url = {https://huggingface.co/HanyueShen/PAM-Cloud-Forecasting/tree/v1.0.0}
}

Machine-readable author and citation metadata are provided in CITATION.cff.

Downloads last month
19
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support