From 8372a7580cee8c744f48bdd2548d68f98d8d4488 Mon Sep 17 00:00:00 2001 From: Auto Commit Date: Wed, 17 Sep 2025 14:00:51 +0000 Subject: [PATCH] chore: initialize repo, add .gitignore, data scripts --- .gitignore | 66 +++ README.md | 88 +--- models/reprogramming.py | 7 +- models/repst.py | 7 +- prepare_pems_bay.py | 115 +++++ scripts/data_preparation/BLAST/merge_data.py | 45 ++ .../generate_training_data.py | 103 ++++ .../CA/generate_training_data.py | 136 +++++ .../ETTh1/generate_training_data.py | 121 +++++ .../ETTh2/generate_training_data.py | 121 +++++ .../ETTm1/generate_training_data.py | 121 +++++ .../ETTm2/generate_training_data.py | 121 +++++ .../Electricity/generate_training_data.py | 120 +++++ .../ExchangeRate/generate_training_data.py | 120 +++++ .../GBA/generate_training_data.py | 136 +++++ .../GLA/generate_training_data.py | 136 +++++ .../Gaussian/generate_training_data.py | 73 +++ .../Gaussian/simulate_data.py | 26 + .../GlobalTemp/generate_training_data.py | 121 +++++ .../GlobalWind/generate_training_data.py | 121 +++++ .../Illness/generate_training_data.py | 120 +++++ .../data_preparation/JiNan/generate_adj_mx.py | 84 +++ .../JiNan/generate_training_data.py | 113 ++++ .../METR-LA/generate_training_data.py | 124 +++++ .../PEMS-BAY/generate_training_data.py | 124 +++++ .../PEMS03/generate_adj_mx.py | 84 +++ .../PEMS03/generate_training_data.py | 113 ++++ .../PEMS04/generate_adj_mx.py | 84 +++ .../PEMS04/generate_training_data.py | 113 ++++ .../PEMS07/generate_adj_mx.py | 84 +++ .../PEMS07/generate_training_data.py | 113 ++++ .../PEMS08/generate_adj_mx.py | 84 +++ .../PEMS08/generate_training_data.py | 113 ++++ .../Pulse/generate_training_data.py | 74 +++ .../data_preparation/Pulse/simulate_data.py | 33 ++ .../SD/generate_training_data.py | 136 +++++ .../Traffic/generate_training_data.py | 120 +++++ .../Weather/generate_training_data.py | 120 +++++ scripts/data_preparation/run.sh | 30 ++ .../data_visualization.ipynb | 359 +++++++++++++ .../distribution_visualization.ipynb | 292 +++++++++++ .../indistinguishability.ipynb | 251 +++++++++ .../pred_visualization.ipynb | 136 +++++ scripts/dataset_analysis.py | 487 ++++++++++++++++++ scripts/dataset_analyzer.py | 194 +++++++ scripts/download_gpt2_with_kagglehub.py | 34 ++ scripts/report_generator.py | 279 ++++++++++ scripts/run_dataset_analysis.py | 62 +++ 48 files changed, 5789 insertions(+), 75 deletions(-) create mode 100644 .gitignore create mode 100644 prepare_pems_bay.py create mode 100644 scripts/data_preparation/BLAST/merge_data.py create mode 100644 scripts/data_preparation/BeijingAirQuality/generate_training_data.py create mode 100644 scripts/data_preparation/CA/generate_training_data.py create mode 100644 scripts/data_preparation/ETTh1/generate_training_data.py create mode 100644 scripts/data_preparation/ETTh2/generate_training_data.py create mode 100644 scripts/data_preparation/ETTm1/generate_training_data.py create mode 100644 scripts/data_preparation/ETTm2/generate_training_data.py create mode 100644 scripts/data_preparation/Electricity/generate_training_data.py create mode 100644 scripts/data_preparation/ExchangeRate/generate_training_data.py create mode 100644 scripts/data_preparation/GBA/generate_training_data.py create mode 100644 scripts/data_preparation/GLA/generate_training_data.py create mode 100644 scripts/data_preparation/Gaussian/generate_training_data.py create mode 100644 scripts/data_preparation/Gaussian/simulate_data.py create mode 100644 scripts/data_preparation/GlobalTemp/generate_training_data.py create mode 100644 scripts/data_preparation/GlobalWind/generate_training_data.py create mode 100644 scripts/data_preparation/Illness/generate_training_data.py create mode 100644 scripts/data_preparation/JiNan/generate_adj_mx.py create mode 100644 scripts/data_preparation/JiNan/generate_training_data.py create mode 100644 scripts/data_preparation/METR-LA/generate_training_data.py create mode 100644 scripts/data_preparation/PEMS-BAY/generate_training_data.py create mode 100644 scripts/data_preparation/PEMS03/generate_adj_mx.py create mode 100644 scripts/data_preparation/PEMS03/generate_training_data.py create mode 100644 scripts/data_preparation/PEMS04/generate_adj_mx.py create mode 100644 scripts/data_preparation/PEMS04/generate_training_data.py create mode 100644 scripts/data_preparation/PEMS07/generate_adj_mx.py create mode 100644 scripts/data_preparation/PEMS07/generate_training_data.py create mode 100644 scripts/data_preparation/PEMS08/generate_adj_mx.py create mode 100644 scripts/data_preparation/PEMS08/generate_training_data.py create mode 100644 scripts/data_preparation/Pulse/generate_training_data.py create mode 100644 scripts/data_preparation/Pulse/simulate_data.py create mode 100644 scripts/data_preparation/SD/generate_training_data.py create mode 100644 scripts/data_preparation/Traffic/generate_training_data.py create mode 100644 scripts/data_preparation/Weather/generate_training_data.py create mode 100755 scripts/data_preparation/run.sh create mode 100644 scripts/data_visualization/data_visualization.ipynb create mode 100644 scripts/data_visualization/distribution_visualization.ipynb create mode 100644 scripts/data_visualization/indistinguishability.ipynb create mode 100644 scripts/data_visualization/pred_visualization.ipynb create mode 100644 scripts/dataset_analysis.py create mode 100644 scripts/dataset_analyzer.py create mode 100644 scripts/download_gpt2_with_kagglehub.py create mode 100644 scripts/report_generator.py create mode 100644 scripts/run_dataset_analysis.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1638e51 --- /dev/null +++ b/.gitignore @@ -0,0 +1,66 @@ + +# Project artifacts +GPT-2/ +datasets/ +checkpoints/ +log/ + +# Python +__pycache__/ +*.pyc +*.pyo +*.pyd +.Python +.venv/ +venv/ +env/ +.env + +# Data & weights +*.npz +*.npy +*.pkl +*.pt +*.pth +*.ckpt +*.bin + +# Logs +*.log + +# VSCode +.vscode/ + +# JetBrains / IDEs +.idea/ +.fleet/ +.vs/ +*.code-workspace + +# OS files +.DS_Store +Thumbs.db + +# Python build & test +build/ +dist/ +*.egg-info/ +pip-wheel-metadata/ +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ +.tox/ +.nox/ +.coverage +coverage.xml +htmlcov/ +.cache/ + +# Editors swap/history +*.swp +*.swo +.history/ + +# Jupyter +.ipynb_checkpoints/ + diff --git a/README.md b/README.md index 23e23be..a502bba 100644 --- a/README.md +++ b/README.md @@ -1,77 +1,31 @@ -
- - -

