The data and source code of the work Multi-Horizon SpatioTemporal Network (MHSTN).
.
βββ external <- Directory to store external resources, e.g., the data used in the competitor DUQ.
βββ windpred
βββ __init__.py
βββ baseline <- There are implementations of the included competitor models.
βββ data <- That is the constructed real-world dataset.
βΒ Β βββ nwp <- There are nine groups of observation data (i.e., nine `.csv` files).
βΒ Β βββ obs <- There is one group of NWP data (i.e., a `.csv` file)
βββ eda <- There are some functions to conduct exploratory data analysis, e.g. calculation of various statistics, and visualization of data.
βββ exp <- The basic package for conducting experiments.
βββ expinc <- There are experimental scripts to conduct the incremental evaluation.
βββ exproll <- There are experimental scripts to conduct the rolling evaluation.
βββ mhstn <- It is the implementation of the proposed unified framework.
βββ utils <- There are some generic utils.
βββ requirements.txt <- It lists the required libraries.
The observation and NWP data are located in the directories of windpred/data/obs/ and windpred/data/nwp/, respectively. There are nine groups of observation data and one group of NWP data shared to the whole airfield. Missing values in the observation data are represented by a number of -9999. The weather variables include wind speed (V), lateral wind speed (VX), longitudinal wind speed (VY), wind direction (DIR), temperature (TP), relative humidity (RH), and sea-level pressure (SLP). Note that the values of VX and VY in the observation data are calculated from V and DIR as they cannot be measured directly.
For more details, please refer to the paper and the source code.
This project is based on Python-3.6. Please apply pip install -r requirements.txt to install the required libraries. Please do not forget to add the project directory, i.e., windpred, into your Python Module Search Path.
It should be noted that an independent (virtual) environment is needed to run the competitor DUQ because the primitive implementation is based on an earlier version of Tensorflow. Please refer to README.md and requirements.txt below windpred/baseline/duq/ for more details.
The corresponding can be located in
We used whole project on Ubuntu-18.04 and macOS-10.14.6.
The directories of expinc/ and exproll/ correspond to the two evaluation strategies, respectively. Each of them stores the main scripts to run experiments.
For example, the scripts located in expinc/ are as follows. Here, a script with a prefix of base_ corresponds to one (type) of competitor models. Our models take a prefix of mhstn.
expinc/
βββ __init__.py
βββ base.py <- some common settings.
βββ base_benchmark.py <- Persistence and NWP models.
βββ base_convention.py <- GBRT and SVR models.
βββ base_convlstm.py <- ConvLSTM(h,f,s).
βββ base_convlstm_covar.py <- ConvLSTM(h,f,s,c).
βββ base_convlstm_covar_all.py <- ConvLSTM(h,f,s,c*).
βββ base_duq.py <- DUQ with a grid search strategy to tune hyperparameters.
βββ base_duq_best.py <- DUQ(h,f).
βββ base_duq_best_covar.py <- DUQ(h,f,c).
βββ base_duq_best_covar_all.py <- DUQ(h,f,c*).
βββ base_gcnlstm.py <- GCNLSTM(h,f,s).
βββ base_lstm.py <- LSTM(h), LSTM(f) and LSTM(h,f).
βββ base_lstm_spatial.py <- LSTM(h,f,s).
βββ base_mlp.py <- MLP(h), MLP(f) and MLP(h,f).
βββ mhstn.py <- MHSTN-T(h,f), MHSTN-S(h,f,s) and MHSTN-E(h,f,s).
βββ mhstn_covar.py <- MHSTN-T(h,f,c), MHSTN-S(h,f,s,c) and MHSTN-E(h,f,s,c).
βββ mhstn_covar_all.py <- MHSTN-T(h,f,c*), MHSTN-S(h,f,s,c*) and MHSTN-E(h,f,s,c*).
βββ vis.py <- visualizing prediction results.
βββ vis_with_lstm_h.py <- visualizing prediction results.
For each of aforementioned scripts, the variable of target, which points to the target wind variable, can be assigned with V, VX, VY and DIR, respectively. Note that DIR is calculated based on VX and VY, thus the script must be operated for the latter two variables first. The experiment results are saved in the directory of cache/.
Please refer to the paper and source code for more details.