"SEA-ViT: Forecasting Sea Surface Currents Using a Vision Transformer and GRU-Based Spatio-Temporal Covariance Model"
π Accepted at IEEE KST 2025 | π¬ Developed by Teerapong Panboonyuen (Kao)
sea-vit/
βββ src/
β βββ model.py # SEA-ViT Model: ViT + BiGRU
β βββ train.py # Training Pipeline
β βββ inference.py # Run Inference on Radar Sequences
β βββ metrics.py # Evaluation (RMSE, MAE, Corr)
β βββ utils.py # Dataset I/O, Preprocessing, Logging
βββ Dockerfile # Reproducible Environment
βββ requirements.txt # Python Dependencies
βββ README.md # Project Overview (this file)
βββ data/ # Example .npz radar data (optional)
Install dependencies via pip:
git clone https://github.com/kaopanboonyuen/GISTDA-SeaViT.git
cd GISTDA-SeaViT
pip install -r requirements.txt
Or build the full environment via Docker:
docker build -t sea-vit .
Assuming your .npz
dataset includes radar sequences + targets:
python src/train.py \
--data-path ./data/train.npz \
--batch-size 8 \
--epochs 50 \
--lr 1e-4
Input shape: [N, T, 2, H, W]
for sequences
Target shape: [N, forecast_steps, 2]
for (U, V)
python src/inference.py \
--model-path ./checkpoints/sea-vit.pth \
--input-path ./data/sample_input.npz \
--output-path ./output/forecast.npy
python src/metrics.py \
--predictions ./output/forecast.npy \
--ground-truth ./data/sample_ground_truth.npy
Metric | Value (Example) |
---|---|
RMSE | 0.087 |
MAE | 0.065 |
Corr | 0.91 |
SEA-ViT demonstrates high accuracy across diverse oceanic conditions, outperforming CNN-GRU and ConvLSTM baselines.
@inproceedings{panboonyuen2025sea,
title={SEA-ViT: Forecasting Sea Surface Currents Using a Vision Transformer and GRU-Based Spatio-Temporal Covariance Model},
author={Panboonyuen, Teerapong},
booktitle={2025 17th International Conference on Knowledge and Smart Technology (KST)},
pages={1--6},
year={2025},
organization={IEEE}
}
Teerapong Panboonyuen (Kao)
Postdoctoral Researcher, Chulalongkorn University
Senior Research Scientist, MARSAIL
π§ teerapong.panboonyuen@gmail.com
Pull requests welcome! For feature ideas or bug fixes, feel free to open an issue.
βSEA-ViT doesnβt just see the ocean β it foresees it.β ππ‘