# yanfei-zhang-95/mnn_cyclonetrack architecture

> Architecture diagram of the GitHub repository yanfei-zhang-95/mnn_cyclonetrack, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yanfei-zhang-95/mnn_cyclonetrack
- Repository: https://github.com/yanfei-zhang-95/mnn_cyclonetrack

## Overview

MNN_CycloneTrack is a research implementation for predicting cyclone tracks with a Matrix Neural Network. The main workflow loads cyclone training and test sets, trains on sliding windows of track coordinates, predicts test tracks, evaluates mean squared error, and saves predictions and ground truth. Training owns preprocessing, layer construction, and checkpoint access; the main script owns dataset loading and result persistence. A separate testing function evaluates supplied predictions. The README documents the paper but not further product capabilities; the graph reflects the sampled source and listed files.

Main entry points: [`MNN_Main.py`](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/MNN_Main.py) (Experiment runner), [`Training.py`](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Training.py) (Train and predict), [`Testing.py`](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Testing.py) (Prediction testing), [`Data_processing.py`](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Data_processing.py) (Window preparation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Track workflow"]
  node_main["Experiment runner<br/>[MNN_Main.py]"]
  node_train_data["Cyclone training data<br/>[cytrack_train.mat]"]
  node_test_data["Cyclone test data<br/>[cytrack_test.mat]"]
end

subgraph group_model["MNN training"]
  node_training["Train and predict<br/>[Training.py]"]
  node_processing["Window preparation<br/>[Data_processing.py]"]
  node_layer["MNN layer<br/>[Add_layer.py]"]
  node_checkpoint[("Model checkpoint")]
end

subgraph group_evaluation["Evaluation and output"]
  node_testing["Prediction testing<br/>[Testing.py]"]
  node_metric["MSE metric"]
  node_predictions["Saved predictions<br/>[Y_pred_trueMNN.npy]"]
  node_ground_truth["Saved test targets<br/>[Y_test.npy]"]
  node_prior_predictions["Prior predictions<br/>[Y_pred_trueMNN.npy]"]
end

node_user(("Researcher"))

node_user -->|"runs"| node_main
node_train_data -->|"loads"| node_main
node_test_data -->|"loads"| node_main
node_main -->|"invokes"| node_training
node_training -->|"prepares windows"| node_processing
node_training -->|"builds layers"| node_layer
node_training -->|"saves and restores"| node_checkpoint
node_training -->|"returns predictions"| node_main
node_main -->|"computes MSE"| node_metric
node_main -->|"saves predictions"| node_predictions
node_main -->|"saves targets"| node_ground_truth
node_prior_predictions -->|"loads"| node_main
node_testing -->|"prepares targets"| node_processing
node_testing -->|"computes MSE"| node_metric

click node_main "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/MNN_Main.py"
click node_train_data "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/cytrack_train.mat"
click node_test_data "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/cytrack_test.mat"
click node_training "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Training.py"
click node_processing "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Data_processing.py"
click node_layer "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Add_layer.py"
click node_testing "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Testing.py"
click node_predictions "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Y_pred_trueMNN.npy"
click node_ground_truth "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Y_test.npy"
click node_prior_predictions "https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Y_pred_trueMNN.npy"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_train_data,node_test_data toneBlue
class node_training,node_processing,node_layer,node_checkpoint toneAmber
class node_testing,node_metric,node_predictions,node_ground_truth,node_prior_predictions toneMint
class node_user toneIndigo
```

## Components

### Track workflow

- [Experiment runner](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/MNN_Main.py): `MNN_Main.py`
- [Cyclone training data](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/cytrack_train.mat): `cytrack_train.mat`
- [Cyclone test data](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/cytrack_test.mat): `cytrack_test.mat`

### MNN training

- [Train and predict](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Training.py): `Training.py`
- [Window preparation](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Data_processing.py): `Data_processing.py`
- [MNN layer](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Add_layer.py): `Add_layer.py`
- **Model checkpoint**

### Evaluation and output

- [Prediction testing](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Testing.py): `Testing.py`
- **MSE metric**
- [Saved predictions](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Y_pred_trueMNN.npy): `Y_pred_trueMNN.npy`
- [Saved test targets](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Y_test.npy): `Y_test.npy`
- [Prior predictions](https://github.com/yanfei-zhang-95/mnn_cyclonetrack/blob/master/Y_pred_trueMNN.npy): `Y_pred_trueMNN.npy`

### Other components

- **Researcher**

## Connections

- Researcher → Experiment runner: runs
- Cyclone training data → Experiment runner: loads
- Cyclone test data → Experiment runner: loads
- Experiment runner → Train and predict: invokes
- Train and predict → Window preparation: prepares windows
- Train and predict → MNN layer: builds layers
- Train and predict → Model checkpoint: saves and restores
- Train and predict → Experiment runner: returns predictions
- Experiment runner → MSE metric: computes MSE
- Experiment runner → Saved predictions: saves predictions
- Experiment runner → Saved test targets: saves targets
- Prior predictions → Experiment runner: loads
- Prediction testing → Window preparation: prepares targets
- Prediction testing → MSE metric: computes MSE
