How datawhalechina/time-series-learning works
1. This repository is a notebook-based learning and solution workspace for the 2021 “AI Earth” ENSO forecasting competition. It is not a packaged application; the architecture is organized as five progressively more advanced analysis/modeling tasks, each implemented in a Jupyter notebook.
2. The problem boundary is a spatiotemporal prediction pipeline: use the past 12 months of four climate variables to predict future Nino3.4 index values for horizons 1–24 months. The repository’s core technical challenge is converting multi-year gridded climate data into a model-ready tensor representation and then forecasting a long lead-time sequence.
3. Task1, “气象数据分析常用工具,” is the tooling/onboarding layer. It is meant to establish the meteorological data analysis stack and working conventions for handling climate datasets, likely including file inspection, array handling, and domain-specific preprocessing concepts. This forms the foundation for the later tasks.
4. Task2, “数据分析,” is the data understanding and exploration layer. Its role is to inspect the provided training data structure, temporal overlap, variable semantics, and sample construction. This task is where the repository explains how the raw climate fields are organized and how the Nino3.4 target relates to the input data.
5. The dataset boundary is important to the architecture. Training data comes from CMIP5, CMIP6, and SODA in NetCDF format with dimensions like year, month, lat, lon, and four channels: SST, T300, Ua, Va. Test data is provided as .npy tensors shaped as (12, lat, lon, 4). This repo’s modeling notebooks bridge those two formats by transforming climate grids into model inputs.
6. Task3, “模型建立之 CNN+LSTM,” is the first deep learning modeling branch. It combines convolutional layers for spatial feature extraction with LSTM layers for temporal modeling, reflecting the repository’s main design pattern: separate spatial and temporal information processing, then fuse them for sequence forecasting.
7. Task4, “模型建立之 TCNN+RNN,” is an alternative model family focused on temporal convolution plus recurrent processing. It represents a second architecture path for the same prediction problem, showing the repo explores multiple ways to capture long-range dependencies while keeping the model relatively compact for the small dataset regime.
8. Task5, “模型建立之 SA-ConvLSTM,” is the most advanced modeling branch in the repo. It adds attention-aware ConvLSTM-style spatiotemporal modeling, indicating an effort to improve feature selection across both space and time and better handle the long forecast horizon.
9. The fig/ subfolders under Tasks 3–5 are supporting assets for model explanation and visualization. They likely contain architecture diagrams, loss curves, or result plots used by the notebooks, so they belong to the presentation/analysis layer rather than the data or model code path.
10. The README is effectively the project’s architecture document: it defines the competition setting, data modality, sample construction, and evaluation metric. That metric matters architecturally because it rewards both correlation and RMSE across 24 forecast steps, so the modeling stack is designed for multi-step sequence prediction rather than single-step regression.
11. Overall data flow is: raw climate reanalysis/simulation data → exploratory analysis and preprocessing understanding → spatiotemporal tensor construction → alternative deep learning models (CNN+LSTM, TCNN+RNN, SA-ConvLSTM) → 24-month Nino3.4 predictions evaluated by a competition-specific score. The repository contains no deployment or serving layer; its boundary ends at offline experimentation and model comparison.
12. The main architectural theme is iterative competition workflow rather than software system decomposition. Each notebook is a stage in the analysis/modeling pipeline, and the repo’s value is in documenting how to move from domain data understanding to model design choices under a small-sample, long-horizon forecasting constraint.
Main entry points: README.md README · Task3 模型建立之CNN+LSTM.ipynb CNN+LSTM · Task4 模型建立之TCNN+RNN.ipynb TCNN+RNN · Task5 模型建立之SA-ConvLSTM.ipynb SA-ConvLSTM
Components 12
Docs
Project framing and competition rules
- README · Competition setting, data modality, sample construction, and scoring overview.
README.md
Foundation
Tooling and data understanding
- Task1 · Meteorological data analysis tools and working conventions for climate datasets.
Task1/Task1 气象数据分析常用工具.ipynb - Task2 · Explores training data structure, variable semantics, and target/input relationships.
Task2/Task2 数据分析.ipynb - Climate data · NetCDF training data and .npy test tensors spanning SST, T300, Ua, and Va across space and time.
- Tensor build · Converts gridded climate fields into model-ready spatiotemporal tensors.
Models
Alternative forecasting branches
- CNN+LSTM · Spatial feature extraction with convolution followed by temporal sequence modeling with LSTM.
Task3/Task3 模型建立之CNN+LSTM.ipynb - TCNN+RNN · Temporal convolution plus recurrent modeling for long-range dependency capture.
Task4/Task4 模型建立之TCNN+RNN.ipynb - SA-ConvLSTM · Attention-aware spatiotemporal ConvLSTM branch for long-horizon forecasting.
Task5/Task5 模型建立之SA-ConvLSTM.ipynb - Nino3.4 forecast · 24-step monthly prediction target evaluated by the competition score.
Figures
Supporting visual assets
- Task3 figs · Architecture and result figures supporting the CNN+LSTM notebook.
Task3/fig - Task4 figs · Architecture and result figures supporting the TCNN+RNN notebook.
Task4/fig - Task5 figs · Architecture and result figures supporting the SA-ConvLSTM notebook.
Task5/fig
Connections 16
- README → Task1: introduces · Sets up the workflow with analysis tools.
- README → Task2: frames · Explains the data and target structure.
- README → Climate data: defines · Describes the climate data and tensor formats.
- Task1 → Task2: prepares · Tooling and conventions support later analysis.
- Task2 → Tensor build: derives · Turns exploration into model-ready representations.
- Climate data → Tensor build: feeds · Raw NetCDF and .npy inputs are transformed for modeling.
- Tensor build → CNN+LSTM: supplies · Prepared tensors enter the CNN+LSTM branch.
- Tensor build → TCNN+RNN: supplies · Prepared tensors enter the TCNN+RNN branch.
- Tensor build → SA-ConvLSTM: supplies · Prepared tensors enter the SA-ConvLSTM branch.
- CNN+LSTM → Nino3.4 forecast: predicts · Produces multi-step Nino3.4 forecasts.
- TCNN+RNN → Nino3.4 forecast: predicts · Produces multi-step Nino3.4 forecasts.
- SA-ConvLSTM → Nino3.4 forecast: predicts · Produces multi-step Nino3.4 forecasts.
- CNN+LSTM → Task3 figs: documents · Uses supporting figures for explanation and results.
- TCNN+RNN → Task4 figs: documents · Uses supporting figures for explanation and results.
- SA-ConvLSTM → Task5 figs: documents · Uses supporting figures for explanation and results.
- README → Nino3.4 forecast: scores · Describes the competition metric and evaluation horizon.