File size: 1,736 Bytes
5ed1762
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
from __future__ import annotations

import argparse
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
SRC = ROOT / "src"
if str(SRC) not in sys.path:
    sys.path.insert(0, str(SRC))

from dce_analyzer.apollo import APOLLO_DATASETS, load_apollo_long  # noqa: E402


def parse_args() -> argparse.Namespace:
    parser = argparse.ArgumentParser(
        description="Download Apollo example data and convert to long format."
    )
    parser.add_argument(
        "--dataset",
        choices=sorted(APOLLO_DATASETS.keys()),
        default="swiss_route_choice",
    )
    parser.add_argument(
        "--raw-out",
        type=Path,
        default=None,
        help="Optional raw CSV output path.",
    )
    parser.add_argument(
        "--long-out",
        type=Path,
        default=None,
        help="Optional long CSV output path.",
    )
    return parser.parse_args()


def default_outputs(dataset: str) -> tuple[Path, Path]:
    raw = Path(f"data/raw/apollo_{dataset}.csv")
    long = Path(f"data/processed/apollo_{dataset}_long.csv")
    return raw, long


def main() -> None:
    args = parse_args()
    raw_default, long_default = default_outputs(args.dataset)
    raw_out = args.raw_out or raw_default
    long_out = args.long_out or long_default

    long_df = load_apollo_long(
        dataset=args.dataset,
        raw_output_path=raw_out,
        long_output_path=long_out,
    )
    print(f"Dataset: {args.dataset}")
    print(f"Saved raw Apollo file:  {raw_out}")
    print(f"Saved long-format file: {long_out}")
    print(f"Long-format shape: {long_df.shape}")
    print("Columns:")
    print(", ".join(long_df.columns))


if __name__ == "__main__":
    main()