-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathstatic_add_signal.py
159 lines (123 loc) · 4.65 KB
/
static_add_signal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import os
import json
import utils.generic_utils as ut
from utils.constants import Path, Url
from utils.media_utils import download_spectrum, download_audio
class SigidDataparser():
def __init__(self):
sig_url = 'https://www.sigidwiki.com/wiki/Radar_altimeter'
sig_name = 'Radar altimeter'
with open(Path.STATIC_DIR / 'index.json') as file:
sigs_idx = json.load(file)
last_sig = list(sigs_idx)[-1]
last_dir = sigs_idx[last_sig]['dir']
sig_id = last_dir + 1
sig_param = ut.extract_sig_param(sig_url)
sigs_idx[sig_name] = {
'dir': sig_id,
'url': sig_url
}
with open(Path.STATIC_DIR / 'index.json', 'w') as json_file:
json.dump(sigs_idx, json_file, indent=4)
sig_json = {}
sig_dir = Path.STATIC_DIR / str(sig_id)
os.mkdir(sig_dir)
sig_json['signal'] = {
'name': sig_name,
'url': sig_url
}
with open(sig_dir / 'description.md', 'w', encoding='utf-8') as f:
f.write(sig_param['Short Description'])
sig_json['category'] = sig_param['Category']
sig_json['frequency'] = []
if 'Frequencies' in sig_param:
formatted_freq_list = ut.format_freq(sig_param['Frequencies'])
for freq in formatted_freq_list:
sig_json['frequency'].append(
{
'value': freq,
'description': ''
}
)
sig_json['bandwidth'] = []
if 'Bandwidth' in sig_param:
formatted_band_list = ut.format_freq(sig_param['Bandwidth'])
for band in formatted_band_list:
sig_json['bandwidth'].append(
{
'value': band,
'description': ''
}
)
formatted_acf = ut.format_acf(sig_param['ACF'])
sig_json['acf'] = []
for acf in formatted_acf:
sig_json['acf'].append(
{
'value': acf[1],
'description': acf[0]
}
)
formatted_modulation = ut.format_text(sig_param['Modulation'])
sig_json['modulation'] = []
for modulation in formatted_modulation:
sig_json['modulation'].append(
{
'value': modulation,
'description': ''
}
)
formatted_mode = ut.format_text(sig_param['Mode'])
sig_json['mode'] = []
for mode in formatted_mode:
sig_json['mode'].append(
{
'value': mode,
'description': ''
}
)
formatted_location = ut.format_text(sig_param['Location'])
sig_json['location'] = []
for location in formatted_location:
if location != '':
sig_json['location'].append(
{
'value': location,
'description': ''
}
)
with open(sig_dir / 'signal.json', 'w') as json_file:
json.dump(sig_json, json_file, indent=4)
sig_media_dir = sig_dir / 'media'
os.mkdir(sig_media_dir)
media_json = []
if 'Spectrum' in sig_param and sig_param['Spectrum'] not in Url.IMG_EXCLUSION_URL:
file_name = '1'
media_json.append(
{
'file_name': file_name,
'extension': 'png',
'name': 'Main',
'description': 'This is the wiki spectrum of the signal from www.sigidwiki.com',
'type': 'Image',
'preview': 1
}
)
download_spectrum(sig_param['Spectrum'], file_name, sig_media_dir)
if 'Audio' in sig_param:
file_name = '1'
media_json.append(
{
'file_name': file_name,
'extension': 'ogg',
'name': 'Main',
'description': 'This is the wiki audio sample of the signal from www.sigidwiki.com',
'type': 'Audio',
'preview': 1
}
)
download_audio(sig_param['Audio'], file_name, sig_media_dir, allvorbis=False)
with open(sig_dir / 'media.json', 'w') as json_file:
json.dump(media_json, json_file, indent=4)
if __name__ == "__main__":
SigidDataparser()