1
|
|
|
"""CASAS download script to get CASAS smart home datasets |
2
|
|
|
""" |
3
|
|
|
|
4
|
|
|
from __future__ import absolute_import |
5
|
|
|
import os |
6
|
|
|
import logging |
7
|
|
|
import zipfile |
8
|
|
|
import argparse |
9
|
|
|
from fuel.downloaders.base import default_downloader |
10
|
|
|
|
11
|
|
|
logger = logging.getLogger(__file__) |
12
|
|
|
|
13
|
|
|
master_url = 'http://eecs.wsu.edu/~twang3/datasets/' |
14
|
|
|
dataset_dict = { |
15
|
|
|
'B1': 'B1.zip', |
16
|
|
|
'B2': 'B2.zip', |
17
|
|
|
'B3': 'B3.zip', |
18
|
|
|
'bosch_legacy': 'bosch_legacy.zip' |
19
|
|
|
} |
20
|
|
|
|
21
|
|
|
|
22
|
|
|
def CASAS_download(directory, datasets): |
23
|
|
|
"""Download CASAS datasets to directory |
24
|
|
|
|
25
|
|
|
Args: |
26
|
|
|
directory (:obj:`str`): path to directory to store the downloaded |
27
|
|
|
datasets (:obj:`tuple` of :obj:`str`): list of datasets to download |
28
|
|
|
""" |
29
|
|
|
for dataset in datasets: |
30
|
|
|
filename = dataset_dict.get(dataset, None) |
31
|
|
|
if filename is None: |
32
|
|
|
print('Cannot find dataset %s' % dataset) |
33
|
|
|
print('Here are the available datasets:') |
34
|
|
|
for key in dataset_dict.keys(): |
35
|
|
|
print(' * %s' % key) |
36
|
|
|
else: |
37
|
|
|
# Download zipped files |
38
|
|
|
default_downloader(directory=directory, |
39
|
|
|
urls=[master_url + filename], |
40
|
|
|
filenames=[filename], |
41
|
|
|
clear=False) |
42
|
|
|
# Expand it in place |
43
|
|
|
file_path = os.path.join(directory, filename) |
44
|
|
|
if os.path.exists(file_path): |
45
|
|
|
zip_ref = zipfile.ZipFile(file_path, 'r') |
46
|
|
|
zip_ref.extractall(directory) |
47
|
|
|
zip_ref.close() |
48
|
|
|
|
49
|
|
|
|
50
|
|
|
def main(): |
51
|
|
|
""" |
52
|
|
|
usage: casas_download.py [-h] [-d DIR] datasets [datasets ...] |
53
|
|
|
|
54
|
|
|
Download CASAS datasets to a directory. |
55
|
|
|
|
56
|
|
|
positional arguments: |
57
|
|
|
datasets Dataset Names |
58
|
|
|
|
59
|
|
|
optional arguments: |
60
|
|
|
-h, --help show this help message and exit |
61
|
|
|
-d DIR, --dir DIR Directory to store datasets |
62
|
|
|
""" |
63
|
|
|
parser = argparse.ArgumentParser(description='Download CASAS datasets to a directory.') |
64
|
|
|
parser.add_argument('-d', '--dir', help='Directory to store datasets') |
65
|
|
|
parser.add_argument('datasets', nargs='+', type=str, help='Dataset Names') |
66
|
|
|
args = parser.parse_args() |
67
|
|
|
dir_abs_path = os.path.abspath(os.path.expanduser(args.dir)) |
68
|
|
|
if not os.path.isdir(dir_abs_path): |
69
|
|
|
user_input = input('Directory %s does not exist. Do you want to create it? [Y/n] ' % |
70
|
|
|
dir_abs_path) |
71
|
|
|
if str.capitalize(user_input) == 'N': |
72
|
|
|
exit() |
73
|
|
|
CASAS_download(args.dir, tuple(args.datasets)) |
74
|
|
|
|
75
|
|
|
if __name__ == '__main__': |
76
|
|
|
main() |
77
|
|
|
|