(IJCAI'25) RePST: Language Model Empowered Spatio-Temporal Forecasting via Semantic-Oriented Reprogramming

-
+RePST 修复版 +准备GPT-2预训练权重 +```bash +mkdir GPT-2 +wget https://huggingface.co/openai-community/gpt2/resolve/main/config.json?download=true -O ./GPT-2/config.json +wget https://huggingface.co/openai-community/gpt2/resolve/main/pytorch_model.bin?download=true -O ./GPT-2/pytorch_model.bin +```` +准备PEMS-BAY数据集,按照[BasicTS](https://github.com/GestaltCogTeam/BasicTS/blob/master/tutorial/dataset_design.md)方法准备 +[Google Drive](https://drive.google.com/drive/folders/14EJVODCU48fGK0FkyeVom_9lETh80Yjp?usp=sharing) 可使用gdown下载。 +解压后,确保 `./datasets/PEMS-BAY` 文件夹内具有 `adj_mx.pkl, data.dat, desc,json文件`, 然后运行脚本 +```bash +python prepare_pems_bay.py +```` ---- -> -> 🙋 Please let us know if you find out a mistake or have any suggestions! -> -> 🐝 The full version of this paper can be accessed at https://arxiv.org/abs/2408.14505. -> -> 🌟 If you find this resource helpful, please consider to star this repository and cite our research: +在PEMS-BAY数据集文件夹下生成 `train.npz, val.npz, test.npz` -``` -@inproceedings{wang2025repst, - title={RePST: Language Model Empowered Spatio-Temporal Forecasting via Semantic-Oriented Reprogramming}, - author={Wang, Hao and Han, Jindong and Fan, Wei and Sun, Leilei and Liu, Hao}, - booktitle={Proceedings of the 34th International Joint Conference on Artificial Intelligence}, - year={2025} -} -``` +根据BasicTS仓库配置BasicTS环境,亦或是使用 +`pip install -r requirement.txt` -## Introduction -This repository contains the implementation of REPST, a framework for spatio-temporal forecasting that leverages the reasoning and generalization capabilities of Pre-trained Language Models (PLMs). REPST utilizes a semantic-aware spatio-temporal decomposer and selective discrete reprogramming to enable PLMs to handle complex spatio-temporal data, especially in data-scarce environments. +我是直接使用现有的BasicTS环境,因此没有做过测试 -

- -

- -- RePST comprises two key components: (1) a dynamic mode decomposition approach that disentangles spatially correlated time series into interpretable components, and (2) an expanded spatio-temporal vocabulary that helps PLMs better understand the dynamics of complex spatio-temporal systems, to guide PLM reasoning. - -

- -

- -## Requirements -Use python 3.11 from MiniConda - -- torch==2.0.1 -- accelerate==0.28.0 -- einops==0.6.0 -- matplotlib==3.7.0 -- numpy==1.24.4 -- pandas==2.1.4 -- scikit_learn==1.3.2 -- scipy==1.11.4 -- tqdm==4.66.1 -- transformers==4.36.2 - - -To install all dependencies: -``` -pip install -r requirements.txt -``` - -## Datasets -# Pending -You can access the well pre-processed datasets from [[Google Drive]](https://drive.google.com/), then place the downloaded contents under `./dataset` - - - -## Detailed usage - -Please refer to ```run.py``` for the detailed description of each hyperparameter. - - - - -## Acknowledgement -Our baseline model implementation adapts [BasicTS](https://github.com/GestaltCogTeam/BasicTS) as the code base and have extensively modified it to our purposes. We thank the authors for sharing their implementations and related resources. +开跑 +```python +python run.py --root_path datasets --data_path PEMS-BAY --device cuda:0 --seq_len 12 --pred_len 12 +``` \ No newline at end of file diff --git a/models/reprogramming.py b/models/reprogramming.py index ac7c000..bfe93d8 100644 --- a/models/reprogramming.py +++ b/models/reprogramming.py @@ -2,6 +2,7 @@ import torch import torch.nn as nn import torch.nn.functional as F from torch import Tensor +from math import sqrt class ReplicationPad1d(nn.Module): @@ -20,7 +21,7 @@ class TokenEmbedding(nn.Module): padding = 1 self.tokenConv = nn.Conv1d(in_channels=c_in, out_channels=d_model, kernel_size=3, padding=padding, padding_mode='circular', bias=False) - self.confusion_layer = nn.Linear(12, 1) + self.confusion_layer = nn.LazyLinear(1) # if air_quality # self.confusion_layer = nn.Linear(42, 1) @@ -31,8 +32,8 @@ class TokenEmbedding(nn.Module): m.weight, mode='fan_in', nonlinearity='leaky_relu') def forward(self, x): - b, n, m, pn, pl = x.shape - x = self.tokenConv(x.reshape(b*n, pl, m*pn)) + b, n, m, pn, pl = x.shape # batch, node, feature, patch_num, patch_len + x = self.tokenConv(x.reshape(b*n, pl, m*pn)) # batch*node, patch_len, feature*patch_num x = self.confusion_layer(x) return x.reshape(b, n, -1) diff --git a/models/repst.py b/models/repst.py index 07abf9c..adf4908 100644 --- a/models/repst.py +++ b/models/repst.py @@ -7,8 +7,8 @@ from transformers.models.gpt2.modeling_gpt2 import GPT2Model from transformers import GPT2Model, GPT2Config from einops import rearrange -from reprogramming import * -from normalizer import * +from .reprogramming import * +from .normalizer import * class repst(nn.Module): @@ -34,9 +34,6 @@ class repst(nn.Module): self.patch_embedding = PatchEmbedding(self.d_model, self.patch_len, self.stride, self.dropout) - - - self.gpts = GPT2Model.from_pretrained('./GPT-2', output_attentions=True, output_hidden_states=True) self.gpts.h = self.gpts.h[:self.gpt_layers] diff --git a/prepare_pems_bay.py b/prepare_pems_bay.py new file mode 100644 index 0000000..0cd1758 --- /dev/null +++ b/prepare_pems_bay.py @@ -0,0 +1,115 @@ +import os +import json +import argparse +import numpy as np + + +def generate_offsets(seq_length_x: int, seq_length_y: int): + x_offsets = np.sort(np.concatenate((np.arange(-(seq_length_x - 1), 1, 1),))) + y_offsets = np.sort(np.arange(1, seq_length_y + 1, 1)) + return x_offsets, y_offsets + + +def make_sliding_windows(data: np.ndarray, x_offsets: np.ndarray, y_offsets: np.ndarray): + # data: (T, N, C) + num_samples = data.shape[0] + min_t = abs(int(np.min(x_offsets))) + max_t = num_samples - int(np.max(y_offsets)) + + x, y = [], [] + for t in range(min_t, max_t): + x.append(data[t + x_offsets, ...]) # (seq_len, N, C) + y.append(data[t + y_offsets, ...]) # (pred_len, N, C) + + x = np.stack(x, axis=0).astype(np.float32) # (S, seq_len, N, C) + y = np.stack(y, axis=0).astype(np.float32) # (S, pred_len, N, C) + + # Reorder to (S, N, L, C) to match model expectation: b n l m + x = np.transpose(x, (0, 2, 1, 3)) + y = np.transpose(y, (0, 2, 1, 3)) + return x, y + + +def split_by_ratio(x: np.ndarray, y: np.ndarray, ratios): + r_train, r_val, r_test = ratios + num_samples = x.shape[0] + n_train = int(round(num_samples * r_train)) + n_val = int(round(num_samples * r_val)) + n_test = num_samples - n_train - n_val + + x_train, y_train = x[:n_train], y[:n_train] + x_val, y_val = x[n_train:n_train + n_val], y[n_train:n_train + n_val] + x_test, y_test = x[-n_test:], y[-n_test:] + return (x_train, y_train), (x_val, y_val), (x_test, y_test) + + +def main(): + parser = argparse.ArgumentParser(description="Prepare PEMS-BAY to train/val/test .npz") + parser.add_argument("--dataset_dir", type=str, default='./datasets/PEMS-BAY', help="Path to datasets/PEMS-BAY directory") + parser.add_argument("--seq_len", type=int, default=12) + parser.add_argument("--pred_len", type=int, default=12) + parser.add_argument("--speed_channel_only", action="store_true", help="Use only the first channel (speed)") + args = parser.parse_args() + + dataset_dir = args.dataset_dir + desc_path = os.path.join(dataset_dir, "desc.json") + data_path = os.path.join(dataset_dir, "data.dat") + + if not os.path.exists(desc_path): + raise FileNotFoundError(f"desc.json not found at {desc_path}") + if not os.path.exists(data_path): + raise FileNotFoundError(f"data.dat not found at {data_path}") + + with open(desc_path, "r") as f: + desc = json.load(f) + + shape = desc.get("shape") # expected [T, N, C] + if not shape or len(shape) not in (2, 3): + raise ValueError(f"Invalid shape in desc.json: {shape}") + + total_elems = int(np.prod(shape)) if len(shape) == 3 else int(np.prod(shape) * 1) + raw = np.fromfile(data_path, dtype=np.float32) + if raw.size != total_elems: + # Try infer last dim as 1 if desc has 2 dims + if len(shape) == 2 and raw.size == shape[0] * shape[1]: + pass + else: + raise ValueError(f"data.dat size mismatch. desc={shape}, fromfile={raw.size}") + + if len(shape) == 3: + data = raw.reshape(shape) + else: + data = raw.reshape(shape + [1]) # (T, N, 1) + + # Use only speed channel for this model (expects C=1) + if data.shape[-1] > 1: + data = data[..., :1] + + x_offsets, y_offsets = generate_offsets(args.seq_len, args.pred_len) + x, y = make_sliding_windows(data, x_offsets, y_offsets) + + ratios = desc.get("regular_settings", {}).get("TRAIN_VAL_TEST_RATIO", [0.7, 0.1, 0.2]) + (x_train, y_train), (x_val, y_val), (x_test, y_test) = split_by_ratio(x, y, ratios) + + for split_name, _x, _y in ( + ("train", x_train, y_train), + ("val", x_val, y_val), + ("test", x_test, y_test), + ): + out_path = os.path.join(dataset_dir, f"{split_name}.npz") + np.savez_compressed( + out_path, + x=_x, + y=_y, + x_offsets=x_offsets.reshape(list(x_offsets.shape) + [1]), + y_offsets=y_offsets.reshape(list(y_offsets.shape) + [1]), + ) + print(f"Saved {split_name} -> {out_path} | x={_x.shape}, y={_y.shape}") + + print("Done.") + + +if __name__ == "__main__": + main() + + diff --git a/scripts/data_preparation/BLAST/merge_data.py b/scripts/data_preparation/BLAST/merge_data.py new file mode 100644 index 0000000..6d0c8ea --- /dev/null +++ b/scripts/data_preparation/BLAST/merge_data.py @@ -0,0 +1,45 @@ +import os +from argparse import ArgumentParser + +import numpy as np +from tqdm import tqdm + +data_dir_path = 'datasets/BLAST/train' + +def main(clean_cache=False): + + num_samples = 0 + for i in range(99): + shape = tuple(np.load(data_dir_path + f'/shape_{i}_99.npy')) + N, L = shape + num_samples += N + + merged_data = np.memmap(data_dir_path + '/data.dat', mode='w+', dtype=np.float32, shape=(num_samples, L)) + + print('Merging data...') + current_index = 0 + for i in tqdm(range(99)): + shape = tuple(np.load(data_dir_path + f'/shape_{i}_99.npy')) + data = np.memmap(data_dir_path + f'/data_{i}_99.dat', mode='r', dtype=np.float32, shape=shape) + merged_data[current_index:current_index + shape[0]] = data + current_index += shape[0] + + shape = merged_data.shape + np.save(data_dir_path + '/shape.npy', shape) + + print('Data merged successfully.') + if clean_cache: + print('Cleaning cache...') + for i in tqdm(range(99)): + os.remove(data_dir_path + f'/data_{i}_99.dat') + os.remove(data_dir_path + f'/shape_{i}_99.npy') + print('Cache cleaned.') + +def parse_args(): + parser = ArgumentParser(description='Merge data files into a single memmap file.') + parser.add_argument('--clean_cache', default=True, help='Clean cache after merging.') + return parser.parse_args() + +if __name__ == '__main__': + args = parse_args() + main(clean_cache=args.clean_cache) diff --git a/scripts/data_preparation/BeijingAirQuality/generate_training_data.py b/scripts/data_preparation/BeijingAirQuality/generate_training_data.py new file mode 100644 index 0000000..484dea1 --- /dev/null +++ b/scripts/data_preparation/BeijingAirQuality/generate_training_data.py @@ -0,0 +1,103 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'BeijingAirQuality' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.xlsx' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'Beijing air quality' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_excel(data_file_path) + data = df.values + colums = df.columns + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + print('Columns: {0}'.format(colums)) + return data + +def add_temporal_features(data): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = np.array([i % steps_per_day / steps_per_day for i in range(l)]) + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = np.array([(i // steps_per_day) % 7 / 7 for i in range(l)]) + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/CA/generate_training_data.py b/scripts/data_preparation/CA/generate_training_data.py new file mode 100644 index 0000000..968a376 --- /dev/null +++ b/scripts/data_preparation/CA/generate_training_data.py @@ -0,0 +1,136 @@ +import json +import os +import pickle +import shutil + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'CA' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.h5' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.npy' +meta_file_path = f'datasets/raw_data/{dataset_name}/meta_{dataset_name}.csv' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = False # Add day of the month as a feature +add_day_of_year = False # Add day of the year as a feature +steps_per_day = 96 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_hdf(data_file_path) + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = (df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = df.index.dayofweek / 7 + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + if add_day_of_month: + # numerical day_of_month + day_of_month = (df.index.day - 1 ) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + day_of_month_tiled = np.tile(day_of_month, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_month_tiled) + + if add_day_of_year: + # numerical day_of_year + day_of_year = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + day_of_year_tiled = np.tile(day_of_year, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_year_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + adj_mx = np.load(graph_file_path) + with open(output_dir + '/adj_mx.pkl', 'wb') as f: + pickle.dump(adj_mx, f) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_meta_data(): + '''Save the meta data to the output directory''' + output_meta_data_path = os.path.join(output_dir, 'meta.csv') + shutil.copyfile(meta_file_path, output_meta_data_path) + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Copy and save adjacency matrix + save_graph() + + # Copy and save meta data + save_meta_data() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/ETTh1/generate_training_data.py b/scripts/data_preparation/ETTh1/generate_training_data.py new file mode 100644 index 0000000..d4d29c2 --- /dev/null +++ b/scripts/data_preparation/ETTh1/generate_training_data.py @@ -0,0 +1,121 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'ETTh1' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'electricity transformer temperature' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df = df.iloc[:20*30*24] + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings, + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/ETTh2/generate_training_data.py b/scripts/data_preparation/ETTh2/generate_training_data.py new file mode 100644 index 0000000..d2aa0a1 --- /dev/null +++ b/scripts/data_preparation/ETTh2/generate_training_data.py @@ -0,0 +1,121 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'ETTh2' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'electricity transformer temperature' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df = df.iloc[:20*30*24] + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/ETTm1/generate_training_data.py b/scripts/data_preparation/ETTm1/generate_training_data.py new file mode 100644 index 0000000..807afd2 --- /dev/null +++ b/scripts/data_preparation/ETTm1/generate_training_data.py @@ -0,0 +1,121 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'ETTm1' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 96 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'electricity transformer temperature' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df = df.iloc[:20*30*24*4] + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/ETTm2/generate_training_data.py b/scripts/data_preparation/ETTm2/generate_training_data.py new file mode 100644 index 0000000..28382ac --- /dev/null +++ b/scripts/data_preparation/ETTm2/generate_training_data.py @@ -0,0 +1,121 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'ETTm2' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 96 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'electricity transformer temperature' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df = df.iloc[:20*30*24*4] + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Electricity/generate_training_data.py b/scripts/data_preparation/Electricity/generate_training_data.py new file mode 100644 index 0000000..8db98da --- /dev/null +++ b/scripts/data_preparation/Electricity/generate_training_data.py @@ -0,0 +1,120 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'Electricity' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'electricity consumption' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/ExchangeRate/generate_training_data.py b/scripts/data_preparation/ExchangeRate/generate_training_data.py new file mode 100644 index 0000000..5f87b08 --- /dev/null +++ b/scripts/data_preparation/ExchangeRate/generate_training_data.py @@ -0,0 +1,120 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'ExchangeRate' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 1 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'exchange rate' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y/%m/%d %H:%M').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/GBA/generate_training_data.py b/scripts/data_preparation/GBA/generate_training_data.py new file mode 100644 index 0000000..fafee34 --- /dev/null +++ b/scripts/data_preparation/GBA/generate_training_data.py @@ -0,0 +1,136 @@ +import json +import os +import pickle +import shutil + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'GBA' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.h5' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.npy' +meta_file_path = f'datasets/raw_data/{dataset_name}/meta_{dataset_name}.csv' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = False # Add day of the month as a feature +add_day_of_year = False # Add day of the year as a feature +steps_per_day = 96 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_hdf(data_file_path) + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = (df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = df.index.dayofweek / 7 + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + if add_day_of_month: + # numerical day_of_month + day_of_month = (df.index.day - 1 ) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + day_of_month_tiled = np.tile(day_of_month, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_month_tiled) + + if add_day_of_year: + # numerical day_of_year + day_of_year = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + day_of_year_tiled = np.tile(day_of_year, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_year_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + adj_mx = np.load(graph_file_path) + with open(output_dir + '/adj_mx.pkl', 'wb') as f: + pickle.dump(adj_mx, f) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_meta_data(): + '''Save the meta data to the output directory''' + output_meta_data_path = os.path.join(output_dir, 'meta.csv') + shutil.copyfile(meta_file_path, output_meta_data_path) + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Copy and save adjacency matrix + save_graph() + + # Copy and save meta data + save_meta_data() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/GLA/generate_training_data.py b/scripts/data_preparation/GLA/generate_training_data.py new file mode 100644 index 0000000..d177b67 --- /dev/null +++ b/scripts/data_preparation/GLA/generate_training_data.py @@ -0,0 +1,136 @@ +import json +import os +import pickle +import shutil + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'GLA' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.h5' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.npy' +meta_file_path = f'datasets/raw_data/{dataset_name}/meta_{dataset_name}.csv' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = False # Add day of the month as a feature +add_day_of_year = False # Add day of the year as a feature +steps_per_day = 96 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_hdf(data_file_path) + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = (df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = df.index.dayofweek / 7 + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + if add_day_of_month: + # numerical day_of_month + day_of_month = (df.index.day - 1 ) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + day_of_month_tiled = np.tile(day_of_month, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_month_tiled) + + if add_day_of_year: + # numerical day_of_year + day_of_year = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + day_of_year_tiled = np.tile(day_of_year, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_year_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + adj_mx = np.load(graph_file_path) + with open(output_dir + '/adj_mx.pkl', 'wb') as f: + pickle.dump(adj_mx, f) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_meta_data(): + '''Save the meta data to the output directory''' + output_meta_data_path = os.path.join(output_dir, 'meta.csv') + shutil.copyfile(meta_file_path, output_meta_data_path) + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Copy and save adjacency matrix + save_graph() + + # Copy and save meta data + save_meta_data() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Gaussian/generate_training_data.py b/scripts/data_preparation/Gaussian/generate_training_data.py new file mode 100644 index 0000000..b35dbd3 --- /dev/null +++ b/scripts/data_preparation/Gaussian/generate_training_data.py @@ -0,0 +1,73 @@ +import json +import os + +import numpy as np + +# Hyperparameters +dataset_name = 'Gaussian' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npy' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +frequency = None +domain = 'simulated Gaussian data' +feature_description = [domain] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Save processed data + save_data(data) + + # Save dataset description + save_description(data) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Gaussian/simulate_data.py b/scripts/data_preparation/Gaussian/simulate_data.py new file mode 100644 index 0000000..682a00c --- /dev/null +++ b/scripts/data_preparation/Gaussian/simulate_data.py @@ -0,0 +1,26 @@ +import os + +import numpy as np +import torch + +PROJECT_DIR = os.path.abspath(__file__ + '/../../../..') +os.chdir(PROJECT_DIR) + + +# hyper parameterts +duration = 10000 # time series length + +def generate_gaussian_noise_sequence(): + x = np.arange(0, duration, 1) + y = np.random.normal(0, 1, duration) + return x, y + +# generate gaussian sequence +time_points, gaussian_noise_sequence = generate_gaussian_noise_sequence() + +# save pulse sequence +data = torch.Tensor(gaussian_noise_sequence).unsqueeze(-1).unsqueeze(-1).numpy() +# mkdir datasets/raw_data/Gaussian +if not os.path.exists('datasets/raw_data/Gaussian'): + os.makedirs('datasets/raw_data/Gaussian') +np.save('datasets/raw_data/Gaussian/Gaussian.npy', data) diff --git a/scripts/data_preparation/GlobalTemp/generate_training_data.py b/scripts/data_preparation/GlobalTemp/generate_training_data.py new file mode 100644 index 0000000..129eb19 --- /dev/null +++ b/scripts/data_preparation/GlobalTemp/generate_training_data.py @@ -0,0 +1,121 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'GlobalTemp' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day # minutes +domain = 'global temperature' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 48, + 'OUTPUT_LEN': 24, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y/%m/%d %H:%M').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + # data = data / 10 + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/GlobalWind/generate_training_data.py b/scripts/data_preparation/GlobalWind/generate_training_data.py new file mode 100644 index 0000000..f6e5439 --- /dev/null +++ b/scripts/data_preparation/GlobalWind/generate_training_data.py @@ -0,0 +1,121 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'GlobalWind' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day # minutes +domain = 'global wind' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 48, + 'OUTPUT_LEN': 24, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + data = data / 10 + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Illness/generate_training_data.py b/scripts/data_preparation/Illness/generate_training_data.py new file mode 100644 index 0000000..8aae527 --- /dev/null +++ b/scripts/data_preparation/Illness/generate_training_data.py @@ -0,0 +1,120 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'Illness' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 1/7 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'illness data' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 96, + 'OUTPUT_LEN': 48, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = ( + df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/JiNan/generate_adj_mx.py b/scripts/data_preparation/JiNan/generate_adj_mx.py new file mode 100644 index 0000000..6a0be57 --- /dev/null +++ b/scripts/data_preparation/JiNan/generate_adj_mx.py @@ -0,0 +1,84 @@ +import csv +import os +import pickle + +import numpy as np + + +def get_adjacency_matrix(distance_df_filename: str, num_of_vertices: int, id_filename: str = None) -> tuple: + """Generate adjacency matrix. + + Args: + distance_df_filename (str): path of the csv file contains edges information + num_of_vertices (int): number of vertices + id_filename (str, optional): id filename. Defaults to None. + + Returns: + tuple: two adjacency matrix. + np.array: connectivity-based adjacency matrix A (A[i, j]=0 or A[i, j]=1) + np.array: distance-based adjacency matrix A + """ + + if "npy" in distance_df_filename: + adj_mx = np.load(distance_df_filename) + return adj_mx, None + else: + adjacency_matrix_connectivity = np.zeros((int(num_of_vertices), int( + num_of_vertices)), dtype=np.float32) + adjacency_matrix_distance = np.zeros((int(num_of_vertices), int(num_of_vertices)), + dtype=np.float32) + if id_filename: + # the id in the distance file does not start from 0, so it needs to be remapped + with open(id_filename, "r") as f: + id_dict = {int(i): idx for idx, i in enumerate( + f.read().strip().split("\n"))} # map node idx to 0-based index (start from 0) + with open(distance_df_filename, "r") as f: + f.readline() # omit the first line + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[id_dict[i], id_dict[j]] = 1 + adjacency_matrix_connectivity[id_dict[j], id_dict[i]] = 1 + adjacency_matrix_distance[id_dict[i], + id_dict[j]] = distance + adjacency_matrix_distance[id_dict[j], + id_dict[i]] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + else: + # ids in distance file start from 0 + with open(distance_df_filename, "r") as f: + f.readline() + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[i, j] = 1 + adjacency_matrix_connectivity[j, i] = 1 + adjacency_matrix_distance[i, j] = distance + adjacency_matrix_distance[j, i] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + + +def generate_adj_jinan(): + distance_df_filename, num_of_vertices = "datasets/raw_data/JiNan/JiNan.csv", 406 + if os.path.exists(distance_df_filename.split(".", maxsplit=1)[0] + ".txt"): + id_filename = distance_df_filename.split(".", maxsplit=1)[0] + ".txt" + else: + id_filename = None + adj_mx, distance_mx = get_adjacency_matrix( + distance_df_filename, num_of_vertices, id_filename=id_filename) + # the self loop is missing + add_self_loop = False + if add_self_loop: + print("adding self loop to adjacency matrices.") + adj_mx = adj_mx + np.identity(adj_mx.shape[0]) + distance_mx = distance_mx + np.identity(distance_mx.shape[0]) + else: + print("kindly note that there is no self loop in adjacency matrices.") + with open("datasets/raw_data/JiNan/adj_JiNan.pkl", "wb") as f: + pickle.dump(adj_mx, f) + with open("datasets/raw_data/JiNan/adj_JiNan_distance.pkl", "wb") as f: + pickle.dump(distance_mx, f) diff --git a/scripts/data_preparation/JiNan/generate_training_data.py b/scripts/data_preparation/JiNan/generate_training_data.py new file mode 100644 index 0000000..a1ba479 --- /dev/null +++ b/scripts/data_preparation/JiNan/generate_training_data.py @@ -0,0 +1,113 @@ +import json +import os +import shutil + +import numpy as np +from generate_adj_mx import generate_adj_jinan as generate_adj + +# Hyperparameters +dataset_name = 'JiNan' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npz' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path)['data'] + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def add_temporal_features(data): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = np.array([i % steps_per_day / steps_per_day for i in range(l)]) + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = np.array([(i // steps_per_day) % 7 / 7 for i in range(l)]) + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory, generating it if necessary.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + if os.path.exists(graph_file_path): + shutil.copyfile(graph_file_path, output_graph_path) + else: + generate_adj() + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data) + + # Save processed data + save_data(data_with_features) + + # Copy or generate and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/METR-LA/generate_training_data.py b/scripts/data_preparation/METR-LA/generate_training_data.py new file mode 100644 index 0000000..3d28977 --- /dev/null +++ b/scripts/data_preparation/METR-LA/generate_training_data.py @@ -0,0 +1,124 @@ +import json +import os +import shutil + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'METR-LA' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.h5' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = False # Add day of the month as a feature +add_day_of_year = False # Add day of the year as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic speed' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_hdf(data_file_path) + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = (df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = df.index.dayofweek / 7 + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + if add_day_of_month: + # numerical day_of_month + day_of_month = (df.index.day - 1 ) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + day_of_month_tiled = np.tile(day_of_month, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_month_tiled) + + if add_day_of_year: + # numerical day_of_year + day_of_year = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + day_of_year_tiled = np.tile(day_of_year, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_year_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Copy and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/PEMS-BAY/generate_training_data.py b/scripts/data_preparation/PEMS-BAY/generate_training_data.py new file mode 100644 index 0000000..3fc0a0a --- /dev/null +++ b/scripts/data_preparation/PEMS-BAY/generate_training_data.py @@ -0,0 +1,124 @@ +import json +import os +import shutil + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'PEMS-BAY' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.h5' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = False # Add day of the month as a feature +add_day_of_year = False # Add day of the year as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic speed' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_hdf(data_file_path) + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = (df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = df.index.dayofweek / 7 + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + if add_day_of_month: + # numerical day_of_month + day_of_month = (df.index.day - 1 ) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + day_of_month_tiled = np.tile(day_of_month, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_month_tiled) + + if add_day_of_year: + # numerical day_of_year + day_of_year = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + day_of_year_tiled = np.tile(day_of_year, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_year_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Copy and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/PEMS03/generate_adj_mx.py b/scripts/data_preparation/PEMS03/generate_adj_mx.py new file mode 100644 index 0000000..5e5fb98 --- /dev/null +++ b/scripts/data_preparation/PEMS03/generate_adj_mx.py @@ -0,0 +1,84 @@ +import csv +import os +import pickle + +import numpy as np + + +def get_adjacency_matrix(distance_df_filename: str, num_of_vertices: int, id_filename: str = None) -> tuple: + """Generate adjacency matrix. + + Args: + distance_df_filename (str): path of the csv file contains edges information + num_of_vertices (int): number of vertices + id_filename (str, optional): id filename. Defaults to None. + + Returns: + tuple: two adjacency matrix. + np.array: connectivity-based adjacency matrix A (A[i, j]=0 or A[i, j]=1) + np.array: distance-based adjacency matrix A + """ + + if "npy" in distance_df_filename: + adj_mx = np.load(distance_df_filename) + return adj_mx, None + else: + adjacency_matrix_connectivity = np.zeros((int(num_of_vertices), int( + num_of_vertices)), dtype=np.float32) + adjacency_matrix_distance = np.zeros((int(num_of_vertices), int(num_of_vertices)), + dtype=np.float32) + if id_filename: + # the id in the distance file does not start from 0, so it needs to be remapped + with open(id_filename, "r") as f: + id_dict = {int(i): idx for idx, i in enumerate( + f.read().strip().split("\n"))} # map node idx to 0-based index (start from 0) + with open(distance_df_filename, "r") as f: + f.readline() # omit the first line + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[id_dict[i], id_dict[j]] = 1 + adjacency_matrix_connectivity[id_dict[j], id_dict[i]] = 1 + adjacency_matrix_distance[id_dict[i], + id_dict[j]] = distance + adjacency_matrix_distance[id_dict[j], + id_dict[i]] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + else: + # ids in distance file start from 0 + with open(distance_df_filename, "r") as f: + f.readline() + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[i, j] = 1 + adjacency_matrix_connectivity[j, i] = 1 + adjacency_matrix_distance[i, j] = distance + adjacency_matrix_distance[j, i] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + + +def generate_adj_pems03(): + distance_df_filename, num_of_vertices = "datasets/raw_data/PEMS03/PEMS03.csv", 358 + if os.path.exists(distance_df_filename.split(".", maxsplit=1)[0] + ".txt"): + id_filename = distance_df_filename.split(".", maxsplit=1)[0] + ".txt" + else: + id_filename = None + adj_mx, distance_mx = get_adjacency_matrix( + distance_df_filename, num_of_vertices, id_filename=id_filename) + # the self loop is missing + add_self_loop = False + if add_self_loop: + print("adding self loop to adjacency matrices.") + adj_mx = adj_mx + np.identity(adj_mx.shape[0]) + distance_mx = distance_mx + np.identity(distance_mx.shape[0]) + else: + print("kindly note that there is no self loop in adjacency matrices.") + with open("datasets/raw_data/PEMS03/adj_PEMS03.pkl", "wb") as f: + pickle.dump(adj_mx, f) + with open("datasets/raw_data/PEMS03/adj_PEMS03_distance.pkl", "wb") as f: + pickle.dump(distance_mx, f) diff --git a/scripts/data_preparation/PEMS03/generate_training_data.py b/scripts/data_preparation/PEMS03/generate_training_data.py new file mode 100644 index 0000000..88327dd --- /dev/null +++ b/scripts/data_preparation/PEMS03/generate_training_data.py @@ -0,0 +1,113 @@ +import json +import os +import shutil + +import numpy as np +from generate_adj_mx import generate_adj_pems03 as generate_adj + +# Hyperparameters +dataset_name = 'PEMS03' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npz' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path)['data'] + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def add_temporal_features(data): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = np.array([i % steps_per_day / steps_per_day for i in range(l)]) + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = np.array([(i // steps_per_day) % 7 / 7 for i in range(l)]) + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory, generating it if necessary.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + if os.path.exists(graph_file_path): + shutil.copyfile(graph_file_path, output_graph_path) + else: + generate_adj() + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data) + + # Save processed data + save_data(data_with_features) + + # Copy or generate and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/PEMS04/generate_adj_mx.py b/scripts/data_preparation/PEMS04/generate_adj_mx.py new file mode 100644 index 0000000..488a511 --- /dev/null +++ b/scripts/data_preparation/PEMS04/generate_adj_mx.py @@ -0,0 +1,84 @@ +import csv +import os +import pickle + +import numpy as np + + +def get_adjacency_matrix(distance_df_filename: str, num_of_vertices: int, id_filename: str = None) -> tuple: + """Generate adjacency matrix. + + Args: + distance_df_filename (str): path of the csv file contains edges information + num_of_vertices (int): number of vertices + id_filename (str, optional): id filename. Defaults to None. + + Returns: + tuple: two adjacency matrix. + np.array: connectivity-based adjacency matrix A (A[i, j]=0 or A[i, j]=1) + np.array: distance-based adjacency matrix A + """ + + if "npy" in distance_df_filename: + adj_mx = np.load(distance_df_filename) + return adj_mx, None + else: + adjacency_matrix_connectivity = np.zeros((int(num_of_vertices), int( + num_of_vertices)), dtype=np.float32) + adjacency_matrix_distance = np.zeros((int(num_of_vertices), int(num_of_vertices)), + dtype=np.float32) + if id_filename: + # the id in the distance file does not start from 0, so it needs to be remapped + with open(id_filename, "r") as f: + id_dict = {int(i): idx for idx, i in enumerate( + f.read().strip().split("\n"))} # map node idx to 0-based index (start from 0) + with open(distance_df_filename, "r") as f: + f.readline() # omit the first line + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[id_dict[i], id_dict[j]] = 1 + adjacency_matrix_connectivity[id_dict[j], id_dict[i]] = 1 + adjacency_matrix_distance[id_dict[i], + id_dict[j]] = distance + adjacency_matrix_distance[id_dict[j], + id_dict[i]] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + else: + # ids in distance file start from 0 + with open(distance_df_filename, "r") as f: + f.readline() + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[i, j] = 1 + adjacency_matrix_connectivity[j, i] = 1 + adjacency_matrix_distance[i, j] = distance + adjacency_matrix_distance[j, i] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + + +def generate_adj_pems04(): + distance_df_filename, num_of_vertices = "datasets/raw_data/PEMS04/PEMS04.csv", 307 + if os.path.exists(distance_df_filename.split(".", maxsplit=1)[0] + ".txt"): + id_filename = distance_df_filename.split(".", maxsplit=1)[0] + ".txt" + else: + id_filename = None + adj_mx, distance_mx = get_adjacency_matrix( + distance_df_filename, num_of_vertices, id_filename=id_filename) + # the self loop is missing + add_self_loop = False + if add_self_loop: + print("adding self loop to adjacency matrices.") + adj_mx = adj_mx + np.identity(adj_mx.shape[0]) + distance_mx = distance_mx + np.identity(distance_mx.shape[0]) + else: + print("kindly note that there is no self loop in adjacency matrices.") + with open("datasets/raw_data/PEMS04/adj_PEMS04.pkl", "wb") as f: + pickle.dump(adj_mx, f) + with open("datasets/raw_data/PEMS04/adj_PEMS04_distance.pkl", "wb") as f: + pickle.dump(distance_mx, f) diff --git a/scripts/data_preparation/PEMS04/generate_training_data.py b/scripts/data_preparation/PEMS04/generate_training_data.py new file mode 100644 index 0000000..92bb06d --- /dev/null +++ b/scripts/data_preparation/PEMS04/generate_training_data.py @@ -0,0 +1,113 @@ +import json +import os +import shutil + +import numpy as np +from generate_adj_mx import generate_adj_pems04 as generate_adj + +# Hyperparameters +dataset_name = 'PEMS04' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npz' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path)['data'] + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def add_temporal_features(data): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = np.array([i % steps_per_day / steps_per_day for i in range(l)]) + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = np.array([(i // steps_per_day) % 7 / 7 for i in range(l)]) + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory, generating it if necessary.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + if os.path.exists(graph_file_path): + shutil.copyfile(graph_file_path, output_graph_path) + else: + generate_adj() + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data) + + # Save processed data + save_data(data_with_features) + + # Copy or generate and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/PEMS07/generate_adj_mx.py b/scripts/data_preparation/PEMS07/generate_adj_mx.py new file mode 100644 index 0000000..c553934 --- /dev/null +++ b/scripts/data_preparation/PEMS07/generate_adj_mx.py @@ -0,0 +1,84 @@ +import csv +import os +import pickle + +import numpy as np + + +def get_adjacency_matrix(distance_df_filename: str, num_of_vertices: int, id_filename: str = None) -> tuple: + """Generate adjacency matrix. + + Args: + distance_df_filename (str): path of the csv file contains edges information + num_of_vertices (int): number of vertices + id_filename (str, optional): id filename. Defaults to None. + + Returns: + tuple: two adjacency matrix. + np.array: connectivity-based adjacency matrix A (A[i, j]=0 or A[i, j]=1) + np.array: distance-based adjacency matrix A + """ + + if "npy" in distance_df_filename: + adj_mx = np.load(distance_df_filename) + return adj_mx, None + else: + adjacency_matrix_connectivity = np.zeros((int(num_of_vertices), int( + num_of_vertices)), dtype=np.float32) + adjacency_matrix_distance = np.zeros((int(num_of_vertices), int(num_of_vertices)), + dtype=np.float32) + if id_filename: + # the id in the distance file does not start from 0, so it needs to be remapped + with open(id_filename, "r") as f: + id_dict = {int(i): idx for idx, i in enumerate( + f.read().strip().split("\n"))} # map node idx to 0-based index (start from 0) + with open(distance_df_filename, "r") as f: + f.readline() # omit the first line + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[id_dict[i], id_dict[j]] = 1 + adjacency_matrix_connectivity[id_dict[j], id_dict[i]] = 1 + adjacency_matrix_distance[id_dict[i], + id_dict[j]] = distance + adjacency_matrix_distance[id_dict[j], + id_dict[i]] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + else: + # ids in distance file start from 0 + with open(distance_df_filename, "r") as f: + f.readline() + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[i, j] = 1 + adjacency_matrix_connectivity[j, i] = 1 + adjacency_matrix_distance[i, j] = distance + adjacency_matrix_distance[j, i] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + + +def generate_adj_pems07(): + distance_df_filename, num_of_vertices = "datasets/raw_data/PEMS07/PEMS07.csv", 883 + if os.path.exists(distance_df_filename.split(".", maxsplit=1)[0] + ".txt"): + id_filename = distance_df_filename.split(".", maxsplit=1)[0] + ".txt" + else: + id_filename = None + adj_mx, distance_mx = get_adjacency_matrix( + distance_df_filename, num_of_vertices, id_filename=id_filename) + # the self loop is missing + add_self_loop = False + if add_self_loop: + print("adding self loop to adjacency matrices.") + adj_mx = adj_mx + np.identity(adj_mx.shape[0]) + distance_mx = distance_mx + np.identity(distance_mx.shape[0]) + else: + print("kindly note that there is no self loop in adjacency matrices.") + with open("datasets/raw_data/PEMS07/adj_PEMS07.pkl", "wb") as f: + pickle.dump(adj_mx, f) + with open("datasets/raw_data/PEMS07/adj_PEMS07_distance.pkl", "wb") as f: + pickle.dump(distance_mx, f) diff --git a/scripts/data_preparation/PEMS07/generate_training_data.py b/scripts/data_preparation/PEMS07/generate_training_data.py new file mode 100644 index 0000000..d3e5c12 --- /dev/null +++ b/scripts/data_preparation/PEMS07/generate_training_data.py @@ -0,0 +1,113 @@ +import json +import os +import shutil + +import numpy as np +from generate_adj_mx import generate_adj_pems07 as generate_adj + +# Hyperparameters +dataset_name = 'PEMS07' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npz' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path)['data'] + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def add_temporal_features(data): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = np.array([i % steps_per_day / steps_per_day for i in range(l)]) + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = np.array([(i // steps_per_day) % 7 / 7 for i in range(l)]) + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory, generating it if necessary.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + if os.path.exists(graph_file_path): + shutil.copyfile(graph_file_path, output_graph_path) + else: + generate_adj() + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data) + + # Save processed data + save_data(data_with_features) + + # Copy or generate and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/PEMS08/generate_adj_mx.py b/scripts/data_preparation/PEMS08/generate_adj_mx.py new file mode 100644 index 0000000..a192797 --- /dev/null +++ b/scripts/data_preparation/PEMS08/generate_adj_mx.py @@ -0,0 +1,84 @@ +import csv +import os +import pickle + +import numpy as np + + +def get_adjacency_matrix(distance_df_filename: str, num_of_vertices: int, id_filename: str = None) -> tuple: + """Generate adjacency matrix. + + Args: + distance_df_filename (str): path of the csv file contains edges information + num_of_vertices (int): number of vertices + id_filename (str, optional): id filename. Defaults to None. + + Returns: + tuple: two adjacency matrix. + np.array: connectivity-based adjacency matrix A (A[i, j]=0 or A[i, j]=1) + np.array: distance-based adjacency matrix A + """ + + if "npy" in distance_df_filename: + adj_mx = np.load(distance_df_filename) + return adj_mx, None + else: + adjacency_matrix_connectivity = np.zeros((int(num_of_vertices), int( + num_of_vertices)), dtype=np.float32) + adjacency_matrix_distance = np.zeros((int(num_of_vertices), int(num_of_vertices)), + dtype=np.float32) + if id_filename: + # the id in the distance file does not start from 0, so it needs to be remapped + with open(id_filename, "r") as f: + id_dict = {int(i): idx for idx, i in enumerate( + f.read().strip().split("\n"))} # map node idx to 0-based index (start from 0) + with open(distance_df_filename, "r") as f: + f.readline() # omit the first line + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[id_dict[i], id_dict[j]] = 1 + adjacency_matrix_connectivity[id_dict[j], id_dict[i]] = 1 + adjacency_matrix_distance[id_dict[i], + id_dict[j]] = distance + adjacency_matrix_distance[id_dict[j], + id_dict[i]] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + else: + # ids in distance file start from 0 + with open(distance_df_filename, "r") as f: + f.readline() + reader = csv.reader(f) + for row in reader: + if len(row) != 3: + continue + i, j, distance = int(row[0]), int(row[1]), float(row[2]) + adjacency_matrix_connectivity[i, j] = 1 + adjacency_matrix_connectivity[j, i] = 1 + adjacency_matrix_distance[i, j] = distance + adjacency_matrix_distance[j, i] = distance + return adjacency_matrix_connectivity, adjacency_matrix_distance + + +def generate_adj_pems08(): + distance_df_filename, num_of_vertices = "datasets/raw_data/PEMS08/PEMS08.csv", 170 + if os.path.exists(distance_df_filename.split(".", maxsplit=1)[0] + ".txt"): + id_filename = distance_df_filename.split(".", maxsplit=1)[0] + ".txt" + else: + id_filename = None + adj_mx, distance_mx = get_adjacency_matrix( + distance_df_filename, num_of_vertices, id_filename=id_filename) + # the self loop is missing + add_self_loop = False + if add_self_loop: + print("adding self loop to adjacency matrices.") + adj_mx = adj_mx + np.identity(adj_mx.shape[0]) + distance_mx = distance_mx + np.identity(distance_mx.shape[0]) + else: + print("kindly note that there is no self loop in adjacency matrices.") + with open("datasets/raw_data/PEMS08/adj_PEMS08.pkl", "wb") as f: + pickle.dump(adj_mx, f) + with open("datasets/raw_data/PEMS08/adj_PEMS08_distance.pkl", "wb") as f: + pickle.dump(distance_mx, f) diff --git a/scripts/data_preparation/PEMS08/generate_training_data.py b/scripts/data_preparation/PEMS08/generate_training_data.py new file mode 100644 index 0000000..228b16d --- /dev/null +++ b/scripts/data_preparation/PEMS08/generate_training_data.py @@ -0,0 +1,113 @@ +import json +import os +import shutil + +import numpy as np +from generate_adj_mx import generate_adj_pems08 as generate_adj + +# Hyperparameters +dataset_name = 'PEMS08' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npz' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.pkl' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +steps_per_day = 288 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path)['data'] + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def add_temporal_features(data): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = np.array([i % steps_per_day / steps_per_day for i in range(l)]) + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = np.array([(i // steps_per_day) % 7 / 7 for i in range(l)]) + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory, generating it if necessary.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + if os.path.exists(graph_file_path): + shutil.copyfile(graph_file_path, output_graph_path) + else: + generate_adj() + shutil.copyfile(graph_file_path, output_graph_path) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data) + + # Save processed data + save_data(data_with_features) + + # Copy or generate and save adjacency matrix + save_graph() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Pulse/generate_training_data.py b/scripts/data_preparation/Pulse/generate_training_data.py new file mode 100644 index 0000000..acdebdc --- /dev/null +++ b/scripts/data_preparation/Pulse/generate_training_data.py @@ -0,0 +1,74 @@ +import json +import os + +import numpy as np + +# Hyperparameters +dataset_name = 'Pulse' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.npy' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +frequency = None +domain = 'simulated pulse data' +feature_description = [domain] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + data = np.load(data_file_path) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data = load_and_preprocess_data() + + # Save processed data + save_data(data) + + # Save dataset description + save_description(data) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Pulse/simulate_data.py b/scripts/data_preparation/Pulse/simulate_data.py new file mode 100644 index 0000000..d975202 --- /dev/null +++ b/scripts/data_preparation/Pulse/simulate_data.py @@ -0,0 +1,33 @@ +import os + +import numpy as np +import torch + +PROJECT_DIR = os.path.abspath(__file__ + '/../../../..') +os.chdir(PROJECT_DIR) + + +# hyper parameterts +duration = 20000 # time series length +min_interval = 30 # minimum interval between two pulses +max_interval = 30 # maximum interval between two pulses + +def generate_pulse_sequence(): + x = np.arange(0, duration, 1) + y = np.zeros_like(x) + + current_time = 0 + while current_time < duration: + pulse_interval = np.random.uniform(min_interval, max_interval) + pulse_width = 1 + y[int(current_time):int(current_time + pulse_width)] = 1 + current_time += pulse_interval + pulse_width + + return x, y + +# generate pulse sequence +time_points, pulse_sequence = generate_pulse_sequence() + +# save pulse sequence +data = torch.Tensor(pulse_sequence).unsqueeze(-1).unsqueeze(-1).numpy() +np.save('datasets/raw_data/Pulse/Pulse.npy', data) diff --git a/scripts/data_preparation/SD/generate_training_data.py b/scripts/data_preparation/SD/generate_training_data.py new file mode 100644 index 0000000..8025c84 --- /dev/null +++ b/scripts/data_preparation/SD/generate_training_data.py @@ -0,0 +1,136 @@ +import json +import os +import pickle +import shutil + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'SD' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.h5' +graph_file_path = f'datasets/raw_data/{dataset_name}/adj_{dataset_name}.npy' +meta_file_path = f'datasets/raw_data/{dataset_name}/meta_{dataset_name}.csv' +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = False # Add day of the month as a feature +add_day_of_year = False # Add day of the year as a feature +steps_per_day = 96 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'traffic flow' +feature_description = [domain, 'time of day', 'day of week'] +regular_settings = { + 'INPUT_LEN': 12, + 'OUTPUT_LEN': 12, + 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], + 'NORM_EACH_CHANNEL': False, + 'RESCALE': True, + 'METRICS': ['MAE', 'RMSE', 'MAPE'], + 'NULL_VAL': 0.0 +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_hdf(data_file_path) + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + time_of_day = (df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + time_of_day_tiled = np.tile(time_of_day, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(time_of_day_tiled) + + if add_day_of_week: + day_of_week = df.index.dayofweek / 7 + day_of_week_tiled = np.tile(day_of_week, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_week_tiled) + + if add_day_of_month: + # numerical day_of_month + day_of_month = (df.index.day - 1 ) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + day_of_month_tiled = np.tile(day_of_month, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_month_tiled) + + if add_day_of_year: + # numerical day_of_year + day_of_year = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + day_of_year_tiled = np.tile(day_of_year, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(day_of_year_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_graph(): + '''Save the adjacency matrix to the output directory.''' + output_graph_path = os.path.join(output_dir, 'adj_mx.pkl') + adj_mx = np.load(graph_file_path) + with open(output_dir + '/adj_mx.pkl', 'wb') as f: + pickle.dump(adj_mx, f) + print(f'Adjacency matrix saved to {output_graph_path}') + +def save_meta_data(): + '''Save the meta data to the output directory''' + output_meta_data_path = os.path.join(output_dir, 'meta.csv') + shutil.copyfile(meta_file_path, output_meta_data_path) + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Copy and save adjacency matrix + save_graph() + + # Copy and save meta data + save_meta_data() + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Traffic/generate_training_data.py b/scripts/data_preparation/Traffic/generate_training_data.py new file mode 100644 index 0000000..e4be032 --- /dev/null +++ b/scripts/data_preparation/Traffic/generate_training_data.py @@ -0,0 +1,120 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'Traffic' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 24 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'road occupancy rates' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + _, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = ( + df.index.values - df.index.values.astype('datetime64[D]')) / np.timedelta64(1, 'D') + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/Weather/generate_training_data.py b/scripts/data_preparation/Weather/generate_training_data.py new file mode 100644 index 0000000..36f1897 --- /dev/null +++ b/scripts/data_preparation/Weather/generate_training_data.py @@ -0,0 +1,120 @@ +import json +import os + +import numpy as np +import pandas as pd + +# Hyperparameters +dataset_name = 'Weather' +data_file_path = f'datasets/raw_data/{dataset_name}/{dataset_name}.csv' +graph_file_path = None +output_dir = f'datasets/{dataset_name}' +target_channel = [0] # Target traffic flow channel +add_time_of_day = True # Add time of day as a feature +add_day_of_week = True # Add day of the week as a feature +add_day_of_month = True # Add day of the month as a feature +add_day_of_year = True # Add day of the year as a feature +steps_per_day = 144 # Number of time steps per day +frequency = 1440 // steps_per_day +domain = 'weather' +feature_description = [domain, 'time of day', 'day of week', 'day of month', 'day of year'] +regular_settings = { + 'INPUT_LEN': 336, + 'OUTPUT_LEN': 336, + 'TRAIN_VAL_TEST_RATIO': [0.7, 0.1, 0.2], + 'NORM_EACH_CHANNEL': True, + 'RESCALE': False, + 'METRICS': ['MAE', 'MSE'], + 'NULL_VAL': np.nan +} + +def load_and_preprocess_data(): + '''Load and preprocess raw data, selecting the specified channel(s).''' + df = pd.read_csv(data_file_path) + df_index = pd.to_datetime(df['date'].values, format='%Y-%m-%d %H:%M:%S').to_numpy() + df = df[df.columns[1:]] + df.index = df_index + data = np.expand_dims(df.values, axis=-1) + data = data[..., target_channel] + print(f'Raw time series shape: {data.shape}') + return data, df + +def add_temporal_features(data, df): + '''Add time of day and day of week as features to the data.''' + l, n, _ = data.shape + feature_list = [data] + + if add_time_of_day: + # numerical time_of_day + tod = [i % steps_per_day / steps_per_day for i in range(l)] + tod = np.array(tod) + tod_tiled = np.tile(tod, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(tod_tiled) + + if add_day_of_week: + # numerical day_of_week + dow = df.index.dayofweek / 7 + dow_tiled = np.tile(dow, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dow_tiled) + + if add_day_of_month: + # numerical day_of_month + dom = (df.index.day - 1) / 31 # df.index.day starts from 1. We need to minus 1 to make it start from 0. + dom_tiled = np.tile(dom, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(dom_tiled) + + if add_day_of_year: + # numerical day_of_year + doy = (df.index.dayofyear - 1) / 366 # df.index.month starts from 1. We need to minus 1 to make it start from 0. + doy_tiled = np.tile(doy, [1, n, 1]).transpose((2, 1, 0)) + feature_list.append(doy_tiled) + + data_with_features = np.concatenate(feature_list, axis=-1) # L x N x C + return data_with_features + +def save_data(data): + '''Save the preprocessed data to a binary file.''' + if not os.path.exists(output_dir): + os.makedirs(output_dir) + file_path = os.path.join(output_dir, 'data.dat') + fp = np.memmap(file_path, dtype='float32', mode='w+', shape=data.shape) + fp[:] = data[:] + fp.flush() + del fp + print(f'Data saved to {file_path}') + +def save_description(data): + '''Save a description of the dataset to a JSON file.''' + description = { + 'name': dataset_name, + 'domain': domain, + 'shape': data.shape, + 'num_time_steps': data.shape[0], + 'num_nodes': data.shape[1], + 'num_features': data.shape[2], + 'feature_description': feature_description, + 'has_graph': graph_file_path is not None, + 'frequency (minutes)': frequency, + 'regular_settings': regular_settings + } + description_path = os.path.join(output_dir, 'desc.json') + with open(description_path, 'w') as f: + json.dump(description, f, indent=4) + print(f'Description saved to {description_path}') + print(description) + +def main(): + # Load and preprocess data + data, df = load_and_preprocess_data() + + # Add temporal features + data_with_features = add_temporal_features(data, df) + + # Save processed data + save_data(data_with_features) + + # Save dataset description + save_description(data_with_features) + +if __name__ == '__main__': + main() diff --git a/scripts/data_preparation/run.sh b/scripts/data_preparation/run.sh new file mode 100755 index 0000000..d586334 --- /dev/null +++ b/scripts/data_preparation/run.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# spatial-temporal forecasting +python scripts/data_preparation/METR-LA/generate_training_data.py +python scripts/data_preparation/PEMS-BAY/generate_training_data.py +python scripts/data_preparation/PEMS03/generate_training_data.py +python scripts/data_preparation/PEMS04/generate_training_data.py +python scripts/data_preparation/PEMS07/generate_training_data.py +python scripts/data_preparation/PEMS08/generate_training_data.py + +# long-term time series forecasting +python scripts/data_preparation/ETTh1/generate_training_data.py +python scripts/data_preparation/ETTh2/generate_training_data.py +python scripts/data_preparation/ETTm1/generate_training_data.py +python scripts/data_preparation/ETTm2/generate_training_data.py +python scripts/data_preparation/Electricity/generate_training_data.py +python scripts/data_preparation/Weather/generate_training_data.py +python scripts/data_preparation/ExchangeRate/generate_training_data.py +python scripts/data_preparation/Illness/generate_training_data.py +python scripts/data_preparation/Traffic/generate_training_data.py + +# large-scale mts forecasting +python scripts/data_preparation/CA/generate_training_data.py +python scripts/data_preparation/GBA/generate_training_data.py +python scripts/data_preparation/GLA/generate_training_data.py +python scripts/data_preparation/SD/generate_training_data.py + +python scripts/data_preparation/BeijingAirQuality/generate_training_data.py + +python scripts/data_preparation/Gaussian/generate_training_data.py +python scripts/data_preparation/Pulse/generate_training_data.py diff --git a/scripts/data_visualization/data_visualization.ipynb b/scripts/data_visualization/data_visualization.ipynb new file mode 100644 index 0000000..9a080ce --- /dev/null +++ b/scripts/data_visualization/data_visualization.ipynb @@ -0,0 +1,359 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data Visualization" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Changing directory to /home/S22/workspace/BasicTS\n" + ] + } + ], + "source": [ + "# change dir\n", + "import os\n", + "import sys\n", + "PROJECT_DIR = os.path.abspath(os.path.abspath('') + \"/../..\")\n", + "print(f\"Changing directory to {PROJECT_DIR}\")\n", + "os.chdir(PROJECT_DIR)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# load packages\n", + "import random\n", + "import numpy as np\n", + "import torch as th\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from basicts.utils import load_dataset_data, load_dataset_desc" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Hyper-Parameter" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# hyper-parameter\n", + "DATASET_NAME = \"PEMS04\"" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Read Data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "data shape: (16992, 307, 3)\n", + "\n", + "data descriptipn:\n", + "\tname: PEMS04\n", + "\tdomain: traffic flow\n", + "\tshape: [16992, 307, 3]\n", + "\tnum_time_steps: 16992\n", + "\tnum_nodes: 307\n", + "\tnum_features: 3\n", + "\tfeature_description: ['traffic flow', 'time of day', 'day of week']\n", + "\thas_graph: True\n", + "\tfrequency (minutes): 5\n", + "\tregular_settings: {'INPUT_LEN': 12, 'OUTPUT_LEN': 12, 'TRAIN_VAL_TEST_RATIO': [0.6, 0.2, 0.2], 'NORM_EACH_CHANNEL': False, 'RESCALE': True, 'METRICS': ['MAE', 'RMSE', 'MAPE'], 'NULL_VAL': 0.0}\n" + ] + } + ], + "source": [ + "data = load_dataset_data(DATASET_NAME)\n", + "desc = load_dataset_desc(DATASET_NAME)\n", + "\n", + "print(\"data shape: {0}\\n\".format(data.shape))\n", + "print(\"data descriptipn:\")\n", + "for key, value in desc.items():\n", + " print(f\"\\t{key}: {value}\")\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Plot Raw Data" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_raw_data(data: np.array, selected_node_id: int, begin_time: int = None, end_time: int = None, line_width: float = 1.5, font_size: int = 16, color=\"green\", figure_size: tuple = (10, 5)):\n", + " \"\"\"plot raw data.\n", + "\n", + " Args:\n", + " data (np.array): raw data with shape [num_time_slices, num_time_series, num_features].\n", + " selected_node_id (int): selected time series.\n", + " begin_time (int, optional): begin time. Defaults to None.\n", + " end_time (int, optional): end time. Defaults to None.\n", + " line_width (float, optional): line width. Defaults to 1.5.\n", + " font_size (int, optional): font size. Defaults to 16.\n", + " color (str, optional): color. Defaults to \"green\".\n", + " figure_size (tuple, optional): figure size. Defaults to (10, 5).\n", + " \"\"\"\n", + " time_span = data.shape[0]\n", + " assert begin_time < end_time, \"begin_time should be less than end_time\"\n", + " assert begin_time >= 0, \"begin_time should be greater than or equal to 0\"\n", + " assert end_time <= time_span, \"end_time should be less than or equal to {0}\".format(time_span)\n", + " plt.rcParams['figure.figsize'] = figure_size\n", + " plot_data = data[begin_time:end_time, selected_node_id, 0]\n", + " plot_index = np.arange(plot_data.shape[0])\n", + " plt.plot(plot_index, plot_data, linewidth=line_width, color=color, label=\"raw data\")\n", + " plt.grid()\n", + " plt.legend(fontsize=font_size)\n", + " # plt.savefig('vis.eps',dpi=600,format='eps', transparent=True)\n", + " plt.show()\n", + " plt.clf()\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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GQ/euQ0bNmDVqlXo2rUrPvvsMzidSrHT6DuZ8dFHHwEAXn31VZx//vma86ncOx2QhZsgCIIgCIIgcgBW4BYEAQ+9uBA19T78depS+bjCwk11uDMCqZZ17969ueffffdd3c+OGDECnTp1wqpVq/D+++8DiMZvS0jC9dSpU7F582b06tULAwYMsNy2M888E4IgYMWKFdiwYYPm/MqVK7nu5NJ36t69u0bYNvtObrcbABAM8kvKSffu06eP5tzatWvx888/6967NSCBmyAIgiAIgiByALWFu7FZa8FmY7gbyMKdEQwePBgAMGfOHKxbt05x7rXXXsN//vMf3c8KgoAxY8YgEolgypQpcLvdOPPMM+Xz55xzDgRBwIsvvgggcXfy3r1746KLLkI4HMatt96qiIs+cuQIbrvtNq7r9oABA+BwOLB69WrMmzdPce7LL7/Ec889p/vMnj17AoBu7Lf0e02ZMgXhcLw/79+/H9ddd52uoN5akMBNEARBEARBEK3E1P+uxd3/WMCNv06UcEh5j2afVvBghXKvP5TyM4nUGTFiBC644ALU19djxIgRmDBhAq688koMHjwYv/nNb/DQQw8Zfl4Sor1eL0477TQUFBTI5zp16oThw4fD6/Uqrk2EKVOmoH///pg3bx769u2LyZMn4+KLL0a/fv1QVVXFdevu3Lkz7rjjDoRCIZxzzjk4++yzcdVVV2HkyJE4//zz5drbPCZPngwAuOaaazB58mTcfPPNuPnmm+VY9oceeghutxuvv/46Bg4ciMsvvxwTJ05E//794fP5cNFFFyX8HdMJCdwEQVgiEAyjgaMpJwiCIAgieR58YSHe+3oj5i3fk/K9Qoy1TwDg9WkFajaG2x8ggTtTmDZtGp555hkMHDgQ33//PWbOnInevXvjm2++wc0332z4WVaI5gnU0jFBEHDOOeck3LaysjIsXrwYd955JwoKCjB9+nQsXboUV1xxBX788Ud06NCB+7nnnnsOU6dOxYgRI7B8+XJUVFSgoKAAH374IZ544gnd591666146qmn0KdPH1RUVGDq1KmYOnUq9u/fDwA45ZRTsGzZMpx//vlobGzEF198ga1bt+LOO+/EokWLUFxcnPB3TCeUNI0gCEuMv+0zrN9+BJs+uw7FRe7Wbg5BEARB5BSNzam7wapdyr1+7T3ZGG4SuFsGK9myXS4X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kltRUYGSkpI47RWRz7x58/DBBx/g008/RY8ePZTXS0pK0NLSgurqatX24nFbUlKie1zL7xFF2tq1a3H48GGMHj0aZrMZZrMZK1aswGOPPQaz2Yzi4mIet5SQSktLMWTIENVrgwcPxt69ewH4j71QzwolJSUBzVZbW1tRVVXFY5ei4tZbb8Udd9yBmTNnYtiwYbjyyitxyy23YOHChQB43FJyiNRxGqnnBwbcUWC1WnHiiSdi2bJlymterxfLli3D+PHj47hnlM4kScK8efPwzjvvYPny5QElMieeeCIsFovquN2+fTv27t2rHLfjx4/Hxo0bVReopUuXIjs7O+DBkigSzj77bGzcuBHr169X/hszZgxmz56tfM3jlhLRhAkTApZe/OGHH9C7d28AQN++fVFSUqI6dmtra7F69WrVsVtdXY21a9cq2yxfvhxerxfjxo2LwW9B6aaxsRFGozo8MJlM8Hq9AHjcUnKI1HE6fvx4rFy5Em63W9lm6dKlGDhwYNjl5ADYpTxaXnvtNclms0kvvPCCtGXLFun666+XcnNzVV1yiWLphhtukHJycqTPPvtMOnTokPJfY2Ojss2vf/1rqVevXtLy5culb7/9Vho/frw0fvx45f3W1lZp6NCh0uTJk6X169dLS5Yskbp16yYtWLAgHr8SpSmxS7kk8bilxPTNN99IZrNZeuCBB6QdO3ZIr7zyiuR0OqWXX35Z2ebBBx+UcnNzpffee0/asGGDdP7550t9+/aVmpqalG3OPfdcadSoUdLq1aulL774QhowYIA0a9asePxKlAbmzJkjde/eXfrggw+kXbt2SW+//bZUWFgo3Xbbbco2PG4pEdTV1Unfffed9N1330kApL///e/Sd999J+3Zs0eSpMgcp9XV1VJxcbF05ZVXSps2bZJee+01yel0Ss8880yH9pUBdxQ9/vjjUq9evSSr1SqddNJJ0tdffx3vXaI0BkD3v+eff17ZpqmpSfqf//kfKS8vT3I6ndIFF1wgHTp0SPVzdu/eLU2dOlVyOBxSYWGh9Nvf/lZyu90x/m0onWkDbh63lKjef/99aejQoZLNZpMGDRokPfvss6r3vV6vdM8990jFxcWSzWaTzj77bGn79u2qbSorK6VZs2ZJmZmZUnZ2tnTNNddIdXV1sfw1KI3U1tZKN910k9SrVy/JbrdL/fr1k+666y7Vskg8bikRfPrpp7rPtXPmzJEkKXLH6ffffy+deuqpks1mk7p37y49+OCDHd5XgyRJUicy9UREREREREQUAudwExEREREREUUBA24iIiIiIiKiKGDATURERERERBQFDLiJiIiIiIiIooABNxEREREREVEUMOAmIiIiIiIiigIG3ERERERERERRwICbiIiIiIiIKAoYcBMRERERERFFAQNuIiIiIiIioihgwE1EREREREQUBf8fPy4/B+L1pzIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_raw_data(data=data, selected_node_id=12, begin_time=13830, end_time=14800, line_width=1.5, font_size=16, color=\"#15429a\", figure_size=(12, 5))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_raw_data_multi_variable(data: np.array, node_ids: int, begin_time: int = None, end_time: int = None, line_width: float = 1.5, font_size: int = 16, figure_size: tuple = (10, 5)):\n", + " \"\"\"plot raw data.\n", + "\n", + " Args:\n", + " data (np.array): raw data with shape [num_time_slices, num_time_series, num_features].\n", + " selected_node_id (int): selected time series.\n", + " begin_time (int, optional): begin time. Defaults to None.\n", + " end_time (int, optional): end time. Defaults to None.\n", + " line_width (float, optional): line width. Defaults to 1.5.\n", + " font_size (int, optional): font size. Defaults to 16.\n", + " color (str, optional): color. Defaults to \"green\".\n", + " figure_size (tuple, optional): figure size. Defaults to (10, 5).\n", + " \"\"\"\n", + " time_span = data.shape[0]\n", + " assert begin_time < end_time, \"begin_time should be less than end_time\"\n", + " assert begin_time >= 0, \"begin_time should be greater than or equal to 0\"\n", + " assert end_time <= time_span, \"end_time should be less than or equal to {0}\".format(time_span)\n", + " plt.rcParams['figure.figsize'] = figure_size\n", + " for selected_node_id in node_ids:\n", + " plot_data = data[begin_time:end_time, selected_node_id, 0]\n", + " plot_index = np.arange(plot_data.shape[0])\n", + " plt.plot(plot_index, plot_data, linewidth=line_width, label=\"ID: {0}\".format(selected_node_id))\n", + " plt.grid()\n", + " plt.legend(fontsize=font_size)\n", + " plt.show()\n", + " plt.clf()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BSzyY8GCBQsWLFiwYMGChS8FLPJziHC5XPzkJz/B5XL19q1YOEpg9RkL3YXVZyx0F1afsXAwsPqNhe7iaOwzR6XggQULFixYsGDBggULFix0F5bnx4IFCxYsWLBgwYIFC18KWOTHggULFixYsGDBggULXwpY5MeCBQsWLFiwYMGCBQtfCljkx4IFCxYsWLBgwYIFC18KWOTHggULFixYsGDBggULXwpY5OcQ8cgjj1BZWYnb7Wb69OksWbKkt2/JQi/gvvvuY+rUqWRmZlJUVMS5557Lpk2bDG2CwSA33XQT+fn5ZGRkcMEFF1BdXW1os3v3bs444wy8Xi9FRUXcdtttRKPRI/koFnoJ999/P4Ig8J3vfCexzeozFpKxb98+rrzySvLz8/F4PIwdO5Zly5Yl9iuKwt13301paSkej4e5c+eyZcsWwzkaGhq44ooryMrKIicnh+uuu462trYj/SgWjgAkSeLHP/4xAwcOxOPxMHjwYH7xi1+gF/q1+oyFjz76iLPOOouysjIEQeCll14y7O+pPrJ69WpOOOEE3G43/fv351e/+tXhfjRzKBYOGs8884zidDqVxx9/XFm3bp1y/fXXKzk5OUp1dXVv35qFI4zTTjtNeeKJJ5S1a9cqK1euVBYsWKBUVFQobW1tiTbf+MY3lP79+yvvvvuusmzZMmXGjBnKzJkzE/uj0agyZswYZe7cucqKFSuU119/XSkoKFDuvPPO3ngkC0cQS5YsUSorK5Vx48Yp3/72txPbrT5jQY+GhgZlwIAByjXXXKMsXrxY2b59u/LWW28pW7duTbS5//77lezsbOWll15SVq1apZx99tnKwIEDlUAgkGgzf/58Zfz48crnn3+ufPzxx8qQIUOUyy67rDceycJhxr333qvk5+crr776qrJjxw7lueeeUzIyMpTf/e53iTZWn7Hw+uuvKz/60Y+UF154QQGUF1980bC/J/pIc3OzUlxcrFxxxRXK2rVrlX//+9+Kx+NR/vznPx+px0zAIj+HgGnTpik33XRT4rskSUpZWZly33339eJdWegLqKmpUQDlww8/VBRFUZqamhSHw6E899xziTYbNmxQAGXRokWKoqiDjyiKStX/t3d3IU22YRzA/7m12Yg5ZbmVsTAQV+mBOZKl1IGSiAdREBQiow6iUtKKUooOLSHooCCjDuogSzoo+oCC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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_raw_data_multi_variable(data=data, node_ids=[0, 1, 2, 3, 4], begin_time=0, end_time=1000, line_width=1.5, font_size=16, figure_size=(10, 5))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Plot Samples" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_sample(history_data: np.array, future_data: np.array, history_index: list, future_index: list, line_width: float = 1.5, font_size: int = 16, history_color=\"blue\", future_color=\"red\", figure_size: tuple = (10, 5)):\n", + " plt.rcParams['figure.figsize'] = figure_size\n", + " plt.plot(history_index, history_data, linewidth=line_width, color=history_color, label=\"history data\")\n", + " plt.plot(future_index, future_data, linewidth=line_width, color=future_color, label=\"future data\")\n", + " # lint two parts\n", + " plt.plot([history_index[-1], future_index[0]], [history_data[-1], future_data[0]], linewidth=line_width, color=future_color)\n", + " plt.grid()\n", + " plt.legend(fontsize=font_size)\n", + " plt.show()\n", + " plt.clf()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# use regular settings\n", + "input_len = desc['regular_settings']['INPUT_LEN']\n", + "output_len = desc['regular_settings']['OUTPUT_LEN']\n", + "\n", + "# manually set input & output length\n", + "input_len = 336\n", + "output_len = 336\n", + "\n", + "random_index = random.randint(input_len, data.shape[0]-output_len)\n", + "random_node = random.randint(0, data.shape[1])\n", + "\n", + "random_sample_history = data[random_index-input_len:random_index, random_node, 0]\n", + "random_sample_future = data[random_index:random_index+output_len, random_node, 0]\n", + "\n", + "random_index_history = range(random_index-input_len, random_index)\n", + "random_index_future = range(random_index, random_index+output_len)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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KykpcXlsZWWlbevWrbbKykrT/SdO2GxCAoXn68QJ976zuro62/Hjx211dXWm+wHYANiaNm1qW7t2rW7f9OnTbQBsp512mt155513ng2A7ZtvvmkoW7lypQ2ArW/fvrbS0lK7c9atW2c7cuSIriwnJ8cGwLZ7927T+v3666+2uLg4m8Visb311lu6ffn5+baEhAQbANuSJUt0+yZNmtTw2e6//37Tz3/NNdfYANiee+45u32HDx+2JSYm2uLj422HDh0yrZuRQ4cO2Zo0aWJ6zWXLltmSkpIa6qRSV1dn+/DDD20HDhywu+bq1att6enptvj4eLv933zzjQ2A7bzzznNYp61bt9rWrFljV37s2DHbyJEjbQBsTz/9tFufz2ZzfV9FKjU1NbZPPvnEVlNTE+yqEAewjbxk4ULtj+WUU/z6Vmyj0IdtFPqwjfR4og3o9kZ0zJgxA/3799eVPfDAA8jIyMBvv/2G/fv3u7xGYWEhAGDw4MFo0qSJ3f6zzjoLLVq08KheL7zwAmpra3HJJZfguuuu0+0bPXo0brrpJgDAM888Y3r+aaedhsceewwxMfY/eWlJeeWVV2BTs5wD+O9//4vq6mpcdtllOiuUM+bMmYOysjIMGDAAd955p27fBRdc4NTFbsSIEWjTpo1deW5uLqZNmwar1YpPP/3UrXqodO/eHQMGDLArb9asGV566SUAwlpFCIlSaPkhhEQJUe/2lpICnDgR7Fp4T0qKb683duxYu7LExER07twZP//8M/7880+0b9/e6TXOPPNMxMbG4o033sBpp52GSy+91LRD7wly7s/1119vun/y5Mn497//jW+//RZ1dXWIjY3V7R83bpxdmeTss89Gbm4u1qxZg8WLFze4jtXX1+PVV18FANx6660e1/Waa64x3T9p0iS88MILDs8/evQovvzyS2zevBnHjx+H1WoFAPz+++8AgB07drhdF5W6ujqsWLECq1evxqFDh1BZWQmbzdYg+Ly9LiEkAjDm+bFagfj44NWHEEL8RNSLH4sFSE0Ndi1CB0fR29LT0wHArYnxp5xyCmbNmoV77rkHt956K2699Vbk5OQgNzcXF110ES6//HIkJCR4VK8///wTgAiI4Og9Zf2OHj2K1q1b6/ark//N+Pvf/441a9bg3//+d4P4WbRoEfbu3Yu+ffvi3HPPdbuuBw4ccFpXR+UAMG/ePPzzn/9EeXm5w2NKS0vdrovk999/xyWXXOJ0vpE31yWERAiq+AGAY8eAzMzg1IUQQvwI3d6IDjO3MG+47bbbsHfvXrz22muYOHEiYmNj8f777+Paa69Fjx49cOjQIZ+8j7skJyc73X/ZZZehbdu2+PLLL7F7924AWqADT6w+jWH9+vW48847UV1djaeeegpbt27FiRMnUF9fD5vNhv/85z8AYOea5w6XXXYZtmzZgosuugirVq3CkSNHUFNTA5vNhurqal9/FEJIuGEmfgghJAKh+CF+IzMzEzfeeCPmzZuHnTt3Ytu2bcjNzcXOnTtx//33e3Sttm3bAgB27dplul+WJyUloXnz5h7XNS4uDlOnTkV9fT1efvll/Pbbb1i6dCmaN2+Oq6++2qu67tmzx3S/o/IFCxbAZrPh1ltvxb333ovu3bsjNTUVlpPh/KTbm6ds374dv/76K1q3bo2PP/4YgwcPRosWLRB/0qXF2+sSQiIIo/ipqQlOPQghxM9Q/JCA0a1bN9x3330AgI0bN+r2STc4R3l0hg4dCkDkBTJD5s8ZPHiw2+Gojdx8881ISkrCG2+8gX/961+w2WyYPHmyS6uRkfPOOw8A8M4775juf+utt0zLZe6jnJwcu31VVVVYuHCh6Xmuvjt53ezsbNPv5u233zY9jxASRRjFz8m5hoQQEmlQ/BCf8/XXXyM/P79hor7EZrNh0aJFAOw7+O3atQMAh3NSbr/9dsTFxeGTTz6x66wvWbKkwSXs7rvv9rreLVu2xIQJE3Ds2DG89tpriImJwd/+9jePrzN58mSkpaVhzZo1ePHFF3X7VqxY0RBEwUj37t0BCHFUVlbWUF5VVYW//e1vDe54RuR39/vvv9t954CIdBcbG4tNmzbZJY39/PPPMWvWLLc/GyEkQqH4IYRECRQ/xOf8+uuvGDNmDFq2bInzzz8f11xzDS699FJ06tQJ//3vf5GRkYEZM2bozhk/fjwA4Nprr8X48eMxZcoUTJkypSECWa9evTB79mxYLBZcd9116NevH6655hoMGjQIF154Iaqrq/Hwww9j5MiRjar73//+94b1MWPGuAyUYEZ2djZef/11xMbG4vbbb0fv3r0xYcIEnHfeeRg2bBhuueUW0/Ouv/56tG/fHj///DM6deqESy65BJdddhlycnKwYMECXXJTlQ4dOuCss85CUVERevXqhWuvvRZTpkxpcC1s2bIlbr31VtTV1eGCCy7A0KFDMWHCBPTr1w8XX3wx7rnnHo8/IyEkwjCKHweWZEIICXcofojPGTt2LB5++GGcffbZ2LVrFz766COsWLECGRkZuP/++7F582b06dNHd87UqVMxc+ZM5OTkID8/H3PmzMGcOXN0gRFuuukmrF69GpdddhkOHjyIDz/8ENu3b0deXh6WLFmC6dOnN7ruZ5xxRkM+n8YEOrjqqquwYsUKjBo1Cnv37sWnn36KsrIyvPrqq3juuedMz2natCm++eYbTJ06FU2bNsWXX36JNWvWYOTIkdiwYYPdd6aycOFCTJgwAaWlpfjggw8wZ84cvP/++w37Z82ahTlz5qBv375Yv3498vPzkZKSgvfffx+PPvqo15+TEBIh0PJD3KGqCpg7Fwhw0CJCfInF5k3oqCBTWlqKjIwMlJSUNIRgdkRVVRV2796NTp06ISkpKUA1DD3q6+tRWlqK9PR0n0V0i0SWLVuGESNGoGvXrti2bVtDsIFAEE5tFK33ldVqRX5+PvLy8hoCRpDQgm3kJZddBqjzCr/6Chg1yi9vxTYKfRy20X33AU8/DXToAOzdG7wKEt5HBjzRBqHdwyIkgNTV1TVYj+66666ACh9CCAkqtPwQd/jsM7Hcty+49SCkEUR9klNC3nzzTaxatQo//fQTNm/ejF69euGvf/1rsKtFCCGBg3N+iDuEuFcCIe7AXzGJelauXIm5c+fiwIEDuOSSS7Bo0SKvw2UTQkhYUlGh36blh5gRGxvsGhDSaNjDI1HP3LlzHeYPIoSQqIBub8QdaPkhEQB/xYQQQki0I8VPSopYUvwQM2j5IREAxQ8hhBAS7UjxI6MkUfwQM2j5IREAf8WEEEJItCPFT0aGWDLgATGDlh8SAVD8EEIIIdGOFD9NmoglLT/EDFp+SATAXzEhhBASzdhsdHsj7kHLD4kAKH4IIYSQaKaiQgggQHN7o/ghZtDyQyIA/ooJIYSQaObAAbFMSwNatBDrnPNDzKDlh0QAFD+EEEJINLN/v1i2bw/Ex4t1Wn6IGarlp64uePUgpBFQ/BBCCCHRzL59YtmhAxB3Mvc5xQ8xQ7X8VFcHrx6ENAKKH0IIISSaoeWHuItq+amqst9/6BBw+HDg6kOIF1D8kAY+//xzDB48GOnp6bBYLLBYLFixYkWwqxVWPPzww7BYLHj44YeDXRVCCHEP1fJD8UOcIQNjAPaWn4oKIDsbaN0aqK8PbL0I8QCKHwIA2LhxI8aPH481a9ZgwIABmDhxIiZNmoSsrKxGXbdjx46wWCzYs2ePbyoaZQwdOpQilBDiX8wsPwx4QMxQRbHR8nPwoON9hIQQccGuAAkNPvnkE1itVvzjH//A448/HuzqEEIICRRS/HTooFmBaPkhZqi/C6Plx2LR1quqgJSUwNSJEA+h5YcAAPad/MM79dRTg1wTQgghAcNmY8AD4j7OLD9q9DeZNJeQEITiJ8qRc1TefPNNAMANN9zQMN9n6NChAIAVK1bots2Q50jmzp0Li8WCvXv3AgA6derUcIzqxiWPu/76602vu2fPHlgsFnTs2NFheV1dHZ577jn07dsXaWlpunoAwG+//Yabb74Zp5xyCpKSkpCRkYEhQ4bg7bffdv+LUqisrMTDDz+MU089FYmJiWjTpg0mTZrUICDNKCsrw+uvv45LL70Up556KlJTU5GamopevXrhn//8J4qLi3XHy+985cqVAIDzzz9f9/3NnTu34dhly5bhtttuQ58+fdCyZUskJiaiXbt2uPLKK7Fu3TqvPiMhJEooLhZzNQCgXTvO+SHOcWb5qanR1un2RkIYur1FOX369MGkSZPw3XffYefOnRg4cCC6dOkCAOjWrZvX1+3SpQsmTZqEBQsWoLy8HOPHj0daWlrD/sbOJZLYbDZceuml+OqrrzB48GB0794dW7Zsadg/f/58TJw4EVVVVejWrRvy8vJQUlKCH374Addddx2+/vprvPHGG26/X0VFBS644AKsXbsWqampGDlyJJKTk7F48WJ88cUXGDNmjOl5v/zyC2666Sa0atUKXbt2Rb9+/XD8+HGsX78eTzzxBD788EOsXr0a8Sc7HllZWZg0aRK++uorFBYWYtSoUbrvTLYRANxyyy3Yv38/Tj/9dAwcOBBxcXHYvn07PvzwQ3z00Ud4//33MX78eE+/WkJINHD0qFimpQFJSZzzQ5zjzPKjiiFafkgIQ/Fjs2mjXuFISorez9ZDxo0bh3HjxuH666/Hzp07MWXKFIdWGE8YNGgQBg0ahBUrVqC8vBzPPvusnfXGF+zbtw/19fXYtGkTTjvtNN2+TZs24brrroPFYsHChQtx6aWXNuzbu3cvxo4dizfffBNDhw7FxIkT3Xq/6dOnY+3atejWrRuWL1+O7OxsAEIUTZgwAW+99ZbpeR07dsSyZctw/vnnI0YJFVpRUYGpU6firbfewvTp0/HEE08AEMJz7ty5GDp0KAoLC3H//fc7tLw9++yzOO+889CsWTNd+SeffILLL78cN998M/Ly8pCcnOzWZySERBHHj4tl8+ZiScsPcYYzy4+6TcsPCWHo9lZRIUa8wvUVzsLNRzzxxBN2wgcAHn/8cVRXV+Oxxx7TCR8AyMnJwZw5cwAAL774olvvU1lZif/85z8AgFmzZjUIHwBISUnBq6++iqSkJNNz27VrhwsuuEAnfOR5r7zyCuLi4rBgwQK36mFk3LhxdsJHll9++eU4evQovvnmG6+uTQiJcI4dE0v5DOGcH+IMZ65ttPyQMIGWHxL2mLl01dfX48svvwQAXHnllabnnXXWWUhLS8PPP/+Mqqoqh8JFsmHDBpSVlaFly5a48MIL7fZnZWVh5MiR+OyzzxxeY/Xq1fj222+xb98+VFRUwHYyZ0JCQgIOHz6M4uJipKenO62HGQcPHsQXX3yB7du3o6SkBLUnXVakC+COHTuQl5fn8XWJ/5BG59TUYNeERDWeWH5WrADuvht4+WXgnHMCUj0SYtDtjUQAFD8pKcCJE8GuhfdEeSjJ1q1bI8XkOzh69ChKS0sBAO3bt3d5naNHj6Jt27ZOjzlw4AAAOHXf69Spk2l5UVERxo8fj++++87pe8g6e8IjjzyCxx9/HFYnI7XeXJf4l/HjgY8/BnbtAhz8bAjxP9LyYxQ/ZnN+PvgAWL8e+PBDip9ohQEPSARA8WOxcOi1kdT7MZOzq2s7mseinjdp0iSX75OYmOhZxTxkypQp+O6775Cbm4tHHnkEZ5xxBpo1a9YQ4CA7OxuHDh3y+LofffQRHn74YaSlpeHf//43hg0bhuzsbCQnJ8NiseAf//gHZs6c2WBhIqHDxx+L5euvAyenehESeIxub84sP2VlYnn4sP/rRUITWn5IBEDxQ1ySkJAAQIRrNkOGsw6la7ds2RLJycmorKzEs88+i5YtW3pdR4m0DO3Zs8fhMWb7ysvLkZ+fj5iYGOTn56Np06Z2+wsKCryq04cffghAzG+66aab7Pb//vvvXl2XBI44PoVJMDG6vTmb8yO9JCh+ohd3Ax5Q/JAQhgEPiEtkp3/Xrl2oUc3aJ/niiy8cnivFTa2DsKny2tu3bzfd7+zazoiNjcWIESMAaAKhsfTr1w9paWk4cuQIlixZYre/sLDQtLykpAR1dXVIT0+3Ez4A8Pbbbzu0zLj6/o6dHLXNycmx21dUVISlS5c6/DwkNIiNtS+rqwNWr6bnCAkAjtzenImfI0f8Xy8Smqi/i5UrgZISbZvR3kiYQPFDXJKTk4NTTz0VxcXFeOqpp3T7VqxYgYceesjhue3atQMAXe4dlXPOOQfp6enYunUr/ve//+n2zZ8/3+1IbGZMnz4dCQkJuOeeezBv3jxTF7rNmzfjo48+cut6ycnJDdaVO++8U+emVllZialTp6LSZLQrMzMTzZo1Q3Fxsd1nXLt2LR544AGH7+nq++vevTsA4LXXXtMJ05KSEkyaNAkl6h8TCUnMLD9PPAEMHAhce23g60OiDE/c3mj5IervYsEC4OQgIwBafkjYQPFD3OLJJ5+ExWLBQw89hL59++KKK67AWWedhWHDhuG2225zeJ6MxHbttddi/PjxmDJlCqZMmYIdO3YAEILikUceAQBMnDgR5557Li6//HL07NkTV155Je6//36v63zmmWfi7bffBgBcf/31yMnJwahRo3DttdciLy8P7du3R69evTyyDM2YMQPnnHMOtm7ditNOOw0XX3wxrrjiCnTu3BmrVq0yzRcUGxvbIBAnTpyIAQMGYMKECRg0aBDOPfdcXHTRRaaWG0D7/u69916MHTsWkydPxpQpU7B69WoAwB133IGmTZsiPz8fnTt3xmWXXYa//OUvyMnJwS+//IK//vWvHn1nJPCYWX7+9S+xXLgwsHUhUYijaG9m1maKn+jGZrMXxevWaesMeEDCBIof4haXXnopFi1ahIEDB+K3335Dfn4+4uPj8f777zeIFzOmTp2KmTNnIicnB/n5+ZgzZw7mzJmjs5rccccdmDdvHs4880z8/PPPWLJkCTIzM7FkyZJGd94vv/xybNmyBXfeeSeaNm2K77//HgsXLsTWrVvRpUsXPPnkk3j88cfdvl5qaiq++eYb/N///R8yMzOxePFirFq1ChdccAF++uknh9He7rjjDnzyySc499xzsWPHDnz++eeorq7G7NmzMW/ePIfvN2bMGLz++uvo2bMnvv76a7zxxhuYM2cOfvvtNwAiutzPP/+Ma665BrGxsVi0aBF++eUXXH311fj555/dinRHAo/afzATPzF8MhN/snWrJmQ8yfMjzykv58h+NFJX53w/LT8kTLDYwjAMVGlpKTIyMlBSUuIyJ0pVVRV2796NTp06uczjEsnU19ejtLQU6enpdok2SWgQTm0UrfeV1WpFfn4+8vLyGiL1eUNpKZCRIdafew648079/lattGkV4feEDi6+aqOI5dtvgSFDgP79gbVrgbZtgYMHgQ0bgL59ge++AwYPBrp0AYwBU1q2BI4eFev79gFeDq6wjUIf0zaqrDRPryEfUjNmANOni/W77waeeSYwlY1SeB/p8UQbhHYPixBCIhB1UNRM55pZgwjxCc8/L5Y//CCWngQ8UKNy0vUt+nCUS05afBjwgIQJFD+EEBJgVPFj1p8IccMfCWdOzrcEIH6IspNqDHhgnPNTU6Of00HxE304Ej9y3hjd3kiYwL9YQggJMK7Ej2r5mTdPeBgR4hO2bdPWZac1NhZo0kSsO7L8lJfrtyl+og9H4kdaD1VxTPFDQhiKH0IICTBqv8AkdZbO8nP99cAZZ/i9SiQS2bkTuOEGTfDYbIAa8l8KmrQ0wGIR644CHshgBxLm+ok+XIkfur2RMIHihxAS1Zw4IeZ5/+MfgXtPV+LHOOenuNiv1SGRypgxwNy5wAUXiO2DB7V9LVtqP0Q1aIkjy49R/NDyE33Q7Y1ECI0SPzL3yx133NFQVlVVhWnTpqFFixZIS0vD+PHjUVhYqDtv3759GDNmDFJSUtC6dWvcc889DjPYE0KIP5kzB9i4EZg5M3DvyTk/JCDI+T0ytYCakyU2VvshJidr5RQ/xBHyN5GeDnz9NXDOOWKblh8SZnj9F7tu3Tr85z//Qe/evXXld955Jz7//HPMnz8fK1euxMGDB3HppZc27K+rq8OYMWNQU1OD1atXY968eZg7d25DEkhCCAkkpaWBeZ833gBee02sV1Ro5e5YfgjxCbNna+tWq9ZBNRM/xgFJih8ixU9CAnD++UDnzmKblh8SZnglfk6cOIFrrrkGr7/+OprJCDEASkpKMGfOHDz33HMYNmwY+vXrhzfffBOrV6/G2rVrAQBLlizB1q1b8fbbb6NPnz4YPXo0Hn30UcyePRs1Zr0AHxGG6YwICVnC9X4ycx8LxADlrl3A5MnAzTeLNCm0/JCA88svwLJl2nZtrbnbm5zzU1enTzKlhrkGQlf8LFokJsn98kuwaxJ5qOIH0MKjM+ABCTPivDlp2rRpGDNmDIYPH47HHnusoXz9+vWwWq0YPnx4Q1m3bt3QoUMHrFmzBgMGDMCaNWvQq1cvZGZmNhwzatQoTJ06FVu2bEHfvn3t3q+6uhrVyohC6cmhWqvVCqsjH9ST2Gw22Gw2VFVVITEx0ZuPGxHIzqrNZkO9OuGVhAzh1EbV1dUN95arezBUeOMNC265JQ7PPluHv/9d+34rK2MACFOLq89y5IgVP//cCsOHe/aZ331Xe489e6w4ccIC+fitqqqH1arPnG6xxAGw6MrC5XsONvJ74vcFqGkP677+GrEAbD16wLJ1K2y1tag7cQJxAOqTklCnfF/yPGtFBVBaCssvvwDHjyMOgC0+HharFbbDh1Hr5XfszzaKHzsWAGC7/HLUbtni8+tHC2ZtZKmsbPgN1FqtiElPRyyAuiNHUG+1IraqqmFE3VZZ6fXvg7gHn3V6PPkePBY/77//PjZs2IB1qu/wSQoKCpCQkICmTZvqyjMzM1FQUNBwjCp85H65z4yZM2fikUcesStfsmQJUsyyDRto1qwZLBYLbDYbYqJ8SLXMOHpHQo5QbyObzYYjR47g2LFj+N2YAT6EueWWvwAA7r47Fl26LGoo37GjFwDhvpGfn+/0GtdeOxonTpwLi2U1+vRxf+R7zpyhADIAAJ9/vg4FBakARAi33bsPID//Z93x5eXnA9BnqHZVN6Jn6dKlwa5C0PmLsr57xQp0AfBn8+ZoB8BWU4ONa9bgLABHT5zA6pO/r9jKSlx08pzFixah33PPoc2PP+JY165oDqC8ZUukHToE66FD+LKRv0l/tJH8zNVFRVjMe6bRqG3UfNs2DAZQXlOD5fn5OKWwED0BHNyyBRvy8zHw0CG0PHls5fHjWMrvPyDwWSeoUP3JXeCR+Nm/fz9uv/12LF26FEmqmdzPPPDAA7jrrrsatktLS9G+fXuMHDkS6enpTs4UVFZW4uDBgzh69CgyMjKQnJyMmJgYWCwWl+dGCjabDeXl5UhNTY2qzx1OhHobSStPWVkZrFYrevTogSYyN0iY0bt3Hq68MhbHjlmwe7dWnpeX5/CcH36w4MQJ8ci0WM5CXp57bVRcDOzZo43Bz5mTiwMHtHNbt26HvLw2unPuvtv+0eysbkTDarVi6dKlGDFiBOLj412fECV0PvlMaTN4MPDdd7DU1aFPt24AgBbt22u/L8XLYtTQoYi/6ioAQPOTwRNSTj8dOHQICWVlyBs5UnOT84BAtFFicjLvmUZg1kaW1FQAQGpGBvLy8mA5cgR48020TU5GVl4eYh9/vOH8ZPCZ5W/4rNNT6sEEXo+eWuvXr0dRURHOPPPMhrK6ujqsWrUK//73v7F48WLU1NSguLhYZ/0pLCxEVlYWACArKws//vij7royGpw8xkhiYqKpy1p8fLxbDR4fH4+kpCQUFRWhuLgYR48edXlOpGGz2VBZWYnk5OSQ7FiT8GmjxMREtGvXzq2Bh1Bl2bJ4mBivnT5PXn5ZW2/ZMhbx8e5FJajTe7TphA8A1NbGID5eb5FW5w27Uzdij7v/D9FCzMlMubEnBY/FZkPcyR9aTEoKYuR3pXhHxG/dan+djh21/aWlgMGTwxP82UaWmBi2vw/QtdFJ12xLQoIoaynsPDHHj4vfjzLnx1JVxe8/QPBZJ/DkO/BI/FxwwQXYtGmTruyGG25At27dcN9996F9+/aIj4/H8uXLMX78eADAjh07sG/fPuTm5gIAcnNz8fjjj6OoqAitW7cGIEx26enp6NGjhyfV8YiEhAS0a9euYfQ61OdU+Bqr1YpVq1ZhyJAhvElClHBoo9jYWK/r9vbbYl71ZZf5uFJeIOfnesKuXdq6J7FZXEXxV92UDxwQUeH27/esboS4ZM8esezSRSuTLraqJ0dsrEh4arMBK1bYX6dpUzHR/dgxkei0EeLHr4TwAFLYIh9W8j+gVSuxPHwY+Pe/9UEmGPCAhDAeiZ8mTZqgZ8+eurLU1FS0aNGioXzy5Mm466670Lx5c6Snp+O2225Dbm4uBgwYAAAYOXIkevTogeuuuw5PP/00CgoK8OCDD2LatGkBCUhgsViQICOVRBGxsbGora1FUlJSyHaso51IbqPDh4HrrhPrNTXaf2ew8Eb8qCLGk/mlro6tqQG+/BKYNUukYfEmoenTT4tcRf/7H8Nkk5MYIzLKcMRm4kcNdQ2IG7SmBli5Umz36AFIK1BNjej0Hjsmbuzjx4FrrgEmTgROusiFBFE+v9cvGMWPFL67dwO33aY/trZWvLxwiyTE3/j86TBr1ixcdNFFGD9+PIYMGYKsrCx89NFHDftjY2OxaNEixMbGIjc3F9deey0mTpyIGTNm+LoqhJAQQY3hEAoDgo7EjzODsCp+fGn5qakB8vKApUu9Ez6AED/vvQds3+7d+SQCKS+3L2vZUlhuJGaWH0Dr3ErxM2sWcMklYn3wYP2I/yOPCPV+9dU+q7pPoOXH9zgSP45golMSojRakq8wmMWTkpIwe/ZszFaTqRnIyclh5CJCogi1H1JZKRKEBxM5CG6ktlZLYWG2T+JLy48vopTKPobZXCESpZhFjezYUT8S78jyox5jsQADBgDDhwN//AGceirw7rti3+HDwMk5uyEHLT++xyh+0tLEy5gAV1JVJfYTEmLw6UAI8TuByH03ezZw++323j5mOLL8OLPSuGP5KSkBLr8c+Phj964JAB5E53SIrI8f80STcMNM/OTkCFEgRyOcub1JevUSoxUxMcBpp4lzT050x+HD7t1wwcCR+LFahQ/unDmBrU8kYBQ/gHPrD0djSIhC8UMI8Tvqf6A/xE9REXDrrcCLLwKbN7s+vrHix5G15okngAULgEsvtT9W9heN/PGH4/eUOJvHU1+vvQf7GqQBM/EjO6qy8+rK7Q0ABg60v47q9hYMjh8HDh1yfowjt7d33xXRV6ZM8X29Ak1FBbBzZ+Dez0z8OIjSC4BubyRkofghhPgdf4ufhQu1dXfcyJy5vTnCHfHz55+Oz0tLA0aMsN9fUuL4PSXOPHjUutDyQxowEz9StEi3NkeWHzX4kJn4yRAJe3HiRHAsP0OGANnZ5jecxNFN4020k1ClVy8RwGLDhsC8H8UPiRAofgghfsff4uf9983fyxGy/2Oce9RY8WPWD1T7C4sXu2eZcvbeRlTB44n4qa4Wg99KPBoSSZiJH2l+NIofo+XnnnuA3r1FJI6LL7a/jhRH1dWBFz/19dpN9Nprjo+Lhjk/Mv5+oG5i+YBx5fYm5/nQFE1ClCh4OhBCAs2BA1qHvahIH8XMH+Lnhx+0dXcEgJyf27mzvtyZ1cidOT9m/UB5Xlyc8MTJznZdP7PrGpOlStT+hSd9jVdeEdMeTqZkI5GGM8uP0e3NaPn5299EzpYvvgCaNLG/jowKEgzxo06S+/xzx8dFg/iRBOqzumv5kaNKtPyQECWKng6EkECwZg3Qvj1w4YXCLT8zExg7VtvvD/GjihZPBICSrB6AJlR++kmL8mvcJ97P/TC6xv6CGmnYExxZf7y1/LiaMkHCHHfc3uQogNHy4wpp+ampCbz4USOL/fwzUFBgflw0iZ9AJfcyEz/SBVJFCmZafkiIEkVPB0JIIPjPf8Ry+XLzBPG+Fj82mz4/j7sCoGlT+0Ht2lrg6FExpWDoUGDqVG2ft3NrVMsP4H36EUdWKW/FD5OhRjiNmfPjimC6vRnzF+3bZ35cNImfQOU0ksJTfXCamaRTU8WSlh8SokTR04EQEgjUQWSzpKG+Fj/G/153BxubN7dPPl5bK4InyDq++irw22/aPomZEDlyxPWcH8nixcCkSe7VU62bGe6Kn/Xrge7dgU8/FdvR1DeMSpzN+ZE/Rvnj9FT8BNLtraYGGDQI+H//T2wbxY+jzMCOBIFaHqphuj0lUDez/K5V8/WQIfbHqeKYkBCEf3+EEJ+iBooKhPgxigJ3rR/NmpmLHzV4AiDmEi9d6nzOz+efi0F19Vx5vNHyAwAjRwIPPeRePSWOLD/uzvm5/npg+3Zg3DixTfET4bgT8EASym5vixYB338PPPec2DaKHzV0ozoS4s4P3BcZhoOF+r0HyoxrJn769RM+wnv3Aj/+COzYof2eaPkhIUqc60MIIcR95KAwYO4REcqWn+JizVVv2DDg66+BBx6wP9couG6/3f6YykrhHWJm+QH035MjzjxTi2LbWMuPsZ9H8RPhHD1qXyZ/hMYffii7vRlvaGfiR70B3HEFq6lx70YMRdTvJZiWH0Cz/nToIJa0/JAQh39/hBCfolp+1MBMEk/Fjzq/2QyjKKiutu8fmZGRYS5+ZF9uzBjH5xpFhtkAp/ycUnQY38tVnystTbiqyeMaK36aN9dvU/xEOEVFjvcZlbinlh9Hbm/eCiGjlUrNH6Re88QJezc3R+In0i0/oSR+jNDyQ0Ic/v0RQnyK2q8y6395In6WLBHWkxkzHB9jtPzccosQDrt3O792Sop9oCIp1hISRP5ARxj7TGb/8bJMihZjf9O47eg9jNMzjLjr9taihX5b9ZRxlkeIhCnOxI+vLD9GtzdvxMScOSI08jvviO1168RNf/fdYlu9flYWcPnl+vM9tfx4Ex0lFHFXWNTXi+gzjjI7e4K74oeWHxLiUPwQQnyK2p8wC6esip9vvwUef9xxDpubbxbL6dP15c8/D3z5pVh31HGXUecckZQE3HmnXuSo4qdnT8fnBsLyYzyvsZYfVfyUlekHi9lHiUACIX6Mlh9vxM+UKWJ57bVi+Y9/iKWc46P+OM1Muo7Ej6MbxtuwjaGG+tBx9r2/8QYwfDiQm9v495TfNS0/JMyh+CGE+BT1/+7gQfv9qvgZMgR48EHgvffMr2XW1/n+eyFa8vLEtqM+jiqozLxxkpOFK9ivv4ooaGrdEhLMc/dJPBE/jiw/rsSPHKCW55m5EBrr4qwvp77/wYMUPxGNzaaJn7/8RSzPOkvb7y+3Nw/ET+ZPPyF2xAj7HarfLODa71UVP+oP2R3xE85ub+pDx9mNP3++WO7Y0fj3pOWHRAgUP4QQn6L+J7uy/Eg2bwbWrrUXKWb9HmNaD0dWI9W7xawfpPb35EC4avmxWIQwMsOY5NRMXLmy/Bi3HSGP69sXuOkm+/3uur0ZLXLq98MB2gijpERr8DlzgLlzNVMpEBJubwMeewwxxkzCdXX2QsyR+JF1VucAuWP58TYxVqjhrvjxVNg6oqZGe0A2a+b8WFp+SIhD8UMI8SlqB9xd8fPUU8Ir4513hFVi5kzg8GHzY43hs92x/Jj1DVyJH0C4xJmlsXCnz+TK8uNuXkL1vNdfd14XZ/UytovaT+UAbYQhrT5Nmgh/x0mTtDDXgL34MVpbXKGO7PvSkrJzp/7GrK11LH7atRNLR25vvs4KHGq46/bmK/FTUqKtp6c7P5aWHxLiUPwQQnyKu25vZv+Lb74p5jP/4x/A1VebX99o6XFk+ZHl330HmHnXuCN+APPABKrgchRZrrwcmDgReOYZ/Xt4ivE84/u525czWn4ofiIYKX4yM833qz+qpCT3lbhEdXtTfzyNFT+bN+tvuKNHzfMVAUDbtmLpas7Pvn0idOOyZfZ1jAa3N0+teo6QFrb0dNd5hWj5ISEO8/wQQnyKq/87KX7Mgg/V1gKrV4v15cvNz1ctP3V1ji0/8rjBg833N0b8qH2Nw4fNr//JJ8D//uf8Ou5gPG/XLn2QBm/c3g4e1Pd/KX4iDCl+Wrc236/+qLzpHMuRfZtNb55trJj49Vf95LbDhxtv+fnb34D8fPGy2SLH8qPetL52eysvB377TV/m7nwfgJYfEvLQ8kMIcclPPwHz5rl3rKv/uyVLxBxcY7oOwL2Qy6r4sVpdW34cofb5PBU/ah/PkfgpLNRveyp+mjTR102yc6d+2xvLT0GB/jNwgDbCcCV+jJYfT1Hd5FTLTGPFxKJF+uu5I35KSrSHgpnlZ9cu/XnRFu1NbV+jz7Ajhg1D/JlnouUvv2hlnogfWn5IiEPxQwhxydlnA9dfLzxHnOUxtNnc+7+74grzYAK1ta6nHxjFjztzfszwt+XHOF/Jmdub8T3y8oAVK8z3/fGHWMp28GbOT0UF3d4iGk/ET0qK59dXbxBVnDTW8rN+PfDzz9r2kSOOxY90e7PZtPkoZuLHmAA0Uiw/3gQ8kD6zrpLR/vgjACBn6VKtjJYfEkFQ/BBC3ObKK4GcHGD/fvt9P/8MZGdrrvWukJ14ldpa87m0qanaujFHoSPxU1JibyVRcSZ+VMHhyvJz5Ij59Y3ix5nlR/3MsbHAF18AZ56pr5tk504h7M47T4gkb9zerFaKn4jGE7c3b8RPXJw2T0i11DRG/JxyilgWFGhlziw/zZtr5lvp+mbm9ma8gSJhzk9Zmd6i5W6M+xMnxIOpZ09g8mSXbxOrXpeWHxJBUPwQQtzm2DEhfB57zH7f9dfr+y2uMIasBoSQMftvVcWP0WvFkYVn/nygSxfH728mftQ8PxKzfDzuWH6MeXmcWX4yMhy/n1E07dwJ/P67SBD75Zf6KQ+//CIi5pkN7BoHvFXRSPETYRw7JpbNm5vvV3+M3sz5sVi00X1vxI/ZTXvppfZlhw87DniQmqqFXP7hBzHBTh1xkD9wdXK+1RoZlp/OnYEHHtC2nX0O9UYvKwM+/xzYulUkP3VBrPpgoOWHRBAUP4QQjzGztsj+lrvs3m1+XbMpCGr/xejt4c48ITO8mfNjsQhVofbx1AiwKp5YfpyJH6No2rVLL3hU8XXoEHDttcCHH9q/hzEoFy0/EYy0lsiJY0Ya6/YGaB1cox+qO5iFSDz1VPsyZ5af1FSgWzexPmGCCK340UfafrMHw9GjkTHnx2hudva9q/tOnNB/Zhfub602bULsjTeKCYwyAk2rVq7rR8sPCXEofgghHmOx2Iex9vR/zpH4Mcvt42hyvjPLjyu8mfMj+4l1dZaGPp+jgWljn81dy4+rZKiFhfr8SdLDSeWDD+zLjAPeDHgQwcgfZVqa+f7Gur0B5iZRd8WPmaDp3Nm+zNmcn9RUYOBAfdn27fq6qPOBACGm3MkFFG54YvlRxaqZCFUeqJb6esTMmyd8nRcvFm1+ww2u6yOFMR8sJESh+CGEeMycOWK+sTrQ6qn1wJH4Mfs/diZ+vLX8NEb8qHVyJH6MobydWX5k4CrAPuWK8bwTJ/Tu/mZud2ZznTjnJ4rwxPLjbR4Ys8gk3oqfxEQtgIGKM8tPWhpw7rn6MuNnqa+3N5OGu+XHLGKbs8+hft6yMv3NXlpqf7zZ9y3Pue024PTTXddRPlz5YCEhCsUPIcRrbrlFW/f0f85MtNTW2s+VAfT/7cG0/Kh9K1knR+LHnWhv//2vGLyeOdNxPc3OUyPQmll+zIJJ0O0tipA/ykC4val46/aWmmqekPX4ccdZhFNTgdxcfZnRB7Wmxl78hPucH7M6O/ve1QftiRP678gofj75RAgcR5i5JppByw8JcSh+CCFOcSYuVKuDL/oR3oifQM75Uc9xZfkxYmb5mTwZ+O47oE0brczohm92nivxU1EBdOoE7NmjlTlze6P4iTA8cXvz1vLTCLc3i1HQpKSYT6R3FkElPl74i3btqpUZxc/Ro/ob6siR8I/2ZnazemL5UROslZQAkyYBl18uvqdLLtFnZjbiznwfgJYfEvJQ/BBCnOJt/0CN0OYulZXm71dXp3l7GBObB9LtLTFRC3rgyvJjxNmcHzWggzvnbdqkrZvNkQKE8JG5ggC6vUUVgQx4oOLqYXHggIiFb3Stsljs/T0B/eQ2lfR0ICtLrC9bpgkgY+Zk48jABx+IOkjC0fLjqfgxWn7U72jfPuCtt4AFC5znBZB4Kn5o+SEhCsUPIcQprvoHtbXm/3FmYaZ/+AF49lnH11K9MF58UeQNksh+lTGxeSDd3uLibIiLq9fVx8xt3gxnc378cR4ghNHu3cA999jnomTAgwjFZtMa25HlJ1hzfq65BhgxApbvvtOXu0q6qbJli4i2Im+Mdu2ACy8U60aLklH8fPstsHevth0p4sfdaG9Gy49qGv7tN9fv3bKl62MAhromIQ/FDyHEKa76M3v2mE+6N3MPb9pUL2iMSCETEwPceqt+7orspzhye/O0D2cmfqR1yVGS07g4IDbW3PJj5gWk4szy4+55rt4DEO5uEyaI9cpKMafIKDjp9hbBVFRoP2R/Wn68cXvbuhUAYPn1V325rK+ZoDLSurW9WdnRzW/mE6oSjm5vZiMVnkR7U8WPGjlFNSc7gpYfEiFQ/BBCnOKqf7Bjh7n4MQsKlJjoXo681FThBaP2r8wsP2rAA0/7cGbiR+IoyWlcHBAfr7f8SPEjgxY46r/5wvLToYPr4zMytL5gVZW55xDd3iIYafWxWBzfFL6Y8+Op5ae6uiE/jUW1vgCa5cedm9hM0LkSP45uykix/Lg758fo9qaG3Ny82fn7xsQ4TpprRLX8eGLVIyRAUPwQQpziSvz89pu5+LnzTqBXL6BnT63MXfEj+0CxsdpUAFeWH0/Fj9Gio+LY7Q2Ija3X1UeKn/HjxXQCNfy3ii8sPzk5ro9Xxc++febHUPxEMPIHmZoqOqxmBGPOjxq8wPjDlB1k1aKjToRT62j2vo7Ej3zPvDwgP99+fzSIH6PlR41+58LyU52erm0kJTn+PRmRI0v19d5PyiTEj1D8EEKc4kr8lJbaJxwHRCf811+B557Tyjyx/EikEPG15UfFE/GjzvmxWrW+SJMmIlWJmrBUJVCWn7Q0re8hk7IbYZLTCMZVmGsgOG5vSlZku2hvUvxcfbVYdu2qr//QocD99wOzZ5tf25H4+de/xDInBzjtNM/qG6o0Zs6PM8uPQfzUT5iAr+bN0wrMAlI4QhWoHFkhIYiXY5GEkGjB1eBoRYW55UeiDhYaxU9Cgvn11f5YfLz4/3Rk+fHEY8YRnll+tDk/aqQ32VdzZ5qFt3VTxc/IkcCSJfbHJydrfUGzfD8ALT8RjatgB0Bw3N4U8WOHvIlnzBAiZfRokcNHdtSbN3eeDMvZZzjjDOC++8ytFtFo+VHFj7rPkDzV1qSJXvB4K36qqpz/FgkJArT8EEKc4mpwtKLCeb/Gmfjp1Mn8HFXISCEi/98dhboOlPiRc36eeAL4809RnpSkHad6iqh4a/lR69a2rbY+ebL58UlJ+vlMZlD8RDCBsvz4UvzIjndSEjBlivihq/V3NdfEmfi55BIRFtusAx6O4sfTgAdqm+zZY55IzQxjUAl3Xd4A4bIof2M0K5MQhOKHEOIUd8SPo7klgP4/MzZW3zFv3978nFB1e4uN1eb8LFoE3HSTKFf7aY21/DhLcjpoEHDHHcArrwCdO5ufr1p+nL2H+j1S/EQQnoqfQCU5dcfyo6LWv1kz53Vx9hnkdZKT7Tvw7rq9rV4tRJTqJuZvrFbguuuAOXP05Z66vanWHXWOjyuMvx9PLD+ANgrkbi4AQgIIxQ8hpIG9e+3zBLrqH5SXA/v3O95vjPpmsQAtWoj1iy82P8fo9gYIobN3r0jaLnFk+bn6auDf/xZuXy+84Lz+gKdzfrSO2tq1YumO+PGF5SclBZg1C7jlFsdzi5KSHPcF1XJ1AJjiJ4Lw1O0tUJYfaSY144EH7Mt8ZfmR17FY7G9Ody0/AwcCn3yizUkKBO+8A7z9trCEqZjdrPX1jhOeeRtwwGj5cWVONiJN/MY/FEJCAIofQggAERipY0f7iGKNtfy0bCmSh6vBnrZtA7ZvN5+DDJi7va1aJepnFD/yP1/9b+7VC5g2DTjlFODvf3def8C7gAcqap8qIcG8n+AL8aNe15n4cdRPUfsz6pxzeqZEEIGy/JiJH2diwsTyU7tgAbB+vQgNacTX4gew79B76vbmaBKdPygsNC9XxY8qcB19Fm+DOpx8sNa++qr43t57z7PzKX5ICEPxQwgBIPoggPBSqKzUyl31D0pLtX5Nmzbmx3TuDGRmatutWomATo6Sdqp9FCka/t//sz/OatUGNo3uaSpmOYdUjOLHWZLTsjL7Shv7mWb9Tm8DHqjzkFVR07SpuRu+M7c39XtV25WWnwjCHctPkKO9SWz9+wNnnmn+Q/a12xtgPyrgqfjx1PWrMTj6LuXNOnasXiA5+izyAamKVUfJStXfzMn3sf31r0BJCXD++W5UWoHih4QwFD+EEAD6foHq2u5q4PCPP0QHPT7evVDMKo7Ej5nlxwzV8qMKHmNfavFi4LHH3Et7YnxPoxAqLLTvLBrFjlnQA28tP6rXitpGCQnmboPOxE9Cgvl3QPETQbhj+QmBaG+2mBj9iIgRf1h+jHUO5VDXjuomzbRGE6+j42V5t25a2eWXmx/ryJJkHE1yB4ofEsJQ/BBCAGgDxoBwU5O46h9IV/62bX0nfswCHpihzvlRBYyxg9+2LfDPf2pzjYw4Ez/qelwcUFdn/9j0p+VHFT/G7+Kee+yPb9HCsdtbTY25CKP4iSDcET8q/pjzs2QJ8NNPWnl5ubAeKFQ4sj5I1BEET8WPGlLSmfgJZcuPeuOrASHkzZqYKB50Upi4svyo0WVuucVceDZpIsJINmmC+htv9L7uAMUPCWkofgghALwXP5L27cVk/CFDgA8/dO8cR9YQs4AHZqjix5nlR+JoTrD7c35MolLBvv/oS8uPWmdj3+vcc4G77wb++lfgmWdEepSJEx0PhNfUmIvJY8fMA26RMMQdtze1Y+3raG979wKjRgFnn62VHzoklsqohkvxo95Unrq9qdf2pfgJJOqDV20vVfwA9rkAHF1Htfz07AmsWwdceqn+2LQ04PXXReI2Na6+N1D8kBCG4ocQAkCfsFOd1+tI/BitCx06iP/LlSsde1UYcWTVUS1I7rq9qQJm0CDz4xsvfoA+fYoAiDDXsk9mDDttJn58Yfkx45lnRDTcu+8G8vNFn8hTy09BAbBjh3f1IyGGjAiiWj+MqDe1p1G8JB07ml/399+1bTlhTbq8ZWcDvXsDAPaMHu38+uoP31Pxo1qK3HV7mzJFZA529JAINOrnN4tLbxQ/jh7U8jpXXw08/bQI222xiNGqhQuBJ5/Ujk1LE/vMrHqeQvFDQhiKH0IIAL342bkT+Pln4IcfHA8oGgMnOQp24AxVZAwaJCK7fvSRSG8h8cTys28f8O23wFlnmR8vU2Y89pi+3BPxc8896/DZZ7V4+WUR4nvRIvtgDGYeR64sP7JOr72mL/cmUq0nlp/+/cVyyRLP34eEINJs6ygRFKC/qT1JXqkybhxw112isyx/cMbsuTKeuvSNzc4GlixB7Rdf4OC55zq/vvrDd3XzqFYii0V/rjuWn9pa8XBYulRYRBwRrIAHql+qUfyouQCcXSchQfjJ5ubq96sPC2fWQk+h+CEhDMUPIQSA3u1t0yYRhGnAADtX/QaM/5Ou3PLNUDvirVoB11wjcgmqfR1PLD/t2zu2+gDA+PHi8/zzn/pyT8RPamotLrzQhthYIQDHjLF3ezMKQ7P3MPLPf4q6jR+vL/el+Kmutu9HXnSRWC5e7Pn7kBCjrk6LVnLKKY6P88VE/5gY4F//Ao4fF0t5XTVUpIynLi0/bdsCmZmwjRjhWkh4UkdV1CQl6eug3gyOxI/aQVdjwLuiqgq47z7gu+/cP8ddHMWiVwMeAPZubzt3ikzIBw6IbbNJkSoUPyQKofghhADQW37UfITSiyYlBbj3Xq3c2MH3Rvy4I3K8CXjgDHdc0hyJH3eDHpnV2Z05P2Z188YLR/VkUvt7Zm5vw4eLpQx1TsKYAwe0RlYnuBvxZZSzjAztR2W1mgsJ1e3NXc47z/1jVSFlFD/qPkdub2ryMHXdZtM/GI2C7ZlnhCvZ4MHu19Vd1NEoT9zehgwRmZ0nTtSXuzPB0t0gGe4gXRUpfkgIQvFDCAGg/69VkZafvDzgqae0cl+IH1UkOBIWzsSHo1DXnuKJ5ccdzMSPv+b8mOFssFutm8WiDdCG8txv4ibS5a1TJ+c3xLhxYnnGGb55X1X8HD+ulTdG/IweDXz+uT7uvjsYxY9xn4r80R87ppXJbMz79wtR4yhEJABs2eJZ3TxBfSA7c3szWn7kd/3jj2JJyw8hdnj5d0wIiTTUAU6V0lKxNA4cGl29XM1JNsOZVcfsmNxcvYeJmuTUW3Fhdq6zJKfu4K3lxwyzeeWuUPszxj6w8bPJz+SNyCIhhhQ/zlzeABFR5MgRc1OjNzgTP/PnA++/L7Y9ET8Wi+aT6QlJSXoxo+LI7U219sjEodOmAd9/7/y91AzEvsZdy4+jOT9yNEpafih+CGmA4ocQAkD7r+3dG/j1V61cWn6MHfrYWCGA5Jzmxlp+3Dlm6lSgXz9g1y4xKOwo1LWnhLLl5957gaIi+6i0zlD7eMb57BQ/EYwM0+hK/ADOLRqeIn9Uy5eLl6S8HLj+em3bE/HjLYmJerFg3KciH15mlh81T5HE6PYWTPHjaM6PpEUL4bYnTePuuL35S/zYbIENFkGIC+j2RggBoFl+Ro7Ul0vxY/zvjInR/282ds6Po/9G9ZhmzYDnnxeBEQDhdSL7e760/DhKcuru/7cvLT+pqcArrwAjRrh/jip4jKLQKOwofiIIafnp0iWw7+vox11YqAkMAOje3f91SUpynLXX2Lk/flyIBtXyU1AgRJvMTeQMf4bFVk3x6ueRQsjM7U0VQM2a6W/qYFl+rFZgzRrfXZcQH0DxQwgBoP3XDhkichRKHImfzp31YsAb8eNOlF21sy69dGTZgQPAsmViPRCWH3cTgZr1BRsjzhpDTAyQkyPWW7ak5SeiOXJELLOyAvu+jiwg+/dr63/+KX6A/sZZ3qJ77hEPrv/7P+1GKCzUW34KC4Vp2Qzj5wwFtze5rKnRC7aUFPfChftL/KiTQgcO9HzuFiF+hOKHEAJA+69t2hT46ivxfwXYz/lZulRYXmbO1P8nNzZQkDuWH6P4UfGX5Ud9f3f7Ov36uX6PQBETI8JYX3UV8PXXjsWPzebfvhwJADLAgFmsdX/iyJ1Nip+srMC4vAHOE3S2aiWsYzNmaAKxoMDe8iMtaEaMFqVQED9S7FVWauGt5TlqVD9HDyB/RXuTiVQljr5TQoIAxQ8hBIBm+ZGDf3JA0Gj5GT5cJCNt3lzfF/CXS7czy49KIMSPu5afESOAefOAZ5/VyrzNJdlYYmOBrl2B994DevVy7PYG0PoT9gRL/PTvD/zvf/bCQ3bGvTELe4r0C739dveOl+Ln0CG95aeoCPj9d/NzjHOJ/OX2Vl/vOM+PI/FTVaXPUVBZ6bnlx9e/m/fe09aPHxd12rTJ/QcpIX6C4ocQAkAbaJSDf3JA0FHAAyAw4ZHV/0kpfsz+x33p9uYovLYn/9kTJwJDh3pfJ1/hbsADgOIn7AmW+LFYgGuvBS68UF8uLT/ehIL0lM8/F5MAx43THl5t2zo+3pHlx2rVgh20aqU/p7pa/xBwx/Lzww/Axx+7Pk6lslL/PmahrqXocSR+Kir0lh9HD0hncfEby8CBwMUXi/Xjx0W+hN69gU8+8e37EOIhFD+EENhs9uJH/ifK/pS3E/Ybi5lrnT8tP3FxesGgWrQ8HbA880wRoW7mTO/r1lgofqKIYIkfiZxcJpHiJxCWn8REoEcPccOuWgWMHQssWeL4+DZtxPLQIb34AcT5ANCnj/15qhBRxY968/zzn8Djj4v1wYNFqMYFC9z+KHZ5B9SHoDHggXxQG8XPtm1aiMi4OMemeWdx8X2BDHxw/DiwYoVY/89/fP8+hHgAQ10TQlBernXspdubMY9PKIgf2VE3Ez++svz4MlCWxQK8/LLvrucN7kZ7Ayh+wp5gi5/MTP324cNiGQjxo9KvH/DZZ86PUS0/xrxAMtx1375ikqNKVZVmbVHd3qqrxc109CjwxBPi5r/3Xs368o9/AJdd5l79jRmn3XV7k9+3PG71arHubGRItfb4Q/xIq5+a74dhr0mQoeWHkCjFahXzUvbt0/5r1fDV6oAg4H/x4+j/0CxZu68tP507i/nYvXoBH37o+LhwdFV3ZflR+zsUP2FMXZ3WSQ6W+MnIMC8PhNubp5i5vZ17rv6Y/v3tz1OFiGr5kaJEPkxtNn2Y799/dxxFrrwcmDNHzDdSr2G8trpuFvBAfT8VZw9viwUYNkyM+px9tuPjvEW2vZr8luKHBBlafgiJMvbvB6ZPF32lt94Slp4NG8S+tDTtfykULT8SX1t+0tKAvXvFNZz9L4ej+HFl+bFYxDF1dRQ/YY3a8Q2W+OnVy7w80JYfd5Bub+roT26uZi3JzgY6dLA/T30gqXNqpChRR2uM7mt//ilGWozcfrsQPyNGCFc9by0/ZiNFgOuRoWXLxAPAHyEpzcRPsKK/EHIS/gIJiTKuuQZ4800hfADxP6uKH4nR8mMmOCZNEsvbbvN9PSVm4scsh2Fj/7educVLwkn8yFDlN96oL1dFrOw3MddPBCBd3iwW+5s3UAwZArzwAjB+vL48lC0/W7eKZWys3tLTs6d56GdVYKjr8qGkilC1ww/oI7ipzJkjltLFzpH4sdm0dbOAB95YfgDxm/FXLH7Z9jIHlXw/QoIIxQ8hUcavv9qXXXedWA4apJW5Y/l55RXxf/3MM42vlyOPGbP+R9eu9oGc/OGubiSc8uB8+SWwfDnw97/ry9V2lP0/ip8IQHasU1KC27n8+9+1ifaSULT8yB+/FBMtWwLdu2v7HYmfuXO15Geq2DCz/BjFjyNxYsRowZHXXrZM7EtN1eZXqQEPvLX8+BMZ8GDv3uDVgRADFD+ERBlm/SKrVQRKeuMNrcwd8ZOcLPL+NCZC6n//K0TX9Onm+598Urjiv/uuVpaUBPzxh5baAwjM/3s4WX6aNBGu/M7c3qTnD8VPBBDsYAcqxjqEsviRtGqlj3bSurXeFC55+mng5pvFui8sP2q+AClkjCJGCrSnnxbLKVO0B7Qv3N78ibT87NmjlTmqJyEBguKHkCjD0aDwaafp+yyBCngweTLw7bdi4NWM9u2B778Hrr5aX56UpO+bUPy4h9qO2dliSfETAYSy+AlFt7ekJM0qAYgHUFKSdjMMG+b4u3z/fbH0VPyYWX7UhKpS0JiJn+pqYfkB9H7G7gQ8CAXxo0bGk5YzQoIExQ8hUYajuabGfH6hEvDAGf5OUSG54AKxnDQpjPzeHKC2Iy0/EUQoi59QtPwAeuuPfABu3y5ExtlnO36oyHIz8aOWGUNom4mTzZu19ePHhW+tmdubOg+oY0dt3R3LTyCyUTvCTPhS/JAgQ/HTSJ59ViS2/v77YNeEEPdwZPkxWl7cCXgQbNQ6+nNwc8kS0S857TT/vUegoNtbhBLK4qdFi+DUwxXyBgA08XPKKdpohyPkw9Jszo+nbm8y4AIghE9xsbnlR4qfpCS9KHNnzo+jQAuBQLWuSSh+SJCh+Gkky5cD77wj5h8QEg5EkuVHraM/LT8xMeb/4eEILT8RSqiKnwEDwsvy4w4tWoiJksYkp4DnAQ8OHNBvHz2qXUNOpqyqcty+7kR7C6b4SU62Hzmj+CFBxiPx88orr6B3795IT09Heno6cnNz8eWXXzbsr6qqwrRp09CiRQukpaVh/PjxKCws1F1j3759GDNmDFJSUtC6dWvcc889qA3jf1x5TxcXAytWsPNAQh9Hlh/jf3+gk5x6Q6AsP5GE+owyih+1L0fCDNnBNZukH2jUDvq99wavHq7wVvw0beo4IpsqQIxub2Yi5NAh/faRI9q1pctYdbVr8VNZqZ1nFBvBdHuzWOxd38rL+bAhQcUj8dOuXTs8+eSTWL9+PX766ScMGzYMf/nLX7BlyxYAwJ133onPP/8c8+fPx8qVK3Hw4EFcqoS8rKurw5gxY1BTU4PVq1dj3rx5mDt3Lh566CHffqoAIgdm7rgDOP984NFHg1odQlzirvgJB8tPoOb8RBIymT2ghRen5ScCCCXLT2YmcPHFwLhxYhmqqG5vjiKumGG12ltZvLX8OBM/0tysur0Zxa0UP8XFWlmoPazNLH+0/pAg4pH4GTt2LPLy8nDqqafitNNOw+OPP460tDSsXbsWJSUlmDNnDp577jkMGzYM/fr1w5tvvonVq1dj7dq1AIAlS5Zg69atePvtt9GnTx+MHj0ajz76KGbPno2aYI5MNALjAMtzzwWnHoS4Cy0/0Y0qfuRvgeInAggl8WOxAJ9+Cnz8cWiPSnhr+amocByO2tNob1L8yLocPaodJy0m7ri9qVamUHsY9uxpX0bxQ4KI13dIXV0d5s+fj/LycuTm5mL9+vWwWq0YPnx4wzHdunVDhw4dsGbNGgwYMABr1qxBr169kCmTcwEYNWoUpk6dii1btqBv376m71VdXY1qJaV76cmbxmq1wmq1evsRfEJ8fCxUDWm12mC1uu5B7Nkjnk/t2vmvbiryewr290UcE6g2iomJA2CvgDIyrFDfWogdTfHExNTCag2tWM+JiTEAZOfK//WLhPuookJ7ZsnPERsrfhNVVaHXxp4SCW3kDTGlpYgFUJecjPoQ/+yh0kaWli0bOkHWpk0Bk/rEjh+PmIULdWW2igrUlpZCHQ+qq6hAvdWKmPLyhieS7dgx3ZO2vqwMdep71NYirqgIFgD1PXsipqAAdYWFsJSXIwZAfdOmiAFgq6pCXXEx4gDUp6bqrxEXJ+pRVibe86TwMT7hPf2ufdlGMQMGIHb+fF1Z7bJlsF17reNJqMQloXIfhQqefA8ei59NmzYhNzcXVVVVSEtLw8cff4wePXpg48aNSEhIQFPDrODMzEwUFBQAAAoKCnTCR+6X+xwxc+ZMPPLII3blS5YsQYrRNyfAFBT0BtCpYdtqBfLz852eU1UVi6uuuggAsHDhpwEdGFu6dGng3ox4hb/bqKpqJIBku/L167/C5s1aKOfjxxMBXNiw/cMP3+Ho0RK/1s1T/vijAwAxaLJ27fc4erQ4IO8bzvfR0KFpWL58IC655Hfk5+8CAJSXnwegKdasWYeamqLgVtBHhHMbeUPPrVtxCoCdhw5hm4v/oFAh2G3UZO9eDDu5vvzXX1G9f7/dMZYJE5AybBgGPfggkk5acqqLi/HDsmU4Tzlu688/Y1d+Ps7YsQMdT5bVFBVBzf98ZN8+rFHaJunoUYyy2VAfE4M9iYnoDGDXjz8i9dAhZAP4s7wc7QGUHzuG39euRV8ARSdO4AflGqkHD2K48h618fGwVFXZde5c9Usc4Ys2alpfr/uuACBuyhSs274dBwcNavT1o51g30ehQoWjgB8meCx+unbtio0bN6KkpAQLFizApEmTsHLlSk8v4xEPPPAA7rrrrobt0tJStG/fHiNHjkR6erpf39sVy5fH4KuvtO36egvy8vKcnqPmNBsxIq/Bau1PrFYrli5dihEjRiA+FP2XSMDaKDU1Tuf6JLnkkgt12yUGnTN06ED07u23anlFcbE2vjlkyLlwYDz2GZFyH914I2CxdAPQDQDwxBOx2LkT6Nv3bOTlhb/lJxLayFNiP/0UAHBK797o5OI/KNiETBsVF8N2111AQgIuuOIK5769Z50F21//CsuWLUisq8PAM8/U7e5xyinolpeHWJkAFUCCIcBBy5QUXf/Asn69WGZlIefss4EvvsApSjCF7NNPB1atQmpsLHp37gwAaN2pk76PYRBscU2a2AdaAFz2S4z4tI2sVuCee+yK+61Zgz5PPNG4a0cxIXMfhQilHrhSeix+EhIS0KVLFwBAv379sG7dOrzwwgu48sorUVNTg+LiYp31p7CwEFknfVmzsrLw448/6q4no8Flqb63BhITE5GYmGhXHh8fH/QGN86LAOCyTnpLT3xA51KEwndGnOPvNnI058f4nnIyvKRdu8D+Vt2hSRNtPSkpcPWLtPtI+yhxIdfG3hJpbeSSkx3m2PR0xIbJ5w56G7VqBcyfDyQlId6VF8k55wCLFwPt2sFSUYE4g4tNbG2t+N4VF32LnETXrBlw/DhiKisRo37ew4fFcdnZiG3dGgAQc/x4w/yh2JP5kSzV1Yg9WRaTnq6/hvoQBGBJSQGK7K233n7PPmmj+HjgjDOAX37RFcd0767/LMQrgn4fhQiefAeNdrasr69HdXU1+vXrh/j4eCxfvrxh344dO7Bv3z7k5uYCAHJzc7Fp0yYUKTfm0qVLkZ6ejh49ejS2KkHBRJO5xKYMrIZpnAcSxjgSP0bU58iNN4oATqGG2l8JtTm+4QQDHkQAMhpYKAQ8CCcuuQQYPdq9Y+UDp7bW3jRuFupaIqOdGffJYAdt2mjBDY4fN4/25ijggXEE1mxENhRYtUqIH9Vbx/gdEhIgPOouPPDAAxg9ejQ6dOiAsrIyvPvuu1ixYgUWL16MjIwMTJ48GXfddReaN2+O9PR03HbbbcjNzcWAAQMAACNHjkSPHj1w3XXX4emnn0ZBQQEefPBBTJs2zdSyEw54k/VeHTDiPDUSaIziJyMDePVV82MffxzYuRN46SX/18sbGOraN1D8RAChFO0tUlFHW4yuZWahriXNm4sHqTHPz8GDYmkUPxI12psjcWv0mzeKnwsvBJRpA0EjPR3o3VtEALzgAlFm5n9NSADwSPwUFRVh4sSJOHToEDIyMtC7d28sXrwYI0aMAADMmjULMTExGD9+PKqrqzFq1Ci8/PLLDefHxsZi0aJFmDp1KnJzc5GamopJkyZhxowZvv1UAcQbzSYjYgIUPyTwGH9zS5cCZ59tfuw//uH/+jQGhrr2DRQ/EYDsdAc5CFBEk5AgRo9sNmDrVv2+6mrRmT9yxP481fJjtQqLT4cOwJ9/ivLsbM3Kc/y4Jmik+Kmt1UJDG/P8xMWJkR+ZNDQlBbjzTmDWLOCvfwXmzGnUR/Y5w4YBX34prG0mc5MICQQedRfmuLiJkpKSMHv2bMyePdvhMTk5OV5HHQlFvBE/iksw3d5IwDH+5gIRcMNf0O3NN1D8RAByVC2cb+hQx2IRD53ycuCTT0RZ69Zijs2ePUDnzub5a6T4KS8Hrr4aWLgQ+PZbcQ4AdOyot/xIIaRGz5VWEjPLXlKSZlVKTgaeekokmO3f38sP6mdOzmWi5YcECwZYbyTeuL2p4oeWH+IPvvgCuP1289+X+vsDwruvRLc330DxEwHIGztMXcjDBjnism+fWF58sVh+9pnjxJ1S/NTUCOEDAP/+tyZ+OnXSxE9ZmebiJssAzUpitPwA+od4crKYsDlkSOj+Fih+SJDhWGkjMXu21Nc7z9tFyw/xNxeJNFLo3h245Rb9PuNvLlT/H92B4sc3UPxEABQ/gUE1N3fqBJx+uutzpPhRad8e+Ogjsd6xo97KI+f9pKeLzkR9vXPLj/ogDNWAByqqG2BVVXiPwJGwhJafRmL2P2Oc02iElh8SKExy9kWU5Uetuy2809MEFYqfCIDiJzCo4mfQIPe+76ZN7SPNFBeLDkBcnJjzEx9vb9VJTtYecnIukSO3N7P6hSoZGdpoFef9kCBA8dNIzNzepMXaEQx4QAKF0QJZVycGEVXCWfyog5xMc+A9FD8RgPxjofjxL6q4aN/eve87KclelGzapF1D3oCqmxugFz/S8uOO21uoY7Fo1h+KHxIE6PbWSMyee2VlInKlI+j2RgKFUfwYrT5AePeVkpOB114T/b5WrYJdm/CF4icCkDd3OI9mhAOquGjb1jPxo7qFbN4slh07amXNmunN9cnJ2vWladuV5SccxA8gxM/hw5z3Q4ICLT+NxOy5t2CBsP4sXWqew4tub8SfqJYd4zwYM7HtTdCOUOLGG4Hbbgt2LcIbip8IgG5vgUG14BjFj6PJvomJYlRURQohVfyo834sFvFwNorZSHB7A7SgB7T8kCBA8dNIzDqO//wn0KQJMHIkMHas/X6KH+JP1Bx77lh+jK7oJPqg+Alz6uu1PxOKH/+iiot27fQjSo6SiSYlAaedZr7PaPmRJCeLh7NR/Ji5vall4WT5AYCbb9Yi5xESICh+Gomr/5lvvxUDPiNHAq++Ksro9kb8iTrnTAqb5cuBoUOBX34JSpVIiEPxE+aofyoUP/5FHfFs21bk9pHcdJO2ro48JSUBM2aIjv6zz+qvl5mprRvFjzxXxczyM2GCtm6c1BmqSCvX4cPAc88FtSok+qD4aSTuuAz961/CBW7qVLHNgAfEn6hu5bJPNHw4sHIlcNllwakTCW2M4mf/fmDbtuDVh3gIxU/gUHP5tG4NDBggEp7u2gWceirw5ZfADz8Ap5yiHZeUBPzlL2IEtGtX/fXUMNhm4sfYnmbi59prtfwG55zj8UcKCn37aus7dgSvHiQqYcCDRuLO/4zxvqbbG/EnqvhRhTZg73ZOCGAvfjp0EMuiIgaSCAvUP5Vwn8QX6sgcPIBm3fnLX7SyCy8Uy549gd9/F+tqR6FJE/315NwXwLXlJybGPKCFxQJ8+qkYtcjJce9zBJs77xSfZdo085wMhPgRWn4aiTviR53PV1tLtzfiX1Txo87/IcQRqvhRn087dwanPsRD1GAHnMTnX1Tx44yePbV1VbAY5+w4svzIc9RzmzRx3L4xMeEjfADxOUaMEOt79jBRGwkoFD+NxJ1BNnUu37FjtPxEC1u2uM755A8ofoinqOLHbGCbhDiM9BY43P3TdiR+nFl+zjhDW5cjo86sRuGONDGXl2tJXAkJAPxrayTu/Nds366tHz6sd0Wi5ScyWbVK/Pedd17g39uZ2xshZsiQ6Ebxo/6WSAiyejXw3ntMcBpI3nxTTNafN8/5car4UUdJnYmfwYOB//xHWICuvFKUObMahTuJiUB2tljfsyeoVSHRBef8NBL1v+bUU4GffgIyMhwff/gwLT/RwAcfiOWGDYF/b1p+iKdIy8/LLwN792rlwbBcEg8YOFAsZShRJjj1P+edJ1w4XLkXnnqqtq4GKTAKGGNo6ptuEsnL5PWdWY0igY4dgYMHhfg5++xg14ZECRQ/jcTo9takiRhFraszP57iJzrIytLWq6sDOyBrFD+OfouESOKUf4IvvtDWGSAjTFi/Xixp+QkM7syrio8HvvpK/Om3bauVq0IoLs78WmpZJLu9AUL8rF5Nyw8JKBQ/jUR9Llks4tW8uXjemXHkCAMeRAPq/9uePfbRTf2J0e2NHVjiijgH/wS0/IQw6gRxGVWH4ie0GDXKvkydSOfOpOFIdnsDgE6dxJLihwQQzvlpJGadBjV4ixFafqIDVYAEOmKW0fJTUuL42Ph4/9eHhD6OxA+FcwijZqSl+AlPPBU/kWj5ad1aLBnwgAQQih8/YCZ+evcWS2PAA4qfyEQVIH/8Ebz3rqoCiovtjzn3XODhh4FNmwJVKxLKUPyEIeqEvqNHxZLiJ7xwR/yobRqJlh8Z3tvdEOKE+ACKHx8i3XTVUP0Saf02Wn7o9haZqO5C/rb8fP89sG6dtu2O5adVK2D69MC645HQhW5vYYg6iiZHzRnwILyg5YfihwQFzvnxA64sP3R7i3z8afmprwf++U8gN1dERh00SJRbraITaxQ/ZpYfJoEnKrT8hCGq+Dl0SCxp+QkvKH4ofkhQoPjxIdLyYxQ/XbqIkXZAiB91nirFT2SijpirSW59waefAk8+Kda3bdPKKyvFf6PR7c3M8sM+ElGh5ScMUd3e5J8Kb+zwgm5vImcSQPFDAgrd3nyI0e3tqquAzz4Tbkky5P+2bSKkvYRub5GJKkDMLC+NQY0kqP5+5Huq711UBHz8sf01aPkhKrT8hCFmGYwpfsKDe+4Ry1mzXB8bLZaf4mL9yDAhfoTixw9cfDFw+unAhAnA2LEimEnnzkDfviJAjwzMA9DyE6n4U/ykpJhfu6LC/r0Bc/HDPhJRofgJQ8wyGPPGDg+eekoEqbjwQtfHRov4qa/nA4cEDIofP3DmmcDmzUL4qFx1lf2xtPxEJqq70IkT+qi0jUUVP6pLnSPxY4YxqTiJbuj2FoaYWX4Y8CA8kAkB3SHS3d6Sk7XPuHevcI2hBYj4GYofH+Iq6fO4cfZltPxEJkYB8s03wIEDrs+rrIzDqlUW1NU5Pkbdt3ev/Xu6I37atHF9DIkeaPkJQ2j5iQ4i3fIDaNaf3r2Btm2BO+8Mbn1IxEPxE0BOOcX+v4niJzIxjpiPHAm0b+/6vBkzBmD48Di88orjY1RroSp+pOXHndH6tm1dH0OiB1p+whDO+YkOVPETiZYfQAt6IFm2LCjVINEDxU8AiY3VAh9I6PYWmbhjfTFj27YWAIA5cxwfo4ZKN7P8mAXNueEGoEULbZvih6io4iczE7juOrFOy08IQ/ETHahtGumWH4k7bhKENAKKHx/iyu0NEIEPVGj5iUykEDEOaLmLM9d9R+KnokLMLTILsPDGG3rBQ/FDVFTx8/DDYj42ICw/dL8PUczc3jjnJ/KIRvFTUuL9CCIhbkDx40OMwsaMjh312xQ/kUdNjdau3ooMZ30YZ25vZsJH/q+ovzWKH6Kiip+0NK2PVV9v3scmIQAtP9GBOvoQqW5vRvEDAH/+Gfh6kKiB4scHrFgBXHYZ8Oqrro81ih+6vUUe6oCVUWQ4C2Sg4qwPo1p+1P5PebmIngoA6elauXR3U93hOEBMVIziR40oSNe3EIUBD6IDddQqNTV49fAnakeoQwexpPghfoTixwecdx4wfz6Qne36WFp+Ih85STw+XuR4UlGFixF1gM9d8aNSUaHlkFKjqMp1JtAmjlDFT2oqEBOjDTIz6EGIQstPdNCtm7YeE6FdtqIibb1LF7Gk+CF+JELvpNBl9Giga1dtm+In8pCWn9RUe2u+M/GjDuS66/amUlGhWX7U4AZy3dl7k+jGaPkBNNc3Wn5CFPnAaNVKK6P4iTxatgR27gQKCoJdE/+h/oaluwTFD/EjFD8BJikJ2LpVi+RIt7fIQ4qftDT7gAfO2ludrxMb6/g4RyKmvFyz/KjiZ9gwx9ciBDAXP3JJ8ROiSMtP9+5aGf1ZI5POnUUYxkjlmWeAUaOAxYs18cOIb8SPUPwEgZgYICFBrNPyE3lIN6HUVHvx48z6ooofZ8c5c3uTlp/mzYENG4AnnwTuuEOUTZ0qlswfR4wY3d4AzfJDt7cQRYqfaHCLIpFNx47AV1+JhHi0/JAA4CC1HfE38fFiSfETeaiWHzXwAOBc1JSUaLHSVRe46moxp2zECDH458ztTbX89O0rXpJZs4CrrgIGDPDgw5CoQO0z0+0tTJAPCTlBHNDPnSAkHGnXTixp+SF+hMNEQUJafuj2FlkcPgxccYVYT00VoYJV3HV7U8XPI4+IpJMjR4ptZ25vquXHSGIiMGSI9tsjRKL+Lo1ub7T8hCjS8qOG5jNGWCEk3OjUSSz/+INJxojfoOUnSNDyE5ksXKhZfjp0sA/IZCZc6upETjdV/KjnzZ0rlr/+6vgagLD8SNQ5P4S4Qv29JSeLJS0/IY4cIUlKEvkWVq4UORcICWdOPVVkjD9+HDhyRB8MgRAfQctPkJDip6YG2L4d+Oab4NaH+AY5Sm6xAM8/D1x5pX4OsplwGTNGiJX1683d3kpL9cc7sh79+CPwxRdineKHeMIZZwjR06WL+O0CDHgQ8kjFmpws8i089JDzSCmEhAMpKZor544dwa0LiVgofoKEGvCge3cRkWv79uDWiTQeKW4mTxYCJDNTuMKddpooNxMuixeL5Ysvah0XY/JSs/e44AJ9eVGRdqyZ2xshjkhJEYOs27ZpZQx4EOLIhwQjvJFIQ+YDofghfoLiJ0iolh/Jpk3BqQvxHbI/oqbbSEvTXImqq4XgNctPqGKWvF0ixc911wHPPQfceKP9MbT8EE9JSdFHfaPbW4gjHxLy4UJIpCDFD0eEiZ+g+AkSnPMTmUhhYsw1KLcrK4HevYEePUTbO5q/U1kp9i9fbr9PCuakJBG2+oYb9PvT0zVLEyHewoAHIQ4tPyRSkeHbafkhfoLiJ0iYRdyiEAp/HIkf2d6bNonBrN27RRoDGZ3NSFUV8NRTwPDhjt9DXlPmZQFEnrj9+4Fmzbz/DIQAtPyEPGrAA0IiCWn52bo1uPUgEQujvQUJaflRKSkJfD2Ib3Fl+VmzRis7fNj+OEllJfB//6cvk2LH+B5qpNszzrDPLUSIN1D8hDhqwANCIokzzxTLnTvFKGFcnIj6xiS+xEfwlxQkzMSPGuqYhCeeiJ+iIjHJ3IzaWvugBTU1Iiy2dHszEz9ywIyQxkK3txCHlh8SqTRrJnzDAZH0NCtLZOdm3h/iIyh+gkRion0HmeIn/JHix9gfkVab48e1sqIix25vgHnQg4oK525vnTt7Vl9CHEHLT4hDyw+JZAYO1G+vW6dPZkdII6D4CRIWC9Cmjb6M4if8cWX5UXFm+QHMxU95uf17qOKne3f360qIM4yWn08/FTmpioqCVydyEptN6whS/JBIJDfXvsyY9I4QL6H4CSIUP5GHp+LHmeXHjPJye7e3uDiRK+iLL0ReIUJ8gdHyM24ckJ8P3HNP0KpEJMXFwjcWAFq2DGpVCPELI0YIYd+tmzbCR/FDfATFTxCh+Ik8XEV7UzGz/CQm1iIjQ/Nrzs0FNm7U5v+olh/1miNHAnl5jas7ISqO3N42btRvW63Aa68BBw4EpFoE0Mxv6emc80Mik3btRNbl77/XEtcxKhTxERQ/QYTiJ/JorNtbenqNzoulSxcRwS0jQ2ybub0R4g+k25vVqnfBNPY/7rwTuPlm4Kqr9POROTfZj0jx07p1cOtBiD/JyREjfzKEKS0/xEdQ/ASR7Gz9NsVP+NNYt7f09BrdQO4pp4iltPpv3qy5+lP8EH8ixQ8A/PGHtn7kiF7YzJ4tlt9/LwZrZ8wQyXm7dAGuuy4wdY06KH5INEHxQ3wM8/wEEVp+Ig933N5iYoD6etF/iTPcgSkpVl2y2y5dxFKKn5tuMr8mIb4mLk643FdWAv/4h1ZeXi5c3Nq3tw++dPAgMH26tr1rF/Cf/+jDsRMfQPFDogmKH+JjaPkJImbih64i4cfWrcD114t8bO5YfqSgKSoCDh3SHxcfX+/U8uPomoT4A+nutmiRvnzzZrFcudL1NX75xbd1IqD4IdEFxQ/xMRQ/QcQofmpqtNQNJHy48EJg3jzgoovcEz9S0NTWiuTVKnFx9UhOttkdS/FDgsHZZ5uX79wplp9+6voaGzb4rj7kJBQ/JJqQk14pfoiPoPgJIsY5PwBd38KR/fvFcvt299zeWrYUcyMkp56qrcfG2hoCHqSna1FszcRPfHzj6k2IKz7+WAQ0MFJcLAIhLFjg+NwBA8Ry/Xq/VC26ofgh0QQtP8THUPwEERm9UYXiJ7yRljtnlp/0dJHCQNKvn7YeF6e5vZ1yikiGC+gnn0tiePcSP9O2LfDQQ/blx4+LoAZHj4r+95Ah9sf87W9iScuPH6D4IdGEFD8MdU18BLtPQSQmBnjvPeC554DevUXZ3LlBrRJpJO64vaWni7w8kjPPBFq1Euv9+x/SiR+JmeWHkEDQtKlmpb7gArEsLgaWLRPrl1xi//ts1w4YOFCsb98eiFpGGVL8MKsxiQZo+SE+htHegsxVV4llx47ApZcCzzwDTJmid4UioU1cnJZs3R3x06SJ3vLTo4eYFL5uXS3q6w/i0CFhCpKBEQDocv8QEmg2bAC2bAF27BAWn+JiLUx77976UNgrVwrhLn+z1dXCRY5umj6ksFAsafkh0QDFD/ExtPyECJdcAvTpI6K9caQ0vFDD+EoR5GzOT3q6cHn8f/9PBEu44AIR/GL0aBssFuDSS+vRowdw+eXaOSdO+K/+hLgiMxMYNkxYgQAhfmTQg1NOEYl4JUOGCHc51RpUXh6omkYBNTXC7xDQTMaERDIUP8TH0PITQsg5QLy/Q4+HHxaj3x99ZJ+bJznZvs3UcNWAveUHAJ591vy9xo614dJL9WXGZKiEBAMpfo4f14ufhx4S890mTNCOTUgAYmOBujohfuS5pJHICCtJSVpEFEIiGYof4mMofkII3t+hy6xZol02bQL69tXvq6+3P97VnB9PYf4nEgpIAbNtmxA7sbFATo5waZs9W3+sxSICdZSU0PLjU/bsEcuOHbWIKIREMvJP89dfRWK9Hj2CWx8S9tDtLYSQoey//x549FHm/AkV6uo0QWpmgTFzSTPObzC6vXnKo4+KEfaOHT0/lxBfIcWPfDZJ4eMI6fpGt00fIsVPp05BrQYhAUN2jgCRfEwG/CDES2j5CSFkp/idd8SyvBx48sng1YcIVEvcsWP6fXV1QGWlviwx0X5A1sztzRO6dBGTyqurgdtuA0aP9vwahDQWo+uaGpHQDBminZYfH6JafgiJBtQRw4oKYNUqYPx4Wj6J19DyE0IYLQKLFgWnHkSPmlrAaPkx69QZXd6MZd5YftTrvPaaCJBBSKAxih81IqEZtPz4AYofEm0Y/zQvv1yYnZn3h3gJxU8IYby/Dx8OTj2IHmfix6xTZyZ+VNcgbyw/hIQCSUl6F87TTnN+vBQ/tPz4EIofEm2kpQEXXaQv278f2LgxKNUh4Q/FTwhB8ROaFBdr60a3t7Iy++PNxI8aFKExlh9CgonForf+9Orl/Hi6vfkBih8SbVgswOefA7t368ut1uDUh4Q9HomfmTNn4uyzz0aTJk3QunVrjBs3Djt27NAdU1VVhWnTpqFFixZIS0vD+PHjUSgTsp1k3759GDNmDFJSUtC6dWvcc889qJUJUqIYY6fYZuO9HQo4svw8+STQrZv98Wbip6ZGW1fznxASbqi/7549nR9LtzcfU1MD/PmnWKf4IdFGTg5w+unadkVF8OpCwhqPxM/KlSsxbdo0rF27FkuXLoXVasXIkSNRrgzr3Xnnnfj8888xf/58rFy5EgcPHsSlStKSuro6jBkzBjU1NVi9ejXmzZuHuXPn4qGHHvLdpwpTzCwCu3YFvh5Ejyp+pOXn22+BBx4wP95M/PTrB3TtKpKaco4mCWcOHdLWW7d2fiwtPz7m0CExKpaQwASnJPqwWIBvvgE6dBDbxmhDhLiJR9HevvrqK9323Llz0bp1a6xfvx5DhgxBSUkJ5syZg3fffRfDhg0DALz55pvo3r071q5diwEDBmDJkiXYunUrli1bhszMTPTp0wePPvoo7rvvPjz88MNIUB3Koww1mqNkxw7RaSbBQ3V7k5aff/3L8fFm4ichQaQnoPAh4Y5qpHf1e+acHx8jvSiysvgwIdFJq1bC+rNvH8UP8ZpGhbouOTkk3rx5cwDA+vXrYbVaMXz48IZjunXrhg4dOmDNmjUYMGAA1qxZg169eiEzM7PhmFGjRmHq1KnYsmUL+hozSAKorq5GdXV1w3bpydjDVqsV1gjyC0tOBgB90oxNm+owerRJFk0Pkd9TJH1fgeLYsRgAsQCAo0dtsFprcfhwLFTD6amn2vD776IzEhtbD6u1zuP3YRuFPmwjQH1GufoekpLEvVNaWgertfHPMXeI5DayHDiAOAD1rVujLow/XyS3UaQQym0Um5iIGAB1ZWWoD8H6BYpQbqNg4Mn34LX4qa+vxx133IGBAwei50nH74KCAiQkJKCpIR5qZmYmCgoKGo5RhY/cL/eZMXPmTDzyyCN25UuWLEFKSoq3HyHkKCxMBjBSV7Z06UH07LnBZ++xdOlSn10rWti4sQeAUwEABQU1yM//CocOnQegacMxTZoUARC/44MHK5Cfv9zr92MbhT7R3EY33dQRc+b0wj//+QPy850nGzx06DQA3bFt2z7k5/8amAqeJBLbKGf5cvQBUGix4Mf8/GBXp9FEYhtFGqHYRmceP472ALZt2ICdEXAfNJZQbKNgUOHBHDCvxc+0adOwefNmfPfdd95ewm0eeOAB3HXXXQ3bpaWlaN++PUaOHIn0CAqddewYcPPN+rLi4nbIy8tq9LWtViuWLl2KESNGIN5ZSnZix2efxTasnziRgAsvzMPdd+tvnc6dW2HDSY1aWZmKvLw8j9+HbRT6sI2AvDzg2WfrkJR0lstjd+yIwXvvAc2b5yAvr10AahfZbRTz888AgMxevbx6xoQKkdxGkUIot1Hs558DK1eie8eO6BrG90FjCeU2CgalakZ6F3glfm699VYsWrQIq1atQrt22h9aVlYWampqUFxcrLP+FBYWIisrq+GYH3/8UXc9GQ1OHmMkMTERiSYTKeLj4yOqwU96DwIQUcS2bwe2b7fAYolHXKMcFDUi7TsLBGo46/p6Cyor4+2CzJSXay5wx49bGvUds41Cn2hvI3c/uhybqqyMQXx8YDMrRGQbHTkCAIjJzkZMBHy2iGyjCCMk2+jkZMLY6mrEhlrdgkBItlEQ8OQ78OjfyGaz4dZbb8XHH3+Mr7/+Gp06ddLt79evH+Lj47F8uebys2PHDuzbtw+5ubkAgNzcXGzatAlFRZq7xNKlS5Geno4ePXp4Up2IQ223Ll3E/V1dDezcGbw6EX3AA0AEPTBO4D7ZJyGEKDDam4+RruEOBgoJiQrEBGkGPCBe45E9Ydq0aXj33Xfx6aefokmTJg1zdDIyMpCcnIyMjAxMnjwZd911F5o3b4709HTcdtttyM3NxYABAwAAI0eORI8ePXDdddfh6aefRkFBAR588EFMmzbN1LoTrSQmioAmP/4I/PQTI74FEzXUNSDcEyl+CHEN8/z4GCl+DPNmCYkq5Fxvih/iJR5Zfl555RWUlJRg6NChaNOmTcPrgw8+aDhm1qxZuOiiizB+/HgMGTIEWVlZ+Oijjxr2x8bGYtGiRYiNjUVubi6uvfZaTJw4ETNmzPDdp4oA4uKA/v3F+o03irwyJDgYxU9BgRbuV+ZbmzABuPVWsX7hhYGrGyGhDC0/PkYNdU1ItELLD2kkHll+bDaby2OSkpIwe/ZszJ492+ExOTk5yGeEDqc0bQpMnw5s2gSsWAE88wwweHCwaxWdSLe3Fi2Ey9u+fdq+r78GVq0CLrpIbJ93HqBEeickqqHlx8fQ8kOIJn48iO5FiEpgZ6ASl8yaBfToIYRPixaA1JBffSXcrQCgpgZ45BHhEkf8jwwgIqe47d8vlnFxIsP9ZZcBSUniddllQrgSQpjk1KeUl2sqkpYfEs3Q7Y00EoqfEOOOO4AtW4A2bcR2jx5A796A1Qp8/LEomz0bePhhzS2O+A+bTXu+duggltLyIzt2hBBz6PbmQ44eFcvERO2LJSQaUd3ePvwQGDYMOHRIlNXUBK9eJGyg+AkDxowRy59+EstNm4JXl2ijqkpbb9tWLCl+CHEP1fLjhtc0cUZ1tVgmJwMWS3DrQkgwUd3errwS+OYb4NFHgf/9D2jSBPjss+DWj4Q8FD9hgPRwOH5cLBMSgleXaEO1qkvxI93eOPhKiHOk+FEtqMRLpPjhHwCJdszc3iorgYkTheVn3LigVIuEDxQ/YUCzZmIp5/yo/311dYGvTzQhLT+xsdocY1p+CHEP2UcB6PrWaKQ7D8UPiXak5UeOCANiAq6E9whxAcVPGNC8uVjK+zxOidGn3vvE98iBpaQkEYBCheKHEOfExmr9FEZ8ayQUP4QI5ENFDb0qywDxh21k2zY+hEgDFD9hgBQ/Bw4AL70EbN+u7WNyTf8iLT/JyVo7SCh+CHENgx74CIofQgSq0JGoYa+N+9euFdGjzjjDv/UiYYNHeX5IcJBubwUFwN//rt9H8eNfaPkhpHGkpgKHD3PQtdFQ/BAiUP1pJeroilH8fPCBWO7a5b86kbCClp8wwGhxUJHRT4l/oOWHkMbBXD8+guKHEIGZ5ceZ+OHkaGKA4icMkJYfM2j58S/S8kPxQ4h3mLm9/fYb8NFHwalP2ELxQ4jATPwUFDjeX1vr3/qQsIPiJwyIj3ccVpnix7+obm9xcUB6uraP4ocQ18j7RLq92WxA9+7A+PHA0qXBq1fYQfFDiMDM7U3moADsk4rR8kMMUPyECY5c3+j25l9UtzdAP++H4ocQ1xgtPz/9BNTXi/UvvgAKC4NTr7CD4ocQQXy8fZkqftTgBwDFD7GD4idMcOT6RsuPf1EtPwDQqZO2j+KHENcYLT/vv6/te+EFoE0bYM2awNcr7KD4IcQxZWXaOsUPcQHFT5gQ46ClKH78i9HyM2KEto/ihxDXGAMeLFqk32+zAXPnBrRK4QnFDyHuYRQ/6pwfzv8hoPgJG6QFwgjd3vyLGvAAAEaO1PaxD0KIa1S3N5sN2LvX/hjVY4U4oLpaLBMTg1sPQkIJMxc4Y4dJtfzI+4hENRQ/YYIj8VNSEth6RBtGt7c+fbR9/O4JcY20/KxbB+Tna32PiRO1Y9avt5+jTAzQ8kOIPUOG2JdVVOgfKKq1R7pzkKiG4idMMFpxJRzE8C9Gt7eYGOC550Si6GuuCV69CAkXpPhZvhy46CKx3ro18MYbwKFDQGwsUFQEHDwYvDqGBRQ/hGjMnAn06wc89ZT9PptN3zlSBQ/FDwHFT9igjpKqUPz4F6PlBwDuvBPYuFFM1CaEOMcsTH/btkL0ZGWJsNcA0K4dsHVrYOsWVlD8EKJx//0idGT79ub71RFjNckYO00EFD9hw6OPAu+8Y3+f8z72L0bLDyHEM8wCg7Rtq62PGqWtf/qp/+sTtlD8EGKPo8hDjsQPLT8EFD9hQ3IyMGGCvbWB4se/GAMeEEI8w5HlR/LUU8CgQWLdkXsvAcUPIWY4+nNWJ0pT/BADFD9hhvF/j+LHv5i5vRFC3MdsYLZdO209NhbIzRXrjgK7EFD8EGJGTIy5AFLz/tDtjRig+Akz7r1XLPv3F8vqakZJ8iVbtujDh9PtjZDG4crtDdDuL4ofJ1D8EGKO1aqtS/eYfv1EVBWAlh9iB8VPmDF2LPDbb8Bnn4ltm405u3zF1q1Az55ATo5WRssPIY3DzO2tRQv9NsWPG1D8EGKO2glSHy6TJ4slxQ8xQPEThpx6qr5DwXvZN6xYIZZmz0lafgjxDjPLT8eO+m2KHzeg+CHENSkp+u36erq9ETvigl0B4h1qku/qaqBJk+DVJVJQBU59vXAlZsADQhqHKn4eeECEtu7dW38MxY8bUPwQ4hqj+DE+VDhaTEDxE7bExopXXR0HMnyFKnCKi4HmzbXnJN3eCPEO1Uo9frxwxTci7z1Ge3OCfNBT/BBiTnq6/o+8eXO91Qeg+CEA6PYW1kjrD8WPb6iv19aPHRNLWn4IaRyq+FGjvKnQ8uMGtPwQ4pymTfXzf1q3thc/7DARUPyENVL87N/PEVNfoHa8jhwRwSW2bxfbtPwQ4h0JCcCCBcC77wKZmebHUPy4gRQ/qs8zIQS48EKxvPtu4PBhrTwujpYfYgrd3sIY+R84dKgIHXvgQFCrE/aoHa9ffgEWLdK2afkhxHvGj3e+n+LHDWj5IcScBQuADRuAgQOBJ5/UyisqaPkhptDyE8aoA4B//inm/xDvUTte27bp91H8EOI/KH7cgOKHEHNSU4HBg0WUoqIirdxM/NDyQ0DxE9YYvR8KC72/VkGBiMD07383rk7hjNrx2rpVv49ub4T4D4ofN6D4IcQ1t92mrVdWmouf0lLNAlRVBZSVBa5+JCSg+AljjOLnzz+9v9aMGcCmTfrnRrShDght2aLfR8sPIf6D4scNKH4Icc0TTwD/+Y9Yr6iwFzZHj4rACF26iO2uXYGMDODEiYBWkwQXip8wxih+7r8fuOoqYPZsz6/FTof+Ozh4UFu/7DL7jPSEEN9B8eMGFD+EuCYpSfxpA4DVKsSOyo8/AjabmCRdXQ3s2ye2f/kl8HUlQYMBD8IYo/j5+mux/PBDMWfljz/EpP04N1rZnWMiHbOO1z/+ATz+eODrQkg0IcVPTY2YuxgbG9z6hBzl5ZppmuKHEOeoiU4PHdLvs9m09X37tHU1RDaJeGj5CWMcRTy12YT1Z/FiYOlS965F8WMufrKyAl8PQqIN1a2U85ENFBWJGOHSr5nihxDnJCYCFotYN4qfkhJtfc8ebX3HDmD1ar9XjYQGFD9hjDvpHtTEnc6g+DEXP47ykhBCfIcqfuj6ZuDDD/WTtil+CHGOxaI9VKT4ad1aLGUGc0Avfm6+WYTK3rgxEDUkQYbiJ4xxR/y4+z+pupmoVuFowmzEmZYfQvxPbCwQHy/WKX4MpKXptyl+CHGNdH2T4keOZJaWaseo4kfy3Xd+rRYJDSh+whgz8WP0lbda3buWavmR82qjDVp+CAkeDHrgAKkKJRQ/hLhGih8Zvcjsz3z3bvsyTjiMCih+whgz8TNkiH67osK9a6nix91zIg3O+SEkeFD8OMAYgpfihxDXSPFz5IhYmokfM8tPtI7+RhkUP2GMUfw89xzQtq2+zN2OhDo3KNrFzz33aGXp6cGpCyHRhhQ/Q4cCP/0U1KqEFhQ/hHiOMTmfu+LHGBqbRCQUP2FMUpK2/vLLwJ13itxdKu4KGZnsGLBPiBwtSPEzerQIEf7991rAGEKIf5F9leJiYOzYoFYltDAmaXRnsich0Y4a7howFz/GSHCAZikiEQ1jfIUx6n9gaqpYGsWPu5Yf1dIbrZYfGfAgORk4//zg1oWQaEMdqC0oCF49Qg6j+DHOASKE2OOO+DGD4icqoOUnjHFH/NDy4z5SKBqt5YQQ/6PedzRuKBjd3jghmxDXGMVP+/bunUe3t6iA4ieM8aXlRxU/0Wr5ofghJHioz7OWLYNXj5DDaPkhhLjGKH5yctw7T7X8vPOOyA/E8NcRB93ewhhfWn7o9qaJH3UuFSEkMKgDrsbUNlENxQ8hnqOOYiYna0lOXaE+iK69ViwvvNDeAkvCGlp+whi6vfmOujpNANLyQ0jgkek4APb3dbDTRYjnqJafpk3FiEqMG13eI0fsM71HY6cowqH4CWPcET+vvgqcfjpw+LDza0W725sMdgBQ/BASDNRnVHGxtl5QIAYnohapBEeNAr78Mrh1ISRcUMVPRoYI3WrsIJlRXa2JnWbNtPLiYmDTJqBLF+Dtt31ZUxIEKH7CGHfEDwBs3Qo8+qjzplbd3qJxkIPih5Dgorq6VVSIZ9IvvwBt2gA33RS8egUdKX4eeEC43xBCXGMUP4B74gfQXN/UXBdr1gBLlwI7dwILFvikiiR4UPyEMaoF15n4AYD1650nrIl2y4+c7xMfz2BKhASDRYuAfv207ZISkWsLADZvDk6dQgLp9takSXDrQUg4oYofOd9H7SCpo8dDhwJ5edpxR44AVitw7Jh2zLp1QGmpWKdfbthD8RPGqK4gUvzIAQ4j27dT/DiDwQ4ICS7nnQf89BOQni62i4uBXbvEejQ+kxqQHS2KH0Lcp21bbf3BB8VSFT+DB2vrL7wAfPGFMDMDQFGRfb6fP/8UIzKAtiRhC8VPGFNbq60nJIhlXBxwyin2x5aVWVBSkuDwWtEe8IBhrgkJDWT/RBU/7obsjzhsNs3ywxB4hLjP5ZcDn34KFBYC55wjylTxM2iQti5HXGQuoP37hQBSKSjQLD9yScIWip8wRhU/Klu2AAsX2pf/9lsz+8KTRGuo6/Jy4Uov3WsofggJLqr42b1brEfTM0lHRYUWeYqWH0LcJz4euPhifYhrVfwMHKitS5cZKX727bMXP4WFFD8RBPP8hDGOxE9iItCqlX15YWGqw2tFq+Vn4ULgySe1gR+KH0KCi+yfHD9Ot7cGlzeLxT5pIyHEM1Tx06ED8NJLItqRjOpmZvlJTRWdooICTSRR/IQ9tPyEMWPHimW3bvb7zP4ni4oc9+yjdc7P3r1iKZ9lFD+EBBfZP9m1S7svo9btTbq8paa6l6OEEOIYVfykpgK33grcfbdW1qGDWO7fLyw9ANC7t1gWFmpzfSorRUAEErbwaRrGdOokBiM2brTfZ9aJLypyPHIYrW5vamJFQAscQQgJDrJ/smGDVlZTE6W5fhjsgBDfof7Bm40Qm7m99eolllVVwIED2rGM+BbWUPyEOZmZ+oiNEvW+lqGbCwsdi59odXuj+CEktDATP0CUWn9kB4vBDghpPAlK0Ccz8SMtPzt3Ak89JdZzcjS/+D//1I6l61tYQ/EToaiWn759xdKZ5YfiR0C3ekKCixQ/O3fqy6PJIt2A7GDJzhchxHtU8ZNgEv1WDY8tOeMMMcpshOGuwxqKnwhF7cT36CGW5eUJKC62P7auTu9SUlXl16qFFLT8EBJaZGebl0el5ef4cbFs5jhSJyHETVTBYzHJfRgfr9/esEEkP83Ksj+Wlp+whuInQlEtPy1bAi1binCpcoK/ijrfB9BbgSKZ2loxZ0qF4oeQ4NK1q3l5VFp+5GgVxQ8hjUeOBDtDzvH5v/8TbjMWi7nlh+InrGGo6wglTmnZpCQgJ8eGI0cs2LPHgrPO0h9rFDtGMRSpFBUB9fX6MoofQoKLI/ET1ZYfNUoVIcQ7zjkHeOstoHNnx8d88AGwejVwww1aGS0/EQfFTxSQlKTdu4cP2++PVsuP0eUN4JwfQoJNVpa4D6WlR6bZiErLD93eCPEt113nfH/37uKlkpNjfxzFT1hDt7coIClJ++8sLrb3czWKnWgWP7T8EBJcLBb9fdipk1hS/BBCgkLPnvZlFD9hDcVPBCPn9o0YATRtKub8mAU8oPjRoPghJPio85JllOeodHvjnB9Cgo+Z+FGjvR05EqUPqPCF4ieC2bcP+OknoE8fICNDlJlFZzRze7PZ/F69oEO3N0JCE9XrRAZvefddYNu24NQnYFRUAK+9BrzwgsgoT8sPIcHHLAS2tPzs3i3yA40eHdg6kUZB8RPBZGYC/fqJdTlf1pnbW1KSWNps0ZFNnZYfQkKTV14BBg4EPv1UG5D48EP3gjWFNW++Cdx8M3DHHcCDDzLgASGhgFlY7KNHxX06cKCw+qxcGfBqEe/xWPysWrUKY8eORXZ2NiwWCz755BPdfpvNhoceeght2rRBcnIyhg8fjt9//113zLFjx3DNNdcgPT0dTZs2xeTJk3HixIlGfRDiHOn2Zmb5keKnSRP7skhGTdYsofghJPh06QJ89x1w8cXm1tgTJyI0GfOuXdr6n3/S8kNIqPLJJ8JCe+iQVhZNSRLDHI/FT3l5Oc444wzMnj3bdP/TTz+NF198Ea+++ip++OEHpKamYtSoUahSfhTXXHMNtmzZgqVLl2LRokVYtWoVbrrpJu8/BXGJdHszm/Mj3d7UJOLRIH5o+SEk9FFzlgHCM6xzZ+HOW19bD/z1r8BVV4nY9eGOGo6zrIzih5BQYcECsezfXyzNIrDI+5WEPB6Huh49ejRGO/BttNlseP755/Hggw/iL3/5CwDgrbfeQmZmJj755BNcddVV2LZtG7766iusW7cOZ51MOPPSSy8hLy8Pzz77LLIdpfcmjcIdt7eUFGHdtdmiS/xkZGgWMc75ISS0MN6Ty5YJjXD4MFByrA7N5s4VD62RI4UQCmeOHNHWjx/XzFsUP4QEl/HjxejxmjWO5/ccOwa0aRPQahHv8Gmen927d6OgoADDhw9vKMvIyED//v2xZs0aXHXVVVizZg2aNm3aIHwAYPjw4YiJicEPP/yASy65xO661dXVqFZ646UnJ5pZrVZYrVZffoSIJTW1FkAciottsFprG8rLyoDycguAOCQk1CMx0YKqKgvKy62I5K+2uho4ciQeANClSz3WrxdG0ISE4H1u+Vvmbzp0YRsFnsTEGACxDdtLl9Y1bJd9/BWanYzOUtu6NWzKf0I4tlFsUVGDO4btwAHIoSpraioi6YEczm0ULbCNTEhJgSU9Xddxrv/rX2FZtQqWP/5A7eHDsAXw+2Ib6fHke/Cp+CkoKAAAZGZm6sozMzMb9hUUFKB169b6SsTFoXnz5g3HGJk5cyYeeeQRu/IlS5YghUP1blFYmAxgJI4dq0d+fj6qqmIxZ05PLF3aET16HAHQEhUVxxETkw4gHkuWrETbtpHoVC8oKhLfR1xcHeLjCwEIi+O6dSuwf39wE4osXbo0qO9PXMM2ChwHD3YD0LVh+6OPKgGI+Nc7HpmLDifLN331FfYpkVrCsY1G7NsH+Y9mOWmOtqakIH/x4uBVyo+EYxtFG2wjPakHD2K4sr3z2DG0tFjQDMD6pUtRYDax2s+wjQQVHiSD86n48RcPPPAA7rrrrobt0tJStG/fHiNHjkS6OlGFOOTwYaGIa2ricNppebjkkjjs2CHGFbdubQkAyMpqhqNHLaioAAYMOA+9egWtun5n7Vrx2du1i0GnTllYu1aU5+UNRVZWcOpktVqxdOlSjBgxAvHx8cGpBHEK2yjw/PJLDObP17YPHhTCJwmV6H9I+9Pv3awZeublhXUbxZlEcYhr2RJ5eXlBqI3/COc2ihbYRg44ehT4298aNjufeSYslZXA77+jX+fOsAXwXmUb6Sn1IPGsT8VP1sleY2FhIdoofo+FhYXo06dPwzFFhomptbW1OHbsWMP5RhITE5GYmGhXHh8fzwZ3kxYtAIvFBpvNghkz4rFjBxAXB9RqHnBITo5pSC5YXx+PSP5q5U8wO9uCuDhtHlTTpsH/3Pxdhz5so8ChRqFUSUEF5uJ6XIqP0A5/IvbPPxH73nuInTcP8TfcEH5tVFFhOona0qxZeH0ODwi7NopC2EYGWrXSbca2bCk6WADiSksRjA4E20jgyXfg0zw/nTp1QlZWFpYvX95QVlpaih9++AG5ubkAgNzcXBQXF2P9+vUNx3z99deor69HfxlFg/icmBggOVkonR9/FGVXXKE/JjMTkBozkgMeWK3AwoVi3Zi7jF6UhIQWxmhvkmNogdvxImamPi4K9u8HJk1CzNdf4zTVVBQuqJHeVBjsgJDQITZWC58LiPtT3qPHjgWnTsRjPBY/J06cwMaNG7Fx40YAIsjBxo0bsW/fPlgsFtxxxx147LHH8Nlnn2HTpk2YOHEisrOzMW7cOABA9+7dceGFF+LGG2/Ejz/+iO+//x633norrrrqKkZ68zOpqcL1TaaSMGrN7GxN/Mjw15HIm28C770n1i+9VL8vNtb+eEJI8Kivd76/qvXJWT/79jWUJZSV+bFGfkJGesvO1j+IDCPNhJAg07y5tt6smbZN8RM2eCx+fvrpJ/Tt2xd9+/YFANx1113o27cvHnroIQDAvffei9tuuw033XQTzj77bJw4cQJfffUVkpKSGq7xzjvvoFu3brjggguQl5eHQYMG4bXXXvPRRyKOkOJHYhQ/bdpEh+Xnt9/EcupUkR7kZLAoQkgI4sqN29auvVjZv7+hzBKON7W0/LRqpff1O+lSQwgJERyJH+b5CRs8nvMzdOhQ2Jz8sVgsFsyYMQMzZsxweEzz5s3x7rvvevrWpJGo4sdiAc44Q7jDyZHVNm3QMOcnksWPdKuXA6rh2E8iJFpw9SxKPKUd8C2AysqA1MdvqOLn6FEtI3XLlkGrEiHEBNUVtWlTWn7CEJ/O+SGhTVqaJn7atgWSkvQeFarbWySLH9lHcjSXgBASOtx8M+wiMHbvrq1n5iQBhvQJYQktP4SEB2qU4Wie81NTIxJLv/RS2M2VoPiJIk49VTPJduwolqr4iRa3N4ofQsKHrCzg4EHgsce0stNP19bbtoX9vJhwNOc6Ej+0/BASWsQoXWfV8hNtbm9btohJ1A89FJQod42B4ieKGDToz4Z12fFXf69ZWdER8MAofiZMEMuuXc2PJ4QEF4tFP9hqJ36aNtWfEI7i58+Tz+fsbCAtTSun+CEktLBo6TEQH6+JnyNHwvPZ4y0bNojlmWfqv5MwgOInisjK0nJIyI6EkhAdiYnRMefHKH5GjwZ++kkLAU4ICT3U6LKq+MnOhp34iauqCkidfMqBA2LZti3d3ggJZYwd/fbtRQequBjYtCkoVQoKMmVNv37BrYcXUPxEGcuX1+KCC4CnnxbbapJTILrc3mROH4tF3LvqyDIhJLRQ78+ePbX1Nm1gL37CMfiBtPwYxQ8tP4SEFkbxk5YG5OWJ9fffD3x9goUUP2eeGdx6eAHFT5QxeLANy5YBnTuLbaOFVoqfgweBcBw8dQfO+SEk/FDd7Dt0ELm65s0TyZnDXvzYbJr4addO/2EpfggJLWSG+E6dtLKrrhLL998X9/Pf/ibyiUTqSLLVCvzyi1in5YeEG6++KvLpPfGE2Jbi59lnw1LMuwXFDyHhR5ySmCE1VfQ1Jk48WRDu4qe0FCgvF+tt2+o7TOr8H0JI8LnkEmDFCmDdOq1szBjRmdq9W+Qce+UV4Uu/fHnQqulXduwQz6kmTYBTTgl2bTzG4zw/JLIYMgQoKRGdCUATPwCwbZsQ92EWxMMlFD+EhB8jRoj5eWedZbJTzbuBMBQ/0urTtKnwx1XFT5hNJCYk4rFYgPPO05elporJiL/+CixZopU7CoCwd6+Yf3DnnUCXLv6rq7/Yu1csTz1Vb6kOEyh+SIPwAbSAB5IDB4RPvc0WOWKB4oeQ8CM+HsjPd7DTmeWnuNg+Glyooc73ASLXVYaQSKZfPyF+PvtMKztxwvzYSy8V0dK++grYuTMw9fMlhw6JZZs2wa2Hl4SfXCN+RbX8AMCuXSKhYIcOkRP+muKHkAjDLNqbzQa8+KKwCr31VnDq5S5qpDeArm6EhCNyrsDnn2tlR4+aHyvDRO/a5d86+YuDB8WS4odEAkbx8+uvwJ49Inz97t1BqZLPofghJMIwiB+LzSbm0Nx+uyiYNAm47z7gt98CXzd3kC4kUvw8/TTQqxfwxhvBqxMhxDPMJkofO6atb9oE3H+/sEaHO9Lyk50d3Hp4Cd3eiA6j+Nm4UVsvLQ1oVfxCXZ1mwaL4ISRCMHNrKyvTbz/9NDBnjhjJCSUWLdIiznTvLpYdO4qRJ0JI+NCnjwh6oCZQPHoUmDtXhKeUc4FKSoJRO98S5m5vFD9Eh3HOz88/a+tFRYGtiz9Qw3dT/BASIbgjfgDHLijB5JlnRGSZsWNFeFxCSHiSkgKccYbm0gaIwZYbbtAfFwkZ1cNc/NDtjegwWn7UZMWRIH7UedAUP4RECGbix9FE41CitBRYvVqsP/+8PvoMIST8GDhQv71ypf0xkRBCV875CVO3N4ofosMoflQiSfwkJIRldEZCiBkZGXZFcUOGBKEiHrJiBVBbK/JkyMzThJDw5dxz9dv799sfY3Sxqa31X338QX09UFAg1mn5IZFApIufigqxpNWHkAgizt6D2+IsPOWGDeZucYFm6VKxHDUquPUghPgGo+XHDGPuruPH/VMXf3H0qBBsFguQmRns2ngFxQ/R4Uz8FBaK5a+/ivl7jnJ3hTKM9EZIlPPllyIfx4UXBrsmWgjNvn2DWw9CiG9o3x646CLTAZkG5HwZiRoRLhyQLm8tW4atCx/FD9Hh7HcsLT99+4r5e3PnBqRKXvHGG8DNN4t5xCoUP4RENvWTJzs/4KWXxFLOtQkmMoRmqCdhJYS4z+efA/v2Od7/xx/67VAMxOIMWX8Zmj8MofghOtSAAKedpt8nxU99vVi+805g6uQp1dXA5MnAa68BH3+s30fxQ0iE8vPPwKuvou7ll/HztGmOj5Mm7FBAip/09ODWgxDiW5o3N18H7N1mws3ys2yZWA4eHNx6NAKKH6JDDZDUoYN+X1GRPjz9tm2BqZOnqAO6xpyGFD+ERCh9+ghzr8WCGpMACA2EUrZmih9CIhN1DsGwYc6PDSfLj80GLF4s1keODG5dGgHFD9HRvr22bpzHdviwlogcEG6fu3YFpl6eIPOIAfo8RQDFDyHRQLUz8aNOLg72xEWKH0Iin6uucr4/nMTPH3+IAaT4eGDo0GDXxmsofoiOkSOBF14AVq0CsrL0+2pr7ZOOh4LbvBFV/KxfL5bV1cD/+3/A5ZeLbYofQiIXp+JHJZi5gGw2zZRO8UNI5LFihcjfdemlzo8LJ7c32ak66ywgLS24dWkETsJRkGjEYgH+/nex/sMP9vu//Va/vWOH/+vkKaqr2969YlDl6aeB557Tyil+CIlc3BY/JSVipKddO5GZPZBUVWn5PSh+CIk8zjtPvFwhc+aEA0eOiGWYJjeV0PJDHKK6vckocHKem2T79sDVxx1qa7XB3GbNxHLDBvt6p6QEtl6EkMBRl5Tk3oFr14qwtH36+LU+pkiXNyCsR1AJIW7w3nvAkCH6gQ4Z4j4/H6irC069PEW66LVsGdx6NBKKH+IQ1e2tf3+xlHN8ZPL0BQuAnj1DJ/iBGpDh/PPFct06YOtW/XHGBMuEkAjCmETQEZs3a+uBTjQoxU+TJkAM/4oJiWiuugpYuRI49VStbOZMEeb+0CHhVnP0qBiIefxxsf/ECeGzH0pIyw/FD4lUWrXS1qX4kQwfrq1v2SLm04QCxcVimZYGnHOOWP/wQ+FhogZf2b8/4FUjhIQa6kTjQPrwHjgAvP22WHfXRY8QEv7IOTOA6EiNHy/W338f+OAD4JdfgAcfFIMxXbtqI82hgnxmtmgR3Ho0Eoof4hBn4sfoxrpli//r4w5S/DRtKpK4A+JZAggLlcRoCSKERCFqIkJf+vDabCJyzPz55vvPOguYMUOsc74PIdHDgAFi2a8fEBurBUP48kv9ZOQnnhAhdX/8UevYhAK0/JBIp21b8f/92mv6ucBZWfZiaN8+5wmNA4UqfqQ7raRnT+DCC8X6tdcGslaEkEBT7ywBX+fOYqk+tH75BbBaffPmCxYAd9wBXHGFfTjtujp9olWKH0Kih7lzhauMDEt73nnCD3/fPjFBWfLss9r6zp0BraJTKH5INPD3vwM33gh06qSVXX+9cCG7804xcCFZujTg1bNDFT8tWgAdO2r7evUSVuUPPtAGXQkhkUndggWOLS9y9EYVP88/L0Z5ZAS2xqCGljSG0za611H8EBI9dO0qhE3z5mI7NRWQAzWOnlehJH7o9kaiifh4MZB53nnAAw+IsmeeEQOYt90mto33Z00N8MgjwmobKFTxAwDTpgmX+k6dgL/8RfQzrriC0d4IiXiaNQMuu8x8nwxlacyvsW0bsHy5tv3tt8Bjj3kWiWnPHhFFTiJHShctAmbP1o/uAhQ/hEQ7I0eKpWoRVgkl8UPLD4k2Zs0SObvkf3VsrBD/sh9hvG//9S/g4YftXeS8YedOMe9v0SKxXVUFjBkjBJiKUfzcfbco27UL6NKl8fUghIQ5nTs7DzLw/vva+pAhwP/9H/C//7l//YMH9dtHj4oRoLFjgVtvFaZnFYofQqKbrl3ty0aP1lxXvBU/R4+KoAqePL+cUVkJVFSIdVp+SLQjQ2Ib83R9/bXv3uPKK8Ug7NixYnv5chEa/957hRCSGMUPIYQ0MG8e8N139g+IESPEaA0gXE+MPrxGa40Rm01khT5+XB9vHxAjpVOmaNtffKHfT/FDSHRjtKK88ILo4Dz6qNj+4w/vrvvYY6KzNHFi4+pXVyeem3/+Kbbj4sL+uUXxQxqNI/GjRpFtLGp0SCPffaety1QdFD+EEAAiw3F2NvD556IT0KaNveVn/Hjh15ubC5SXCx9Z1ZTtKtfGsmUiitOgQfbiZ+dOYNMmbdsYAIEQEt2ooXUB7fkk3VU8tfyUlQFPPSUGZHzBSy+JeUnjxontli3dz6UWolD8kEbjyO1NuoYCYp7N7NneXd8sAJM6h3jxYm2dlh9CiI4LLhAjlhddpJUZxU9Ghkg0uny5cIurrBQjrxLp6uGIjz8Wy61b7cPSuuqAGOcdEUKiC6P4kR0YmRD1wAHPrD/vvw/cfz+wZo1Pqtcwv0DmNAlzlzeA4of4AGn5KSwE6uu1clX8zJ8v3N29SVb888/aerNmYllWppW9/754/fknxQ8hxA2MbiZSDCUnC+sPAHz1lbbfOI/HiNp5OXBAv8+V+Am1DO6EkMDStKlwJZPI51GLFkBenlhXI0i6wuiGA+g7Z54iR7glYR7sAKD4IT6gdWuxrK0VIaSPHxeeHZWV9seuXu359dXAScXFwv1UFT8HDgBXXy1yhknBRfFDCHGIzPMjUf3XzzxTLL/8UitzlcRMdWUzhrf87Tf74+PjgZkzRefmoYdc15cQErlYLHpBoVqm771XLN9807xTZYZZUlS10+QpMiy3JAKiR1H8kEaTkKDdG488Ajz4IFBUZH6s6qJmhs1m7xKvurvabOK+lvfxxRcDEyaI9cJC4KefxLq0EBFCiB3Z2UBSkratdjb69RNLtbOwf78IlnDZZdqkXxU52RDQLD3Gh5A6stuypXBLOXwY6NHDu89ACIkcVPGjjt4OGSJyc1RVAf/8JzB1qmsrjpn4aYx7rVE4ydDcYQzFD/EJqlX0iy+A3bvNj5NJjc147DHRP8jM1OcB3LtXf9yRI9q9eNppwDvvAOecI7ZlOg5afgghDomJ0Vt/VPHTp4/98dXVIrvzwoXA22/b71fFT2mpWJ5yiv4Y+ZACNDe5MJ80TAjxEWqnRX0eWSwiSAsg8o28+qrrULq+ED8vvyzmNKxZIwZpVIYP9+xaIQjFD/EJalCCvXvto7lKtm51HOxowQIxoHH4sP7eNoqfo0c18dOkiVj27Kk/xlkaD0IIQdu22rrq9paRYZ53Q7J5s32ZKn4kRtc6M/FDCCGAcKGRGMNIZ2frt1etAj780LEFyEz8mD2jHPHTTyJDfGEhMGeOvfgxusGFIRQ/xCcYA5E89pj5cdXVjkNgq/eXGjlOip+UFLFULT9S/PTqpR3fsiWQk+NevQkhUYrqZiIfJJJzz3V8npn4MetsGP3i1WzPFD+EEBVV/KgusoBm+ZE8+ihw5ZWIefxx82s1xvKzeDEwdKi2vXevFl73nHNcz10IEyh+iE+Qc3aNfQgzzFzmbTa9+JHBSsrKtAELOQ/56FHNs8TM8nPZZfbPDkII0aEKkBjDX+HAgdr6TTcBTz6piZ5t20R0FxWzUVXV7e3aa4WPriQCoiURQnxIfLzjfUbxc5LYRx9FijHHSFGR+fPIkfipqNB3vh58UOQ6k3z/vVjGxYnoUxEw3weg+CE+4oEHgBUrRERYOYCRkiLy/hkxEz9lZXrXOSl+ZJClpk2BTp3E+rx5ov8BmIufK6/09lMQQqIGo1uaiip+LrgAuO8+oHt38VCrrrY3dZt1Nrp3F3k6uncXSQLV3Bi0/BBCVLwQPwDQauNGbWPePDFp2mzStSPxc955wgX4pZeE6JG5RWSOIBlhLgISm6pQ/BCfkJQk7qG0NBHsqH9/cR+aWYLMxI/RpVQOZkiXt5wcbbB05UotApy8fmamyCN0/fUiOAohhDjlxhuBYcNEyGkj6pwf6d8eEwOcfrpYX7dOjNBMnQr8+qu5+GnZUozSbNwoRm9UP/nUVF99CkJIJCBdW8wwzvlRSN+3D9i+Hfj730UHyBFmz6iSEjG/x2oV5//3vyJqVLt2ohOXlqYdG2EDNnQOIj6nTx8tN89772nlmZlC1BjFz/TpgNF1taBADEJIy09OjvkcOzkv0GIRAxeEEOIWKSnA8uXm+ywWYNEiIXKGDdPKc3NF2Y03Ah06AL//LqIvSfr21UZOMzKA2FjxAvQdCaObHSEkurn7buECc/HF9vvMLD+JiUB1NZrs24e4yy/Xh8g1w8zys2WLfvuZZ8Ry4EDxDOzaFVi/XpRR/BDiPur//emnC/FjTIA+Y4a23qKFmNOzZ484V6bc6NDB/PruzDEihBCPGTNGvFQefliMsi5ZIoSPigyfrYofFdVlRH0wEkJIYqKYW2iGmfgZORL4/HOk790Li5wE7QxV/KxfD2zYYJ+QWY5MS7dfVfxEQIQ3FQ4/Eb+iihOZy0+1/FRX64+XXiUSed/l5AA33GAf0prihxASMJo1M8/zAwjXNnV0NDHR/pj/+z8xEfKaa/xSPUJIBGLm9jZ+PGwWCxLdET6Alnm+rAwYPFgEcvnvf0VZx476Y2Uen0mTnNchjKH4IX5FHeCU4uerr8R9B4gACSo5OeYeITk5Yk7epk3CHVVC8UMICSitWgFTpoj1G27Qyo8dcx3FbcYMMZFYxu0nhBBXqAlQn38euOce4Lrr7BMpO2P1amG53r1bC2IgUUVOt24iSAsgrEtr1wo332nTvKx8aELxQ/xKUpK2rlp1Xn9d9AGMLvetWpnn7VLz9qjWV4ofQkjAeekl4H//A158UV8uJxwPGhTwKhFCIhSLRQQmWLYMuP124OmngZgY1F9wgXbMtGnAO++Yn//gg2L50kvaRGqViy7S1tUcP4AIfPDaa/pQ/REA5/wQv6IKmXPOEfOFZQRFszyCjubUqXN+1EEQM88SQgjxK0lJIncPAIwfDyxcKNZPOQU4dEi4xxFCiK+QE6AV6p9+Gnv370enTZtgmTJFRJsyc6m9/36Ref7YMRF9EhCBFZKTRdb4M84Qkac++0xYh6IAWn6IX6mr09aTkoTldeJEx8cnJprnBmrdWltXxU8EhZ0nhIQjr70mhJA0Y2dlcVSGEOJ/kpOx6aabULtzpxA+jkhN1UaQly4Vyw4dgPffF9ak+HghejZsEGF5owCKH+JXzFzYnIWzr6kB5s/XR48F9POAVPFDCCFBpXlz4QKnhsQmhJBgIHN+nHqqWI4dK5Yyd9mqVWLpKIRulEDxQ/yK2SCCifUWcXEikMH114vlzTc7vqaci0cIIYQQQk4ybZpIrrxtG/Dbb5pLrpq4GQDatw983UIIzvkhfuWWW0ROQDn4AJhbZ999F7jsMvfc2G6/XSRVV69JCCGEEBLVWCwiYhugWX8Ae/ET5ZYfih/iV5KS7AOQpKUJN9Njx4ArrhBl6en2wufuu4FnnxXz9FSSk4VYIoQQQgghLpCCSELLDyGBR0ZoHDdOzLGTCYVVnngCuPJKoG/fgFaNEEIIISRyOOcckRukrExst2kT3PoEGYofElQ+/lhEhIuNtd8XHw+cdVbg60QIIYQQEjGkpwNbtwqXmm7dxETrKCa6Pz0JCcyEDyGEEEII8RHt2onw1oTR3gghhBBCCCHRAcUPIYQQQgghJCqg+CGEEEIIIYREBRQ/hBBCCCGEkKiA4ocQQgghhBASFVD8EEIIIYQQQqICih9CCCGEEEJIVEDxQwghhBBCCIkKgip+Zs+ejY4dOyIpKQn9+/fHjz/+GMzqEEIIIYQQQiKYoImfDz74AHfddRemT5+ODRs24IwzzsCoUaNQVFQUrCoRQgghhBBCIpigiZ/nnnsON954I2644Qb06NEDr776KlJSUvDGG28Eq0qEEEIIIYSQCCYuGG9aU1OD9evX44EHHmgoi4mJwfDhw7FmzRq746urq1FdXd2wXVpaCgCwWq2wWq3+r3AEIL8nfl+hC9so9GEbhT5so9CHbRT6sI1CH7aRHk++B4vNZrP5sS6mHDx4EG3btsXq1auRm5vbUH7vvfdi5cqV+OGHH3THP/zww3jkkUfsrvPuu+8iJSXF7/UlhBBCCCGEhCYVFRWYMGECSkpKkJ6e7vTYoFh+POWBBx7AXXfd1bBdWlqK9u3bY+TIkS4/IBFYrVYsXboUI0aMQHx8fLCrQ0xgG4U+bKPQh20U+rCNQh+2UejDNtIjvcLcISjip2XLloiNjUVhYaGuvLCwEFlZWXbHJyYmIjExsWFbGqsqKyvZ4G5itVpRUVGByspK1NbWBrs6xAS2UejDNgp92EahD9so9GEbhT5sIz2VlZUANI3gjKCIn4SEBPTr1w/Lly/HuHHjAAD19fVYvnw5br31Vpfnl5WVAQDat2/vz2oSQgghhBBCwoSysjJkZGQ4PSZobm933XUXJk2ahLPOOgvnnHMOnn/+eZSXl+OGG25weW52djb279+PJk2awGKxBKC24Y90Fdy/fz9dBUMUtlHowzYKfdhGoQ/bKPRhG4U+bCM9NpsNZWVlyM7Odnls0MTPlVdeicOHD+Ohhx5CQUEB+vTpg6+++gqZmZkuz42JiUG7du0CUMvIIz09nTdJiMM2Cn3YRqEP2yj0YRuFPmyj0IdtpOHK4iMJasCDW2+91S03N0IIIYQQQghpLEFLckoIIYQQQgghgYTiJ0pITEzE9OnTdVHzSGjBNgp92EahD9so9GEbhT5so9CHbeQ9QUlySgghhBBCCCGBhpYfQgghhBBCSFRA8UMIIYQQQgiJCih+CCGEEEIIIVEBxQ8hhBBCCCEkKqD4IYQQQgghhEQFFD8hzKpVqzB27FhkZ2fDYrHgk08+cXjsLbfcAovFgueff15X/vjjj+Pcc89FSkoKmjZtanruvn37MGbMGKSkpKB169a45557UFtbqztmxYoVOPPMM5GYmIguXbpg7ty5jftwEUJj22jPnj2YPHkyOnXqhOTkZJxyyimYPn06ampqdOf++uuvGDx4MJKSktC+fXs8/fTTdtefP38+unXrhqSkJPTq1Qv5+fm++phhjS/uo4svvhgdOnRAUlIS2rRpg+uuuw4HDx7UHcM28h5ftJGkuroaffr0gcViwcaNG3X72Ebe44s26tixIywWi+715JNP6o5hG3mPr+6jL774Av3790dycjKaNWuGcePG6fazz+A9jW2jFStW2N1D8rVu3bqG43gfOYfiJ4QpLy/HGWecgdmzZzs97uOPP8batWuRnZ1tt6+mpgaXX345pk6danpuXV0dxowZg5qaGqxevRrz5s3D3Llz8dBDDzUcs3v3bowZMwbnn38+Nm7ciDvuuANTpkzB4sWLG/cBI4DGttH27dtRX1+P//znP9iyZQtmzZqFV199Ff/4xz8ajiktLcXIkSORk5OD9evX45lnnsHDDz+M1157reGY1atX4+qrr8bkyZPx888/Y9y4cRg3bhw2b97s2w8chvjiPjr//PPx4YcfYseOHVi4cCF27tyJyy67rGE/26hx+KKNJPfee6/pfrZR4/BVG82YMQOHDh1qeN12220N+9hGjcMXbbRw4UJcd911uOGGG/DLL7/g+++/x4QJExr2s8/QOBrbRueee67u/jl0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# hisotory_data: np.array, future_data: np.array, line_width: float = 1.5, font_size: int = 16, history_color=\"blue\", future_color=\"red\", figure_size: tuple = (10, 5)\n", + "plot_sample(history_data=random_sample_history, future_data=random_sample_future, history_index=random_index_history, future_index=random_index_future, line_width=1.5, font_size=16, history_color=\"blue\", future_color=\"red\", figure_size=(10, 5))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.9.13 ('BasicTS')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "570e84022352e67d0b4c22ae3a496a4293591fb172aae1ab664241200ab519d2" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/data_visualization/distribution_visualization.ipynb b/scripts/data_visualization/distribution_visualization.ipynb new file mode 100644 index 0000000..64a391b --- /dev/null +++ b/scripts/data_visualization/distribution_visualization.ipynb @@ -0,0 +1,292 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# change dir\n", + "import os\n", + "PROJECT_DIR = os.path.abspath(os.path.abspath('') + \"/../..\")\n", + "print(f\"Changing directory to {PROJECT_DIR}\")\n", + "os.chdir(PROJECT_DIR)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.manifold import TSNE\n", + "from sklearn.neighbors import KernelDensity\n", + "\n", + "from basicts.data import TimeSeriesForecastingDataset\n", + "from basicts.utils import get_regular_settings\n", + "\n", + "DATA_NAME = \"PEMS07\"\n", + "\n", + "NUM_SAMPLES_PLOT = 1000 # number of samples used to plot\n", + "\n", + "\n", + "regular_settings = get_regular_settings(DATA_NAME)\n", + "INPUT_LEN = regular_settings['INPUT_LEN'] # Length of input sequence\n", + "OUTPUT_LEN = regular_settings['OUTPUT_LEN'] # Length of output sequence\n", + "TRAIN_VAL_TEST_RATIO = regular_settings['TRAIN_VAL_TEST_RATIO'] # Train/Validation/Test split ratios\n", + "RESCALE = regular_settings['RESCALE'] # Whether to rescale the data\n", + "NULL_VAL = regular_settings['NULL_VAL'] # Null value in the data\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# KDE\n", + "def get_kde_pair(data1, data2, bandwidth=5, kernel='gaussian'):\n", + " eps = 1e-6\n", + " \n", + " data_min = min(data1.min(), data2.min())\n", + " data_max = max(data1.max(), data2.max())\n", + " step = (data_max - data_min) / 1000\n", + " # get kde\n", + " kde1 = KernelDensity(bandwidth=bandwidth, kernel=kernel).fit(data1)\n", + " kde2 = KernelDensity(bandwidth=bandwidth, kernel=kernel).fit(data2)\n", + " # get boundary\n", + " while True:\n", + " p1, p2 = np.exp(kde1.score(np.array([data_min]).reshape(-1, 1))), np.exp(kde2.score(np.array([data_min]).reshape(-1, 1)))\n", + " p = max(p1, p2)\n", + " if p < eps: break\n", + " else: data_min = data_min - step\n", + " while True:\n", + " p1, p2 = np.exp(kde1.score(np.array([data_max]).reshape(-1, 1))), np.exp(kde2.score(np.array([data_max]).reshape(-1, 1)))\n", + " p = max(p1, p2)\n", + " if p < eps: break\n", + " else: data_max = data_max + step\n", + " x = np.linspace(data_min, data_max, 1000)\n", + " # get curves\n", + " kde1_curve = np.exp(kde1.score_samples(x.reshape(-1, 1)))\n", + " kde2_curve = np.exp(kde2.score_samples(x.reshape(-1, 1)))\n", + " return x, kde1_curve, kde2_curve\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "dataset_param = {\n", + " 'dataset_name': DATA_NAME,\n", + " 'train_val_test_ratio': TRAIN_VAL_TEST_RATIO,\n", + " 'input_len': INPUT_LEN,\n", + " 'output_len': OUTPUT_LEN,\n", + "}\n", + "# get dataloader\n", + "train_dataset = TimeSeriesForecastingDataset(**dataset_param, mode='train')\n", + "valid_dataset = TimeSeriesForecastingDataset(**dataset_param, mode='valid')\n", + "test_dataset = TimeSeriesForecastingDataset(**dataset_param, mode='test')\n", + "\n", + "# the whole training data\n", + "train_data = np.stack([train_dataset[i]['inputs'][:, :, 0] for i in range(len(train_dataset))], axis=0) # train_dataset[i]: (future_data, history_data)\n", + "valid_data = np.stack([valid_dataset[i]['inputs'][:, :, 0] for i in range(len(valid_dataset))], axis=0)\n", + "test_data = np.stack([test_dataset[i]['inputs'][:, :, 0] for i in range(len(test_dataset))], axis=0) # [num_samples, input_len, num_nodes]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "train_data = torch.from_numpy(train_data).float()\n", + "valid_data = torch.from_numpy(valid_data).float()\n", + "test_data = torch.from_numpy(test_data).float()\n", + "\n", + "train_data = train_data.transpose(1, 2).contiguous().view(-1, train_data.size(-2)) # [num_samples * num_nodes, input_len]\n", + "valid_data = valid_data.transpose(1, 2).contiguous().view(-1, valid_data.size(-2))\n", + "test_data = test_data.transpose(1, 2).contiguous().view(-1, test_data.size(-2))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# t-SNE visualization\n", + "# 指定默认字体为 Times New Roman\n", + "# plt.rcParams['font.sans-serif'] = ['Times New Roman']\n", + "plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题\n", + "\n", + "import numpy as np\n", + "\n", + "train_random_indices = np.random.choice(train_data.size(0), NUM_SAMPLES_PLOT, replace=False)\n", + "valid_random_indices = np.random.choice(valid_data.size(0), NUM_SAMPLES_PLOT, replace=False)\n", + "test_random_indices = np.random.choice(test_data.size(0), NUM_SAMPLES_PLOT, replace=False)\n", + "train_data_sample = train_data[train_random_indices].numpy()\n", + "valid_data_sample = valid_data[valid_random_indices].numpy()\n", + "test_data_sample = test_data[test_random_indices].numpy()\n", + "\n", + "# concatenate all data\n", + "all_data = np.concatenate([train_data_sample, valid_data_sample, test_data_sample], axis=0)\n", + "data_tsne = TSNE(n_components=2, random_state=0).fit_transform(all_data)\n", + "\n", + "# get each data\n", + "train_tsne = data_tsne[:NUM_SAMPLES_PLOT]\n", + "valid_tsne = data_tsne[NUM_SAMPLES_PLOT:2*NUM_SAMPLES_PLOT]\n", + "test_tsne = data_tsne[2*NUM_SAMPLES_PLOT:3*NUM_SAMPLES_PLOT]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "up_x, up_kde1, up_kde2 = get_kde_pair(train_tsne[:, [0]], test_tsne[:, [0]])\n", + "right_x, right_kde1, right_kde2 = get_kde_pair(train_tsne[:, [1]], test_tsne[:, [1]])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x_min, x_max = up_x.min(), up_x.max()\n", + "y_min, y_max = right_x.min(), right_x.max()\n", + "# plt.gca().set_facecolor('#eeeefe')\n", + "plt.scatter(train_tsne[:, 0], train_tsne[:, 1], c='#1744a8', label='Training', edgecolors='#11317c', alpha=0.2)\n", + "plt.scatter(test_tsne[:, 0], test_tsne[:, 1], c='#b90104', label='Testing', edgecolors='#7e0004', alpha=0.2)\n", + "plt.xlim(x_min, x_max)\n", + "plt.ylim(y_min, y_max)\n", + "plt.grid(color = 'gray', linestyle = '--', linewidth = 0.5)\n", + "plt.legend(title=\"Period\", fontsize=15, markerscale=1.5, title_fontsize=15, alignment=\"right\")\n", + "# save\n", + "plt.savefig('kde_tsne_{0}.png'.format(DATA_NAME), dpi=300, bbox_inches='tight')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plt upper kde\n", + "## set size\n", + "plt.figure(figsize=(7, 1.5))\n", + "plt.grid(color = 'gray', linestyle = '--', linewidth = 0.5)\n", + "plt.plot(up_x, up_kde1, label='train', c='#1744a8', alpha=0.8)\n", + "plt.plot(up_x, up_kde2, label='test', c='#b90104', alpha=0.8)\n", + "# plt.xticks([])\n", + "plt.yticks([])\n", + "plt.xlim(x_min, x_max)\n", + "plt.ylim(0, max(max(up_kde1), max(up_kde2)) * 1.1)\n", + "plt.fill_between(x=up_x, y1=0, y2=up_kde1, facecolor='#1744a8', alpha=0.3)\n", + "plt.fill_between(x=up_x, y1=0, y2=up_kde2, facecolor='#b90104', alpha=0.3)\n", + "# save\n", + "plt.savefig('kde_tsne_{0}_up.png'.format(DATA_NAME), dpi=300, bbox_inches='tight')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plt right kde\n", + "## set size\n", + "plt.figure(figsize=(7, 1.5))\n", + "plt.grid(color = 'gray', linestyle = '--', linewidth = 0.5)\n", + "plt.plot(right_x, right_kde1, label='train', c='#1744a8', alpha=0.8)\n", + "plt.plot(right_x, right_kde2, label='test', c='#b90104', alpha=0.8)\n", + "# plt.xticks([])\n", + "plt.yticks([])\n", + "plt.xlim(y_min, y_max)\n", + "plt.ylim(0, max(max(right_kde1), max(right_kde2)) * 1.1)\n", + "plt.fill_between(x=right_x, y1=0, y2=right_kde1, facecolor='#1744a8', alpha=0.3)\n", + "plt.fill_between(x=right_x, y1=0, y2=right_kde2, facecolor='#b90104', alpha=0.3)\n", + "# save\n", + "plt.savefig('kde_tsne_{0}_right.png'.format(DATA_NAME), dpi=300, bbox_inches='tight')\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "th231", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/data_visualization/indistinguishability.ipynb b/scripts/data_visualization/indistinguishability.ipynb new file mode 100644 index 0000000..ad2d6d4 --- /dev/null +++ b/scripts/data_visualization/indistinguishability.ipynb @@ -0,0 +1,251 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import sys\n", + "import math\n", + "import torch\n", + "\n", + "PROJECT_DIR = os.path.abspath(os.path.abspath('') + \"/../..\")\n", + "os.chdir(PROJECT_DIR)\n", + "\n", + "import numpy as np\n", + "from tqdm import tqdm\n", + "from basicts.data import TimeSeriesForecastingDataset\n", + "from basicts.utils import get_regular_settings\n", + "from basicts.scaler import ZScoreScaler\n", + "\n", + "\n", + "metric = \"cosine\" # metric used to calculate the similarity.\n", + "device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n", + "\n", + "DATA_NAME = \"METR-LA\"\n", + "DATA_NAME = \"ETTh1\"\n", + "BATCH_SIZE = 8\n", + "regular_settings = get_regular_settings(DATA_NAME)\n", + "INPUT_LEN = regular_settings['INPUT_LEN'] # Length of input sequence\n", + "OUTPUT_LEN = regular_settings['OUTPUT_LEN'] # Length of output sequence\n", + "TRAIN_VAL_TEST_RATIO = regular_settings['TRAIN_VAL_TEST_RATIO'] # Train/Validation/Test split ratios\n", + "RESCALE = regular_settings['RESCALE'] # Whether to rescale the data\n", + "NULL_VAL = regular_settings['NULL_VAL'] # Null value in the data\n", + "NORM_EACH_CHANNEL = regular_settings['NORM_EACH_CHANNEL'] # Whether to normalize each channel\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## utilities" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# similarity computation\n", + "def cosine_similarity(x, y):\n", + " # denominator\n", + " l2_x = torch.norm(x, dim=2, p=2) + 1e-7\n", + " l2_y = torch.norm(y, dim=2, p=2) + 1e-7\n", + " l2_n = torch.matmul(l2_x.unsqueeze(dim=2), l2_y.unsqueeze(dim=2).transpose(1, 2))\n", + " # numerator\n", + " l2_d = torch.matmul(x, y.transpose(1, 2))\n", + " return l2_d / l2_n\n", + "\n", + "def get_similarity_matrix(data, metric):\n", + " if metric == \"cosine\":\n", + " sim = cosine_similarity(data, data)\n", + " elif metric == \"mse\":\n", + " sim = torch.cdist(data, data, p=2)\n", + " elif metric == \"mae\":\n", + " sim = torch.cdist(data, data, p=1)\n", + " else:\n", + " raise NotImplementedError\n", + " return sim" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "dataset_param = {\n", + " 'dataset_name': DATA_NAME,\n", + " 'train_val_test_ratio': TRAIN_VAL_TEST_RATIO,\n", + " 'input_len': INPUT_LEN,\n", + " 'output_len': OUTPUT_LEN,\n", + "}\n", + "# get dataloader\n", + "dataset = TimeSeriesForecastingDataset(**dataset_param, mode='train')\n", + "# the whole training data\n", + "dataloader = torch.utils.data.DataLoader(dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=3)\n", + "\n", + "scaler_param = {\n", + " 'dataset_name': DATA_NAME,\n", + " 'train_ratio': TRAIN_VAL_TEST_RATIO[0],\n", + " 'norm_each_channel': NORM_EACH_CHANNEL,\n", + " 'rescale': RESCALE,\n", + "}\n", + "scaler = ZScoreScaler(**scaler_param)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Similarity Matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 997/997 [00:02<00:00, 412.47it/s]\n" + ] + } + ], + "source": [ + "# get similarity matrices\n", + "\n", + "# inference pipeline for a given dataloader\n", + "history_adjs_all = []\n", + "future_adjs_all = []\n", + "def inference(dataloader):\n", + " for batch in tqdm(dataloader):\n", + " future_data, history_data = batch['target'], batch['inputs']\n", + " future_data = scaler.transform(future_data)\n", + " history_data = scaler.transform(history_data)\n", + " history_data = history_data[..., 0].transpose(1, 2) # batch_size, num_nodes, history_seq_len\n", + " future_data = future_data[..., 0].transpose(1, 2) # batch_size, num_nodes, future_seq_len\n", + " history_adjs = get_similarity_matrix(history_data, metric) # batch_size, num_nodes, num_nodes\n", + " future_adjs = get_similarity_matrix(future_data, metric) # batch_size, num_nodes, num_nodes\n", + " history_adjs_all.append(history_adjs)\n", + " future_adjs_all.append(future_adjs)\n", + "# get similarity matrices\n", + "# for mode in [\"valid\"]:\n", + "for mode in [\"train\"]:\n", + " inference(dataloader)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "torch.Size([7969, 7, 7])\n" + ] + } + ], + "source": [ + "# get spatial indistinguishability ratio\n", + "history_similarity = torch.cat(history_adjs_all, dim=0).detach().cpu() # num_samples, num_modes, num_nodes\n", + "future_similarity = torch.cat(future_adjs_all, dim=0).detach().cpu() # num_samples, num_modes, num_nodes\n", + "L, N, N = future_similarity.shape\n", + "print(future_similarity.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Get Spatial Indistinguishability Ratio" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "e_u = 0.9\n", + "e_l = 0.4\n", + "\n", + "history_similarity_filtered = torch.where(history_similarity > e_u, torch.ones_like(history_similarity), torch.zeros_like(history_similarity))\n", + "future_similarity_filtered = torch.where(future_similarity < e_l, torch.ones_like(future_similarity), torch.zeros_like(future_similarity))\n", + "overlap = history_similarity_filtered * future_similarity_filtered\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(3.8568)\n" + ] + } + ], + "source": [ + "# overlap ratio\n", + "overlap_ratio = overlap.sum() / (L * N * N)\n", + "print(overlap_ratio * 1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor(15.7748)\n" + ] + } + ], + "source": [ + "# indistinguishability ratio\n", + "indistinguishability_ratio = overlap.sum() / history_similarity_filtered.sum()\n", + "print(indistinguishability_ratio * 1000)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "BasicTS", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/data_visualization/pred_visualization.ipynb b/scripts/data_visualization/pred_visualization.ipynb new file mode 100644 index 0000000..6fe7146 --- /dev/null +++ b/scripts/data_visualization/pred_visualization.ipynb @@ -0,0 +1,136 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Changing directory to /home/S22/workspace/BasicTS\n" + ] + } + ], + "source": [ + "# change dir\n", + "import os\n", + "PROJECT_DIR = os.path.abspath(os.path.abspath('') + \"/../..\")\n", + "print(f\"Changing directory to {PROJECT_DIR}\")\n", + "os.chdir(PROJECT_DIR)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# import packages\n", + "import random\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# hyperparameters\n", + "test_results_path = \"checkpoints/STID/PEMS08_100_336_336/97d131cadc14bd2b9ffa892d59d55129/test_results.npz\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# load test_results.npz\n", + "test_results = np.load(test_results_path)\n", + "print(test_results.files)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "prediction = test_results['prediction'] # B, L, N, C\n", + "target = test_results['target'] # B, L, N, C\n", + "inputs = test_results['inputs'] # B, L, N, C" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# select random sample\n", + "sample_id = random.randint(0, prediction.shape[0])\n", + "time_series_id = random.randint(0, prediction.shape[2]-1)\n", + "channel_id = random.randint(0, prediction.shape[3]-1)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0cAAAGsCAYAAAAWptzrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC5sklEQVR4nOzdd5hU9fX48ff0tr0v7LL0XgUVxAKooGKLNdHYYotiEjVqvv4STaJJTIyxJBqTWMCusZeoiIioNBGk97os23ubPvP7407dwrJsubsz5/U8PMzcOzN7ljI7557zOR+N3+/3I4QQQgghhBBxTqt2AEIIIYQQQgjRF0hyJIQQQgghhBBIciSEEEIIIYQQgCRHQgghhBBCCAFIciSEEEIIIYQQgCRHQgghhBBCCAFIciSEEEIIIYQQAOjVDuBY+Hw+iouLSUxMRKPRqB2OEEIIIYQQQiV+v5+GhgYGDBiAVtu12k+/TI6Ki4vJz89XOwwhhBBCCCFEH3Ho0CHy8vK69Br9MjlKTEwElD+ApKQklaMRQgghhBBCqKW+vp78/PxQjtAV/TI5CrbSJSUlSXIkhBBCCCGE6JblNjKQQQghhBBCCCGQ5EgIIYQQQgghAEmOhBBCCCGEEALop2uOhBBCCCGEaI/X68XtdqsdhugmBoMBnU7XK19LkiMhhBBCCBET/H4/paWl1NbWqh2K6GYpKSnk5OT0+B6nkhwJIYQQQoiYEEyMsrKysFqtPf5BWvQ8v99Pc3Mz5eXlAOTm5vbo15PkSAghhBBC9HterzeUGKWnp6sdjuhGFosFgPLycrKysnq0xU4GMgghhBBCiH4vuMbIarWqHInoCcG/155eSybJkRBCCCGEiBnSShebeuvvVZIjIYQQQgghhECSIyGEEEIIIYQAJDkSQgghhBBCVbNmzeL2229v97xGo+G9997rtXjimSRHQgghhBBC9GElJSWcffbZR/VYSaS6RpIjIYQ4Bj6fn11lDfh8frVDEUIIEeNycnIwmUy9+jV7eipcXyXJkRBCHIOHF+9k7mNf8eSyPWqHIoQQoh1+v59ml0eVX35/5y6e+Xw+7rnnHtLS0sjJyeF3v/td6FxkNcjlcnHbbbeRm5uL2WymoKCAhx56CIDBgwcD8IMf/ACNRhO6D/D0008zbNgwjEYjo0aN4qWXXor6+hqNhqeffprzzz8fm83GH/7wB4YPH84jjzwS9bgNGzag0WjYsyc2f/7JJrBCCHEM/rV8LwCPLtnFz08foXI0Qggh2mJ3exl7/2JVvva2B+ZhNR79R+0XXniBO++8kzVr1rBq1SquvfZaZs6cyZlnnhn1uL///e988MEH/Pe//2XQoEEcOnSIQ4cOAbB27VqysrJYuHAhZ511Vmiz1HfffZdf/OIXPP7445xxxhl89NFHXHfddeTl5TF79uzQa//ud7/jz3/+M48//jh6vR6TycTChQu56667Qo9ZuHAhp556KsOHD+/KH0+fJcmREEIIIYQQKps4cSK//e1vARgxYgRPPvkkS5cubZUcFRYWMmLECE4++WQ0Gg0FBQWhc5mZmQCkpKSQk5MTOv7II49w7bXXcuuttwJw5513snr1ah555JGo5OiKK67guuuuC92/9tpruf/++/n222854YQTcLvdvPrqq62qSbFEkiMhhBBCCBGTLAYd2x6Yp9rX7oyJEydG3c/NzaW8vLzV46699lrOPPNMRo0axVlnncW5557L3Llzj/ja27dv56abboo6NnPmTJ544omoY9OmTYu6P2DAAObPn8/zzz/PCSecwIcffojT6eTSSy/tzLfWr0hyJIQQx0CjgU62kwshhOhlGo2mU61tajIYDFH3NRoNPp+v1eOOO+449u/fzyeffMLnn3/OZZddxhlnnMFbb73V5RhsNlurYzfccANXXXUVjz32GAsXLuTyyy/HarV2+Wv1VTKQQQghjkFnrwgKIYQQ3SUpKYnLL7+cZ555hjfeeIO3336b6upqQEmyvF5v1OPHjBnDihUroo6tWLGCsWPHdvi1zjnnHGw2G08//TSffvopP/nJT7rvG+mD+kcqLYQQfYzVqKPZpfzw8fn8aLUalSMSQggRDx599FFyc3OZMmUKWq2WN998k5ycHFJSUgBlYt3SpUuZOXMmJpOJ1NRU7r77bi677DKmTJnCGWecwYcffsg777zD559/3uHX0+l0XHvttdx7772MGDGCGTNm9PB3qC6pHAkhxDEwR1SO6uzKXhAOt5c/fLSNn7/2Pd/srlQrNCGEEDEsMTGRhx9+mGnTpnH88cdz4MABPv74Y7Ra5WP93/72N5YsWUJ+fj5TpkwB4MILL+SJJ57gkUceYdy4cfz73/9m4cKFzJo166i+5vXXX4/L5Yoa1hCrNP7O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Dit2vkXc/g3EbH6DKRlpLI+MZMa++dwcPcB77LLEdGiv58nxTzIhe4KP04uIfLYzE87krhF3cX7m+USHBtdJZ4cxxtgd4mTV1NQQHx9PdXU1cXGadSyYzVy3j+//cwPRYSF4DDS2tpOVGMneSusCQJfTwWu3n88Nn1r36O+3nseFA1NYt+cw10//EGPgH7flM/aMZDtehojIsTztULqFV/fO57GtLzOsuZnXDpQCsPfaP3HlhsdxOVws/drSoDorKyLS3bqzNtA1R+LXrhnRh5HZbupb2mlstWZrys9N8u5v8xheWnbsgoord1mzPT36zlaMgevP7aPCSET8izMEMoZz+dlTcACbw8M54AqhFXjwwHwARqWNUmEkIuJDKo7ErzmdDn52Zddx9mdldD0jMGfTkalwk2PCAFix6xBbDlSzpvgwLqeD+68Y3PNhRUROQXJkMqPizgBgdnQ0ryeksKZ8HdGh0TyQ/4DN6UREehcVR+L3RuUkdPm9pd1z3OOeu3kUb9w5FoAN+6p44b9Wj9IVw9JJjYvo2ZAiIqfhmmFTAHguIZ5pbmuWznvOvYcz3GfYGUtEpNdRcSR+z+Fw8PhXhgNw24W5XDo4FYDkmPAux43Iiic7MYq+CZG0thtmrrMWlP2f83N8G1hE5CRdPeAaxkZl0doxVbc73M21A661N5SISC+k2eokIHw1L4uRWW6yEqOICA3h/R9cRGpcBGt3H+bef64nJymK9LgIHA4HN+Zl8Yf52wE4My2G83ITbU4vIvL5nA4nj131Kk988CAfHNrEnefcRaQr0u5YIiK9jmark4DX1NqOy+nAFWJ1hJbVNjF22kLaPIZfXTOU/xnTz96AIiIiItJjurM2UM+RBLzO9Yw6pcZG8NMrh7B+bxVfHtXXplQiIiIiEmhUHElQumVcrt0RRERERCTAaEIGERERERERVByJiIiIiIgAKo5EREREREQAFUciIiIiIiKAiiMRERERERFAxZGIiIiIiAig4khERERERARQcSQiIiIiIgKoOBIREREREQFUHImIiIiIiAAqjkRERERERAAVRyIiIiIiIoCKIxEREREREUDFkYiIiIiICAAuuwOcCmMMADU1NTYnERERERERO3XWBJ01wukIyOKotrYWgKysLJuTiIiIiIiIP6itrSU+Pv60HsNhuqPE8jGPx8OBAweIjY3F4XDYmqWmpoasrCz27t1LXFycrVnk+NRG/k9t5P/URv5PbeT/1Eb+T23k/47XRsYYamtryczMxOk8vauGArLnyOl00rdvX7tjdBEXF6c3kZ9TG/k/tZH/Uxv5P7WR/1Mb+T+1kf/7dBudbo9RJ03IICIiIiIigoojERERERERQMXRaQsPD+ehhx4iPDzc7ijyGdRG/k9t5P/URv5PbeT/1Eb+T23k/3q6jQJyQgYREREREZHupp4jERERERERVByJiIiIiIgAKo5EREREREQAFUciIiIiIiKAiiMRERERERFAxdFpe/bZZ+nXrx8RERHk5+ezatUquyP1GkuXLuWqq64iMzMTh8PBrFmzuuw3xvDggw+SkZFBZGQkBQUF7Nixo8sxlZWVTJ48mbi4ONxuN7feeit1dXU+fBXBa9q0aYwePZrY2FhSU1O59tprKSws7HJMU1MTU6dOJSkpiZiYGL785S9TWlra5Zg9e/YwadIkoqKiSE1N5cc//jFtbW2+fClBa/r06QwfPty7yviYMWN49913vfvVPv7nsccew+FwcO+993q3qZ3s9fDDD+NwOLr8DB482Ltf7eMf9u/fz80330xSUhKRkZGcffbZrFmzxrtf3xns1a9fv2PeRw6Hg6lTpwI+fh8ZOWUzZswwYWFh5i9/+YvZsmWLue2224zb7TalpaV2R+sV5syZY372s5+ZN9980wBm5syZXfY/9thjJj4+3syaNcts2LDBXH311SY3N9c0NjZ6j7niiivMiBEjzIoVK8x///tfM2DAAHPTTTf5+JUEp8svv9y89NJLZvPmzWb9+vXmyiuvNNnZ2aaurs57zB133GGysrLMggULzJo1a8z5559vxo4d693f1tZmhg0bZgoKCsy6devMnDlzTHJysnnggQfseElB56233jLvvPOO2b59uyksLDQ//elPTWhoqNm8ebMxRu3jb1atWmX69etnhg8fbu655x7vdrWTvR566CEzdOhQc/DgQe9PeXm5d7/ax36VlZUmJyfHfPOb3zQrV640u3btMvPmzTM7d+70HqPvDPYqKyvr8h6aP3++AcyiRYuMMb59H6k4Og3nnXeemTp1qvf39vZ2k5mZaaZNm2Zjqt7p08WRx+Mx6enp5ne/+513W1VVlQkPDzevvfaaMcaYjz/+2ABm9erV3mPeffdd43A4zP79+32W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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot history, targets, and predictions\n", + "plt.figure(figsize=(10, 5))\n", + "plt.plot(np.arange(inputs.shape[1]), inputs[sample_id, :, time_series_id, channel_id], label='history')\n", + "plt.plot(np.arange(inputs.shape[1], inputs.shape[1]+target.shape[1]), target[sample_id, :, time_series_id, channel_id], label='target')\n", + "plt.plot(np.arange(inputs.shape[1], inputs.shape[1]+prediction.shape[1]), prediction[sample_id, :, time_series_id, channel_id], label='prediction')\n", + "plt.legend()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "BasicTS", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/dataset_analysis.py b/scripts/dataset_analysis.py new file mode 100644 index 0000000..8bc2f2e --- /dev/null +++ b/scripts/dataset_analysis.py @@ -0,0 +1,487 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +数据集分析脚本 +用于读取BasicTS项目中的数据集并生成详细的报告 +包括节点/边数量、时间频率、缺失值率、空间覆盖密度等分析 +""" + +import os +import json +import numpy as np +import pandas as pd +import pickle +from pathlib import Path +from typing import Dict, List, Tuple, Optional +import matplotlib.pyplot as plt +import seaborn as sns +from datetime import datetime, timedelta +import warnings +warnings.filterwarnings('ignore') + +# 设置中文字体 +plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans'] +plt.rcParams['axes.unicode_minus'] = False + +class DatasetAnalyzer: + """数据集分析器""" + + def __init__(self, datasets_dir: str = "datasets"): + """ + 初始化数据集分析器 + + Args: + datasets_dir: 数据集目录路径 + """ + self.datasets_dir = Path(datasets_dir) + self.datasets_info = {} + self.analysis_results = {} + + def get_available_datasets(self) -> List[str]: + """获取可用的数据集列表""" + datasets = [] + for item in self.datasets_dir.iterdir(): + if item.is_dir() and (item / "desc.json").exists(): + datasets.append(item.name) + return sorted(datasets) + + def load_dataset_description(self, dataset_name: str) -> Dict: + """加载数据集描述文件""" + desc_path = self.datasets_dir / dataset_name / "desc.json" + with open(desc_path, 'r', encoding='utf-8') as f: + return json.load(f) + + def load_dataset_data(self, dataset_name: str) -> np.ndarray: + """加载数据集数据""" + desc = self.load_dataset_description(dataset_name) + data_path = self.datasets_dir / dataset_name / "data.dat" + + # 使用memmap加载大数据文件 + data = np.memmap(data_path, dtype='float32', mode='r', + shape=tuple(desc['shape'])) + return data.copy() # 复制到内存中 + + def load_adjacency_matrix(self, dataset_name: str) -> Optional[np.ndarray]: + """加载邻接矩阵(如果存在)""" + adj_path = self.datasets_dir / dataset_name / "adj_mx.pkl" + if adj_path.exists(): + with open(adj_path, 'rb') as f: + adj_data = pickle.load(f) + # 处理不同的邻接矩阵格式 + if isinstance(adj_data, tuple): + return adj_data[0] # 通常第一个元素是邻接矩阵 + elif isinstance(adj_data, dict): + return adj_data.get('adj_mx', adj_data.get('adj', None)) + else: + return adj_data + return None + + def analyze_missing_values(self, data: np.ndarray, null_val: float = 0.0) -> Dict: + """分析缺失值""" + # 计算缺失值 + if np.isnan(null_val): + missing_mask = np.isnan(data) + else: + missing_mask = (data == null_val) + + total_elements = data.size + missing_elements = np.sum(missing_mask) + missing_rate = (missing_elements / total_elements) * 100 + + # 按时间步分析缺失值 + missing_by_time = np.sum(missing_mask, axis=(1, 2)) if data.ndim == 3 else np.sum(missing_mask, axis=1) + missing_by_node = np.sum(missing_mask, axis=(0, 2)) if data.ndim == 3 else np.sum(missing_mask, axis=0) + + return { + 'total_missing_rate': missing_rate, + 'missing_elements': missing_elements, + 'total_elements': total_elements, + 'missing_by_time': missing_by_time, + 'missing_by_node': missing_by_node, + 'max_missing_time': np.max(missing_by_time), + 'max_missing_node': np.max(missing_by_node) if data.ndim == 3 else 0 + } + + def analyze_temporal_continuity(self, data: np.ndarray, freq_minutes: int) -> Dict: + """分析时间连续性""" + # 计算时间跨度 + total_time_steps = data.shape[0] + total_hours = (total_time_steps * freq_minutes) / 60 + total_days = total_hours / 24 + + # 计算数据密度(非零数据点比例) + non_zero_ratio = np.sum(data != 0) / data.size + + return { + 'total_time_steps': total_time_steps, + 'frequency_minutes': freq_minutes, + 'total_hours': total_hours, + 'total_days': total_days, + 'data_density': non_zero_ratio + } + + def analyze_spatial_coverage(self, data: np.ndarray, adj_matrix: Optional[np.ndarray] = None) -> Dict: + """分析空间覆盖""" + if data.ndim == 3: + num_nodes = data.shape[1] + num_features = data.shape[2] + else: + num_nodes = data.shape[1] + num_features = 1 + + # 计算邻接矩阵信息 + edge_info = {} + if adj_matrix is not None: + num_edges = np.sum(adj_matrix > 0) + edge_density = num_edges / (num_nodes * num_nodes) + avg_degree = np.mean(np.sum(adj_matrix > 0, axis=1)) + + edge_info = { + 'num_edges': int(num_edges), + 'edge_density': edge_density, + 'avg_degree': avg_degree, + 'max_degree': int(np.max(np.sum(adj_matrix > 0, axis=1))), + 'min_degree': int(np.min(np.sum(adj_matrix > 0, axis=1))) + } + + return { + 'num_nodes': num_nodes, + 'num_features': num_features, + **edge_info + } + + def analyze_dataset(self, dataset_name: str) -> Dict: + """分析单个数据集""" + print(f"正在分析数据集: {dataset_name}") + + # 加载数据 + desc = self.load_dataset_description(dataset_name) + data = self.load_dataset_data(dataset_name) + adj_matrix = self.load_adjacency_matrix(dataset_name) + + # 基础信息 + basic_info = { + 'name': desc['name'], + 'domain': desc['domain'], + 'shape': desc['shape'], + 'has_graph': desc.get('has_graph', False), + 'frequency_minutes': desc.get('frequency (minutes)', None) + } + + # 缺失值分析 + null_val = desc.get('regular_settings', {}).get('NULL_VAL', 0.0) + missing_analysis = self.analyze_missing_values(data, null_val) + + # 时间连续性分析 + temporal_analysis = self.analyze_temporal_continuity(data, basic_info['frequency_minutes']) + + # 空间覆盖分析 + spatial_analysis = self.analyze_spatial_coverage(data, adj_matrix) + + return { + 'basic_info': basic_info, + 'missing_analysis': missing_analysis, + 'temporal_analysis': temporal_analysis, + 'spatial_analysis': spatial_analysis, + 'description': desc + } + + def analyze_all_datasets(self) -> Dict: + """分析所有数据集""" + datasets = self.get_available_datasets() + print(f"发现 {len(datasets)} 个数据集: {datasets}") + + for dataset_name in datasets: + try: + self.analysis_results[dataset_name] = self.analyze_dataset(dataset_name) + except Exception as e: + print(f"分析数据集 {dataset_name} 时出错: {e}") + continue + + return self.analysis_results + + def generate_summary_report(self) -> str: + """生成汇总报告""" + if not self.analysis_results: + return "没有可用的分析结果" + + report = [] + report.append("=" * 80) + report.append("BasicTS 数据集分析报告") + report.append("=" * 80) + report.append(f"生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + report.append(f"分析数据集数量: {len(self.analysis_results)}") + report.append("") + + # 数据集概览表 + report.append("数据集概览:") + report.append("-" * 80) + report.append(f"{'数据集名称':<15} {'领域':<20} {'时间步数':<10} {'节点数':<8} {'特征数':<8} {'频率(分钟)':<12} {'缺失值率(%)':<12}") + report.append("-" * 80) + + for name, result in self.analysis_results.items(): + basic = result['basic_info'] + missing = result['missing_analysis'] + spatial = result['spatial_analysis'] + + report.append(f"{name:<15} {basic['domain']:<20} {basic['shape'][0]:<10} " + f"{spatial['num_nodes']:<8} {spatial['num_features']:<8} " + f"{basic['frequency_minutes']:<12} {missing['total_missing_rate']:<12.3f}") + + report.append("") + + # 详细分析 + for name, result in self.analysis_results.items(): + report.append(f"数据集: {name}") + report.append("-" * 40) + + basic = result['basic_info'] + missing = result['missing_analysis'] + temporal = result['temporal_analysis'] + spatial = result['spatial_analysis'] + + report.append(f"领域: {basic['domain']}") + report.append(f"数据形状: {basic['shape']}") + report.append(f"时间频率: {basic['frequency_minutes']} 分钟") + report.append(f"时间跨度: {temporal['total_days']:.1f} 天 ({temporal['total_hours']:.1f} 小时)") + report.append(f"节点数量: {spatial['num_nodes']}") + report.append(f"特征数量: {spatial['num_features']}") + + if spatial.get('num_edges'): + report.append(f"边数量: {spatial['num_edges']}") + report.append(f"边密度: {spatial['edge_density']:.4f}") + report.append(f"平均度数: {spatial['avg_degree']:.2f}") + + report.append(f"缺失值率: {missing['total_missing_rate']:.3f}%") + report.append(f"数据密度: {temporal['data_density']:.3f}") + report.append("") + + return "\n".join(report) + + def generate_comparative_analysis(self) -> str: + """生成对比分析报告""" + if not self.analysis_results: + return "没有可用的分析结果" + + report = [] + report.append("=" * 80) + report.append("数据集对比分析") + report.append("=" * 80) + report.append("") + + # 按领域分组 + domains = {} + for name, result in self.analysis_results.items(): + domain = result['basic_info']['domain'] + if domain not in domains: + domains[domain] = [] + domains[domain].append((name, result)) + + for domain, datasets in domains.items(): + report.append(f"领域: {domain}") + report.append("-" * 40) + + # 该领域的数据集统计 + missing_rates = [d[1]['missing_analysis']['total_missing_rate'] for d in datasets] + node_counts = [d[1]['spatial_analysis']['num_nodes'] for d in datasets] + time_steps = [d[1]['basic_info']['shape'][0] for d in datasets] + + report.append(f"数据集数量: {len(datasets)}") + report.append(f"平均缺失值率: {np.mean(missing_rates):.3f}%") + report.append(f"缺失值率范围: {min(missing_rates):.3f}% - {max(missing_rates):.3f}%") + report.append(f"平均节点数: {np.mean(node_counts):.1f}") + report.append(f"节点数范围: {min(node_counts)} - {max(node_counts)}") + report.append(f"平均时间步数: {np.mean(time_steps):.0f}") + report.append("") + + # 空间覆盖密度分析 + report.append("空间覆盖密度分析:") + report.append("-" * 40) + + spatial_datasets = [(name, result) for name, result in self.analysis_results.items() + if result['spatial_analysis'].get('num_edges')] + + if spatial_datasets: + for name, result in spatial_datasets: + spatial = result['spatial_analysis'] + report.append(f"{name}: {spatial['num_nodes']} 个节点, {spatial['num_edges']} 条边, " + f"密度 {spatial['edge_density']:.4f}, 平均度数 {spatial['avg_degree']:.2f}") + else: + report.append("没有发现包含图结构的数据集") + + report.append("") + + # 时间连续性分析 + report.append("时间连续性分析:") + report.append("-" * 40) + + temporal_data = [] + for name, result in self.analysis_results.items(): + temporal = result['temporal_analysis'] + temporal_data.append({ + 'name': name, + 'days': temporal['total_days'], + 'density': temporal['data_density'], + 'frequency': temporal['frequency_minutes'] + }) + + # 按时间跨度排序 + temporal_data.sort(key=lambda x: x['days'], reverse=True) + + for data in temporal_data: + report.append(f"{data['name']}: {data['days']:.1f} 天, " + f"数据密度 {data['density']:.3f}, " + f"频率 {data['frequency']} 分钟") + + return "\n".join(report) + + def save_reports(self, output_dir: str = "analysis_reports"): + """保存分析报告""" + output_path = Path(output_dir) + output_path.mkdir(exist_ok=True) + + # 保存汇总报告 + summary_report = self.generate_summary_report() + with open(output_path / "summary_report.txt", 'w', encoding='utf-8') as f: + f.write(summary_report) + + # 保存对比分析报告 + comparative_report = self.generate_comparative_analysis() + with open(output_path / "comparative_analysis.txt", 'w', encoding='utf-8') as f: + f.write(comparative_report) + + # 保存详细JSON报告 + with open(output_path / "detailed_analysis.json", 'w', encoding='utf-8') as f: + json.dump(self.analysis_results, f, indent=2, ensure_ascii=False, default=str) + + print(f"报告已保存到目录: {output_path}") + + def create_visualizations(self, output_dir: str = "analysis_reports"): + """创建可视化图表""" + if not self.analysis_results: + print("没有可用的分析结果") + return + + output_path = Path(output_dir) + output_path.mkdir(exist_ok=True) + + # 设置图表样式 + plt.style.use('seaborn-v0_8') + + # 1. 缺失值率对比 + fig, ax = plt.subplots(figsize=(12, 6)) + names = list(self.analysis_results.keys()) + missing_rates = [self.analysis_results[name]['missing_analysis']['total_missing_rate'] + for name in names] + + bars = ax.bar(names, missing_rates, color='skyblue', alpha=0.7) + ax.set_title('各数据集缺失值率对比', fontsize=14, fontweight='bold') + ax.set_xlabel('数据集名称') + ax.set_ylabel('缺失值率 (%)') + ax.tick_params(axis='x', rotation=45) + + # 添加数值标签 + for bar, rate in zip(bars, missing_rates): + ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.1, + f'{rate:.2f}%', ha='center', va='bottom') + + plt.tight_layout() + plt.savefig(output_path / "missing_rates_comparison.png", dpi=300, bbox_inches='tight') + plt.close() + + # 2. 节点数量对比 + fig, ax = plt.subplots(figsize=(12, 6)) + node_counts = [self.analysis_results[name]['spatial_analysis']['num_nodes'] + for name in names] + + bars = ax.bar(names, node_counts, color='lightgreen', alpha=0.7) + ax.set_title('各数据集节点数量对比', fontsize=14, fontweight='bold') + ax.set_xlabel('数据集名称') + ax.set_ylabel('节点数量') + ax.tick_params(axis='x', rotation=45) + + # 添加数值标签 + for bar, count in zip(bars, node_counts): + ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + max(node_counts)*0.01, + f'{count}', ha='center', va='bottom') + + plt.tight_layout() + plt.savefig(output_path / "node_counts_comparison.png", dpi=300, bbox_inches='tight') + plt.close() + + # 3. 时间跨度对比 + fig, ax = plt.subplots(figsize=(12, 6)) + time_days = [self.analysis_results[name]['temporal_analysis']['total_days'] + for name in names] + + bars = ax.bar(names, time_days, color='orange', alpha=0.7) + ax.set_title('各数据集时间跨度对比', fontsize=14, fontweight='bold') + ax.set_xlabel('数据集名称') + ax.set_ylabel('时间跨度 (天)') + ax.tick_params(axis='x', rotation=45) + + # 添加数值标签 + for bar, days in zip(bars, time_days): + ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + max(time_days)*0.01, + f'{days:.1f}', ha='center', va='bottom') + + plt.tight_layout() + plt.savefig(output_path / "time_span_comparison.png", dpi=300, bbox_inches='tight') + plt.close() + + # 4. 散点图:节点数 vs 缺失值率 + fig, ax = plt.subplots(figsize=(10, 6)) + ax.scatter(node_counts, missing_rates, s=100, alpha=0.7, c='red') + + # 添加数据集标签 + for i, name in enumerate(names): + ax.annotate(name, (node_counts[i], missing_rates[i]), + xytext=(5, 5), textcoords='offset points', fontsize=8) + + ax.set_xlabel('节点数量') + ax.set_ylabel('缺失值率 (%)') + ax.set_title('节点数量与缺失值率关系', fontsize=14, fontweight='bold') + ax.grid(True, alpha=0.3) + + plt.tight_layout() + plt.savefig(output_path / "nodes_vs_missing_rates.png", dpi=300, bbox_inches='tight') + plt.close() + + print(f"可视化图表已保存到目录: {output_path}") + + +def main(): + """主函数""" + print("BasicTS 数据集分析工具") + print("=" * 50) + + # 创建分析器 + analyzer = DatasetAnalyzer() + + # 分析所有数据集 + analyzer.analyze_all_datasets() + + # 生成并打印报告 + print("\n" + "=" * 80) + print("数据集分析报告") + print("=" * 80) + + summary_report = analyzer.generate_summary_report() + print(summary_report) + + print("\n" + "=" * 80) + print("对比分析报告") + print("=" * 80) + + comparative_report = analyzer.generate_comparative_analysis() + print(comparative_report) + + # 保存报告和可视化 + analyzer.save_reports() + analyzer.create_visualizations() + + print("\n分析完成!") + + +if __name__ == "__main__": + main() diff --git a/scripts/dataset_analyzer.py b/scripts/dataset_analyzer.py new file mode 100644 index 0000000..7494754 --- /dev/null +++ b/scripts/dataset_analyzer.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +数据集分析器 +用于读取BasicTS项目中的数据集并生成详细的报告 +""" + +import os +import json +import numpy as np +import pandas as pd +import pickle +from pathlib import Path +from typing import Dict, List, Tuple, Optional +from datetime import datetime +import warnings +warnings.filterwarnings('ignore') + +class DatasetAnalyzer: + """数据集分析器""" + + def __init__(self, datasets_dir: str = "datasets"): + """ + 初始化数据集分析器 + + Args: + datasets_dir: 数据集目录路径 + """ + self.datasets_dir = Path(datasets_dir) + self.datasets_info = {} + self.analysis_results = {} + + def get_available_datasets(self) -> List[str]: + """获取可用的数据集列表""" + datasets = [] + for item in self.datasets_dir.iterdir(): + if item.is_dir() and (item / "desc.json").exists(): + datasets.append(item.name) + return sorted(datasets) + + def load_dataset_description(self, dataset_name: str) -> Dict: + """加载数据集描述文件""" + desc_path = self.datasets_dir / dataset_name / "desc.json" + with open(desc_path, 'r', encoding='utf-8') as f: + return json.load(f) + + def load_dataset_data(self, dataset_name: str) -> np.ndarray: + """加载数据集数据""" + desc = self.load_dataset_description(dataset_name) + data_path = self.datasets_dir / dataset_name / "data.dat" + + # 使用memmap加载大数据文件 + data = np.memmap(data_path, dtype='float32', mode='r', + shape=tuple(desc['shape'])) + return data.copy() # 复制到内存中 + + def load_adjacency_matrix(self, dataset_name: str) -> Optional[np.ndarray]: + """加载邻接矩阵(如果存在)""" + adj_path = self.datasets_dir / dataset_name / "adj_mx.pkl" + if adj_path.exists(): + with open(adj_path, 'rb') as f: + adj_data = pickle.load(f) + # 处理不同的邻接矩阵格式 + if isinstance(adj_data, tuple): + return adj_data[0] # 通常第一个元素是邻接矩阵 + elif isinstance(adj_data, dict): + return adj_data.get('adj_mx', adj_data.get('adj', None)) + else: + return adj_data + return None + + def analyze_missing_values(self, data: np.ndarray, null_val: float = 0.0) -> Dict: + """分析缺失值""" + # 计算缺失值 + if np.isnan(null_val): + missing_mask = np.isnan(data) + else: + missing_mask = (data == null_val) + + total_elements = data.size + missing_elements = np.sum(missing_mask) + missing_rate = (missing_elements / total_elements) * 100 + + # 按时间步分析缺失值 + missing_by_time = np.sum(missing_mask, axis=(1, 2)) if data.ndim == 3 else np.sum(missing_mask, axis=1) + missing_by_node = np.sum(missing_mask, axis=(0, 2)) if data.ndim == 3 else np.sum(missing_mask, axis=0) + + return { + 'total_missing_rate': missing_rate, + 'missing_elements': missing_elements, + 'total_elements': total_elements, + 'missing_by_time': missing_by_time, + 'missing_by_node': missing_by_node, + 'max_missing_time': np.max(missing_by_time), + 'max_missing_node': np.max(missing_by_node) if data.ndim == 3 else 0 + } + + def analyze_temporal_continuity(self, data: np.ndarray, freq_minutes: int) -> Dict: + """分析时间连续性""" + # 计算时间跨度 + total_time_steps = data.shape[0] + total_hours = (total_time_steps * freq_minutes) / 60 + total_days = total_hours / 24 + + # 计算数据密度(非零数据点比例) + non_zero_ratio = np.sum(data != 0) / data.size + + return { + 'total_time_steps': total_time_steps, + 'frequency_minutes': freq_minutes, + 'total_hours': total_hours, + 'total_days': total_days, + 'data_density': non_zero_ratio + } + + def analyze_spatial_coverage(self, data: np.ndarray, adj_matrix: Optional[np.ndarray] = None) -> Dict: + """分析空间覆盖""" + if data.ndim == 3: + num_nodes = data.shape[1] + num_features = data.shape[2] + else: + num_nodes = data.shape[1] + num_features = 1 + + # 计算邻接矩阵信息 + edge_info = {} + if adj_matrix is not None: + num_edges = np.sum(adj_matrix > 0) + edge_density = num_edges / (num_nodes * num_nodes) + avg_degree = np.mean(np.sum(adj_matrix > 0, axis=1)) + + edge_info = { + 'num_edges': int(num_edges), + 'edge_density': edge_density, + 'avg_degree': avg_degree, + 'max_degree': int(np.max(np.sum(adj_matrix > 0, axis=1))), + 'min_degree': int(np.min(np.sum(adj_matrix > 0, axis=1))) + } + + return { + 'num_nodes': num_nodes, + 'num_features': num_features, + **edge_info + } + + def analyze_dataset(self, dataset_name: str) -> Dict: + """分析单个数据集""" + print(f"正在分析数据集: {dataset_name}") + + # 加载数据 + desc = self.load_dataset_description(dataset_name) + data = self.load_dataset_data(dataset_name) + adj_matrix = self.load_adjacency_matrix(dataset_name) + + # 基础信息 + basic_info = { + 'name': desc['name'], + 'domain': desc['domain'], + 'shape': desc['shape'], + 'has_graph': desc.get('has_graph', False), + 'frequency_minutes': desc.get('frequency (minutes)', None) + } + + # 缺失值分析 + null_val = desc.get('regular_settings', {}).get('NULL_VAL', 0.0) + missing_analysis = self.analyze_missing_values(data, null_val) + + # 时间连续性分析 + temporal_analysis = self.analyze_temporal_continuity(data, basic_info['frequency_minutes']) + + # 空间覆盖分析 + spatial_analysis = self.analyze_spatial_coverage(data, adj_matrix) + + return { + 'basic_info': basic_info, + 'missing_analysis': missing_analysis, + 'temporal_analysis': temporal_analysis, + 'spatial_analysis': spatial_analysis, + 'description': desc + } + + def analyze_all_datasets(self) -> Dict: + """分析所有数据集""" + datasets = self.get_available_datasets() + print(f"发现 {len(datasets)} 个数据集: {datasets}") + + for dataset_name in datasets: + try: + self.analysis_results[dataset_name] = self.analyze_dataset(dataset_name) + except Exception as e: + print(f"分析数据集 {dataset_name} 时出错: {e}") + continue + + return self.analysis_results diff --git a/scripts/download_gpt2_with_kagglehub.py b/scripts/download_gpt2_with_kagglehub.py new file mode 100644 index 0000000..867c48c --- /dev/null +++ b/scripts/download_gpt2_with_kagglehub.py @@ -0,0 +1,34 @@ +import os +import sys +import argparse + + +def main(): + parser = argparse.ArgumentParser(description="Download GPT-2 via kagglehub to target directory") + parser.add_argument("--target", type=str, default="/home/azureuser/code/REPST/GPT-2", help="Target directory to store GPT-2") + args = parser.parse_args() + + try: + import kagglehub + except Exception as e: + print("[ERROR] kagglehub 未安装或导入失败。请先运行: pip install kagglehub") + print(" 需在 ~/.kaggle/kaggle.json 配置 Kaggle API。") + sys.exit(1) + + os.makedirs(args.target, exist_ok=True) + + handle = "openai/gpt-2" + print(f"开始通过 kagglehub 下载 {handle} 到 {args.target} ...") + try: + path = kagglehub.model_download(handle, path=args.target) + except Exception as e: + print(f"[ERROR] 下载失败: {e}") + sys.exit(2) + + print(f"下载完成,已保存到: {path}") + + +if __name__ == "__main__": + main() + + diff --git a/scripts/report_generator.py b/scripts/report_generator.py new file mode 100644 index 0000000..64fe110 --- /dev/null +++ b/scripts/report_generator.py @@ -0,0 +1,279 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +报告生成器 +用于生成数据集分析的详细报告 +""" + +import json +import numpy as np +from pathlib import Path +from datetime import datetime +from typing import Dict, List +import matplotlib.pyplot as plt +import seaborn as sns + +# 设置中文字体 +plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans'] +plt.rcParams['axes.unicode_minus'] = False + +class ReportGenerator: + """报告生成器""" + + def __init__(self, analysis_results: Dict): + """ + 初始化报告生成器 + + Args: + analysis_results: 数据集分析结果 + """ + self.analysis_results = analysis_results + + def generate_summary_report(self) -> str: + """生成汇总报告""" + if not self.analysis_results: + return "没有可用的分析结果" + + report = [] + report.append("=" * 80) + report.append("BasicTS 数据集分析报告") + report.append("=" * 80) + report.append(f"生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + report.append(f"分析数据集数量: {len(self.analysis_results)}") + report.append("") + + # 数据集概览表 + report.append("数据集概览:") + report.append("-" * 80) + report.append(f"{'数据集名称':<15} {'领域':<20} {'时间步数':<10} {'节点数':<8} {'特征数':<8} {'频率(分钟)':<12} {'缺失值率(%)':<12}") + report.append("-" * 80) + + for name, result in self.analysis_results.items(): + basic = result['basic_info'] + missing = result['missing_analysis'] + spatial = result['spatial_analysis'] + + report.append(f"{name:<15} {basic['domain']:<20} {basic['shape'][0]:<10} " + f"{spatial['num_nodes']:<8} {spatial['num_features']:<8} " + f"{basic['frequency_minutes']:<12} {missing['total_missing_rate']:<12.3f}") + + report.append("") + + # 详细分析 + for name, result in self.analysis_results.items(): + report.append(f"数据集: {name}") + report.append("-" * 40) + + basic = result['basic_info'] + missing = result['missing_analysis'] + temporal = result['temporal_analysis'] + spatial = result['spatial_analysis'] + + report.append(f"领域: {basic['domain']}") + report.append(f"数据形状: {basic['shape']}") + report.append(f"时间频率: {basic['frequency_minutes']} 分钟") + report.append(f"时间跨度: {temporal['total_days']:.1f} 天 ({temporal['total_hours']:.1f} 小时)") + report.append(f"节点数量: {spatial['num_nodes']}") + report.append(f"特征数量: {spatial['num_features']}") + + if spatial.get('num_edges'): + report.append(f"边数量: {spatial['num_edges']}") + report.append(f"边密度: {spatial['edge_density']:.4f}") + report.append(f"平均度数: {spatial['avg_degree']:.2f}") + + report.append(f"缺失值率: {missing['total_missing_rate']:.3f}%") + report.append(f"数据密度: {temporal['data_density']:.3f}") + report.append("") + + return "\n".join(report) + + def generate_comparative_analysis(self) -> str: + """生成对比分析报告""" + if not self.analysis_results: + return "没有可用的分析结果" + + report = [] + report.append("=" * 80) + report.append("数据集对比分析") + report.append("=" * 80) + report.append("") + + # 按领域分组 + domains = {} + for name, result in self.analysis_results.items(): + domain = result['basic_info']['domain'] + if domain not in domains: + domains[domain] = [] + domains[domain].append((name, result)) + + for domain, datasets in domains.items(): + report.append(f"领域: {domain}") + report.append("-" * 40) + + # 该领域的数据集统计 + missing_rates = [d[1]['missing_analysis']['total_missing_rate'] for d in datasets] + node_counts = [d[1]['spatial_analysis']['num_nodes'] for d in datasets] + time_steps = [d[1]['basic_info']['shape'][0] for d in datasets] + + report.append(f"数据集数量: {len(datasets)}") + report.append(f"平均缺失值率: {np.mean(missing_rates):.3f}%") + report.append(f"缺失值率范围: {min(missing_rates):.3f}% - {max(missing_rates):.3f}%") + report.append(f"平均节点数: {np.mean(node_counts):.1f}") + report.append(f"节点数范围: {min(node_counts)} - {max(node_counts)}") + report.append(f"平均时间步数: {np.mean(time_steps):.0f}") + report.append("") + + # 空间覆盖密度分析 + report.append("空间覆盖密度分析:") + report.append("-" * 40) + + spatial_datasets = [(name, result) for name, result in self.analysis_results.items() + if result['spatial_analysis'].get('num_edges')] + + if spatial_datasets: + for name, result in spatial_datasets: + spatial = result['spatial_analysis'] + report.append(f"{name}: {spatial['num_nodes']} 个节点, {spatial['num_edges']} 条边, " + f"密度 {spatial['edge_density']:.4f}, 平均度数 {spatial['avg_degree']:.2f}") + else: + report.append("没有发现包含图结构的数据集") + + report.append("") + + # 时间连续性分析 + report.append("时间连续性分析:") + report.append("-" * 40) + + temporal_data = [] + for name, result in self.analysis_results.items(): + temporal = result['temporal_analysis'] + temporal_data.append({ + 'name': name, + 'days': temporal['total_days'], + 'density': temporal['data_density'], + 'frequency': temporal['frequency_minutes'] + }) + + # 按时间跨度排序 + temporal_data.sort(key=lambda x: x['days'], reverse=True) + + for data in temporal_data: + report.append(f"{data['name']}: {data['days']:.1f} 天, " + f"数据密度 {data['density']:.3f}, " + f"频率 {data['frequency']} 分钟") + + return "\n".join(report) + + def create_visualizations(self, output_dir: str = "analysis_reports"): + """创建可视化图表""" + if not self.analysis_results: + print("没有可用的分析结果") + return + + output_path = Path(output_dir) + output_path.mkdir(exist_ok=True) + + # 设置图表样式 + plt.style.use('seaborn-v0_8') + + # 1. 缺失值率对比 + fig, ax = plt.subplots(figsize=(12, 6)) + names = list(self.analysis_results.keys()) + missing_rates = [self.analysis_results[name]['missing_analysis']['total_missing_rate'] + for name in names] + + bars = ax.bar(names, missing_rates, color='skyblue', alpha=0.7) + ax.set_title('各数据集缺失值率对比', fontsize=14, fontweight='bold') + ax.set_xlabel('数据集名称') + ax.set_ylabel('缺失值率 (%)') + ax.tick_params(axis='x', rotation=45) + + # 添加数值标签 + for bar, rate in zip(bars, missing_rates): + ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.1, + f'{rate:.2f}%', ha='center', va='bottom') + + plt.tight_layout() + plt.savefig(output_path / "missing_rates_comparison.png", dpi=300, bbox_inches='tight') + plt.close() + + # 2. 节点数量对比 + fig, ax = plt.subplots(figsize=(12, 6)) + node_counts = [self.analysis_results[name]['spatial_analysis']['num_nodes'] + for name in names] + + bars = ax.bar(names, node_counts, color='lightgreen', alpha=0.7) + ax.set_title('各数据集节点数量对比', fontsize=14, fontweight='bold') + ax.set_xlabel('数据集名称') + ax.set_ylabel('节点数量') + ax.tick_params(axis='x', rotation=45) + + # 添加数值标签 + for bar, count in zip(bars, node_counts): + ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + max(node_counts)*0.01, + f'{count}', ha='center', va='bottom') + + plt.tight_layout() + plt.savefig(output_path / "node_counts_comparison.png", dpi=300, bbox_inches='tight') + plt.close() + + # 3. 时间跨度对比 + fig, ax = plt.subplots(figsize=(12, 6)) + time_days = [self.analysis_results[name]['temporal_analysis']['total_days'] + for name in names] + + bars = ax.bar(names, time_days, color='orange', alpha=0.7) + ax.set_title('各数据集时间跨度对比', fontsize=14, fontweight='bold') + ax.set_xlabel('数据集名称') + ax.set_ylabel('时间跨度 (天)') + ax.tick_params(axis='x', rotation=45) + + # 添加数值标签 + for bar, days in zip(bars, time_days): + ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + max(time_days)*0.01, + f'{days:.1f}', ha='center', va='bottom') + + plt.tight_layout() + plt.savefig(output_path / "time_span_comparison.png", dpi=300, bbox_inches='tight') + plt.close() + + # 4. 散点图:节点数 vs 缺失值率 + fig, ax = plt.subplots(figsize=(10, 6)) + ax.scatter(node_counts, missing_rates, s=100, alpha=0.7, c='red') + + # 添加数据集标签 + for i, name in enumerate(names): + ax.annotate(name, (node_counts[i], missing_rates[i]), + xytext=(5, 5), textcoords='offset points', fontsize=8) + + ax.set_xlabel('节点数量') + ax.set_ylabel('缺失值率 (%)') + ax.set_title('节点数量与缺失值率关系', fontsize=14, fontweight='bold') + ax.grid(True, alpha=0.3) + + plt.tight_layout() + plt.savefig(output_path / "nodes_vs_missing_rates.png", dpi=300, bbox_inches='tight') + plt.close() + + print(f"可视化图表已保存到目录: {output_path}") + + def save_reports(self, output_dir: str = "analysis_reports"): + """保存分析报告""" + output_path = Path(output_dir) + output_path.mkdir(exist_ok=True) + + # 保存汇总报告 + summary_report = self.generate_summary_report() + with open(output_path / "summary_report.txt", 'w', encoding='utf-8') as f: + f.write(summary_report) + + # 保存对比分析报告 + comparative_report = self.generate_comparative_analysis() + with open(output_path / "comparative_analysis.txt", 'w', encoding='utf-8') as f: + f.write(comparative_report) + + # 保存详细JSON报告 + with open(output_path / "detailed_analysis.json", 'w', encoding='utf-8') as f: + json.dump(self.analysis_results, f, indent=2, ensure_ascii=False, default=str) + + print(f"报告已保存到目录: {output_path}") diff --git a/scripts/run_dataset_analysis.py b/scripts/run_dataset_analysis.py new file mode 100644 index 0000000..27317e6 --- /dev/null +++ b/scripts/run_dataset_analysis.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +数据集分析主脚本 +运行完整的数据集分析流程 +""" + +import sys +import os +from pathlib import Path + +# 添加项目根目录到Python路径 +project_root = Path(__file__).parent.parent +sys.path.insert(0, str(project_root)) + +from scripts.dataset_analyzer import DatasetAnalyzer +from scripts.report_generator import ReportGenerator + +def main(): + """主函数""" + print("BasicTS 数据集分析工具") + print("=" * 50) + + # 创建分析器 + analyzer = DatasetAnalyzer() + + # 分析所有数据集 + print("开始分析数据集...") + analysis_results = analyzer.analyze_all_datasets() + + if not analysis_results: + print("没有找到可分析的数据集") + return + + # 创建报告生成器 + report_generator = ReportGenerator(analysis_results) + + # 生成并打印报告 + print("\n" + "=" * 80) + print("数据集分析报告") + print("=" * 80) + + summary_report = report_generator.generate_summary_report() + print(summary_report) + + print("\n" + "=" * 80) + print("对比分析报告") + print("=" * 80) + + comparative_report = report_generator.generate_comparative_analysis() + print(comparative_report) + + # 保存报告和可视化 + print("\n正在保存报告和可视化图表...") + report_generator.save_reports() + report_generator.create_visualizations() + + print("\n分析完成!") + print("报告文件保存在 'analysis_reports' 目录中") + +if __name__ == "__main__": + main()