README.md 3.15 KB
Newer Older
tpys's avatar
fuxi  
tpys committed
1
2
## FuXi

tpys's avatar
tpys committed
3

tpys's avatar
fuxi  
tpys committed
4
5
6
7
8
This is the official repository for the FuXi paper.

[FuXi: A cascade machine learning forecasting system for 15-day global weather forecast
](https://arxiv.org/abs/2306.12873)

x7zhong's avatar
x7zhong committed
9
10
11
Published on npj Climate and Atmospheric Science: [FuXi: a cascade machine learning forecasting system for 15-day global weather forecast
](https://www.nature.com/articles/s41612-023-00512-1)

tpys's avatar
fuxi  
tpys committed
12
13
14
by Lei Chen, Xiaohui Zhong, Feng Zhang, Yuan Cheng, Yinghui Xu, Yuan Qi, Hao Li


tpys's avatar
tpys committed
15

tpys's avatar
fuxi  
tpys committed
16
17
18
19
20
21
22
23
24
## Installation

The Google Drive folder contains the FuXi model, code, and sample input data, all of which are essential resources for this study. Access to these resources is restricted by a password-protected link. To obtain the password, users must complete the provided [Google Form](https://docs.google.com/forms/d/e/1FAIpQLSfjwZLf6PmxRvRhIPMQ1WRLJ98iLxOq_0dXb87N8CFNPyYAGg/viewform?usp=sharing). For inquiries regarding the password, please contact Professor Li Hao at the email address: lihao_lh@fudan.edu.cn.

The downloaded files shall be organized as the following hierarchy:

```plain
├── root
│   ├── data
tpys's avatar
tpys committed
25
│   │    ├── 20210101
26
│   │         ├── input.nc
tpys's avatar
tpys committed
27
28
29
30
31
32
│   │         ├── output
│   │               ├── 006.nc
│   │               ├── 012.nc
│   │               ├── ...
│   │               ├── 360.nc
│   ├── model
33
34
35
36
37
38
│   |    ├── short
│   |    ├── short.onnx
│   |    ├── medium
│   |    ├── medium.onnx
│   |    ├── long
│   |    ├── long.onnx
tpys's avatar
tpys committed
39
|   |   
tpys's avatar
tpys committed
40
41
42
43
44
│   ├── fuxi.py
│   ├── util.py
│   ├── make_era5_input.py
│   ├── make_hres_input.py
│   ├── make_gfs_input.py
tpys's avatar
fuxi  
tpys committed
45
46
47

```

48
1. Install xarray 
tpys's avatar
fuxi  
tpys committed
49

50
51
```bash
conda install -c conda-forge xarray dask netCDF4 bottleneck
tpys's avatar
fuxi  
tpys committed
52
```
tpys's avatar
tpys committed
53

tpys's avatar
tpys committed
54
2. Install onnxruntime
tpys's avatar
tpys committed
55

56
```bash
tpys's avatar
fuxi  
tpys committed
57
58
59
60
61
pip install -r requirement.txt
```

## Demo

62
```bash 
tpys's avatar
tpys committed
63
python fuxi.py --model model_dir --input input_file --num_steps 20 20 20
tpys's avatar
tpys committed
64
65
```

tpys's avatar
fuxi  
tpys committed
66

tpys's avatar
tpys committed
67
## Data preparation 
tpys's avatar
fuxi  
tpys committed
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

The `input.nc` file contains preprocessed data from the origin ERA5 files. The file has a shape of (2, 70, 721, 1440), where the first dimension represents two time steps. The second dimension represents all variable and level combinations, named in the following exact order:

```plain
'Z50', 'Z100', 'Z150', 'Z200', 'Z250', 'Z300', 'Z400', 'Z500', 'Z600', 'Z700', 'Z850', 'Z925', 'Z1000', 
'T50', 'T100', 'T150', 'T200', 'T250', 'T300', 'T400', 'T500', 'T600', 'T700', 'T850', 'T925', 'T1000', 
'U50', 'U100', 'U150', 'U200', 'U250', 'U300', 'U400', 'U500', 'U600', 'U700', 'U850', 'U925', 'U1000', 
'V50', 'V100', 'V150', 'V200', 'V250', 'V300', 'V400', 'V500', 'V600', 'V700', 'V850', 'V925', 'V1000', 
'R50', 'R100', 'R150', 'R200', 'R250', 'R300', 'R400', 'R500', 'R600', 'R700', 'R850', 'R925', 'R1000', 
'T2M', 'U10', 'V10', 'MSL', 'TP'
```

The last five variables ('T2M', 'U10', 'V10', 'MSL', 'TP') are surface variables, while the remaining variables represent atmosphere variables with numbers representing pressure levels.


**_NOTE:_**

- The variable 'Z' represents geopotential and not geopotential height.
- The variable 'TP' represents total precipitation accumulated over a period of 6 hours.