Repository navigation
Expand file tree
/
Copy pathconst.py
More file actions
103 lines (84 loc) · 2.53 KB
/
Copy pathconst.py
File metadata and controls
103 lines (84 loc) · 2.53 KB
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
from pathlib import Path
from typing import Dict, List, Optional, Tuple
from models import (
BiLSTMDetector,
GRUDetector,
LightGBMDetector,
LSTMDetector,
RandomForestDetector,
XGBoostDetector,
)
SCHEDULE_FOLDER: str = "./data/schedule/"
LABELS: Dict[int, str] = {0: "Normal", 1: "Jamming", 2: "Spoofing"}
FEATURES = [
#"node_id",
"module_id",
#"latitude",
#"longitude",
#"altitude",
#"speed_knots",
"pdop",
"snr_mean",
"snr_std",
"sats_in_view",
#"elevation_mean",
#"azimuth_mean",
"acceleration",
"lat_diff",
"lon_diff",
"alt_diff",
#"dist_moved_m",
"vel_error",
]
MODEL_REGISTRY = {
"rf": RandomForestDetector,
"xgb": XGBoostDetector,
"lgbm": LightGBMDetector,
"lstm": LSTMDetector,
"bilstm": BiLSTMDetector,
"gru": GRUDetector,
}
NEURAL_NETS = {"lstm", "bilstm", "gru"}
# ---------------------------------------------------------------------------
# Default configuration
# ---------------------------------------------------------------------------
DEFAULT_TRAIN_CONFIG = [
{"day": "2025-09-15", "hour_1": 11, "hour_2": 15, "loc_id": 2},
{"day": "2025-09-17", "hour_1": 11, "hour_2": 18, "loc_id": 1},
]
DEFAULT_TEST_CONFIG = [
{"day": "2025-09-15", "hour_1": 16, "hour_2": 18, "loc_id": 2},
{"day": "2025-09-18", "hour_1": 11, "hour_2": 18, "loc_id": 1},
]
DEFAULT_WINDOW = 10
DEFAULT_VAL_SPLIT = 0.3
DATA_DIR = Path("data")
GPS_CSV = DATA_DIR / "gps.csv"
CONSTELLATION_CSV = DATA_DIR / "constellation.csv"
TRAIN_CSV = DATA_DIR / "train.csv"
TEST_CSV = DATA_DIR / "test.csv"
HF_DATASET_REPO_ID = "SimulaMet/gnss-nmea-jammertest25"
EXCLUDED_TESTS = ["1.1.21"]
EPOCHS = 20
BATCH_SIZE = 64
VAL_SPLIT = 0.3
# ---------------------------------------------------------------------------
# ablation configuration
# ---------------------------------------------------------------------------
WINDOW_SIZES: List[int] = [2, 5, 10, 15, 20, 30, 40, 50, 60]
TRAIN_CONFIG = [
{"day": "2025-09-15", "hour_1": 11, "hour_2": 15, "loc_id": 2},
{"day": "2025-09-17", "hour_1": 11, "hour_2": 18, "loc_id": 1},
]
TEST_CONFIG = [
{"day": "2025-09-15", "hour_1": 16, "hour_2": 18, "loc_id": 2},
{"day": "2025-09-18", "hour_1": 11, "hour_2": 18, "loc_id": 1},
]
ABLATION_MODELS = {
"rf": RandomForestDetector,
"xgb": XGBoostDetector,
"lgbm": LightGBMDetector,
"lstm": LSTMDetector,
"bilstm": BiLSTMDetector,
"gru": GRUDetector,
}