| |
| 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 |
|
|
|
|
| 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() |
|
|