Aditya2162's picture
Upload folder using huggingface_hub
9d09c45 verified
"""Preconfigured dataset generation harness (no CLI arguments)."""
from __future__ import annotations
import secrets
from pathlib import Path
from .city_generator import CityGenerator
from .schemas import DatasetGenerationConfig
# -----------------------------------------------------------------------------
# Edit these values to control the default batch generation run.
# -----------------------------------------------------------------------------
NUM_CITIES: int = 100
OUTPUT_DIR: Path = Path("data/generated")
BASE_SEED: int | None = 42 # set to an int for reproducible runs
TOPOLOGIES: list[str] = [
"rectangular_grid",
"irregular_grid",
"arterial_local",
"ring_road",
"mixed",
]
MIN_DISTRICTS: int = 6
MAX_DISTRICTS: int = 20
MIN_INTERSECTIONS_PER_DISTRICT: int = 4
MAX_INTERSECTIONS_PER_DISTRICT: int = 10
SIMULATION_STEPS: int = 3600
INTERVAL: float = 1.0
FAIL_FAST: bool = False
def main() -> None:
"""Run deterministic-configured dataset generation with pre-set defaults."""
base_seed = BASE_SEED if BASE_SEED is not None else secrets.randbits(63)
config = DatasetGenerationConfig(
num_cities=NUM_CITIES,
output_dir=OUTPUT_DIR,
seed=base_seed,
topologies=TOPOLOGIES,
min_districts=MIN_DISTRICTS,
max_districts=MAX_DISTRICTS,
min_intersections_per_district=MIN_INTERSECTIONS_PER_DISTRICT,
max_intersections_per_district=MAX_INTERSECTIONS_PER_DISTRICT,
simulation_steps=SIMULATION_STEPS,
interval=INTERVAL,
fail_fast=FAIL_FAST,
)
print(f"Generating {config.num_cities} cities into {config.output_dir}")
print(f"Base seed: {config.seed}")
print(f"Topologies: {', '.join(TOPOLOGIES)}")
CityGenerator().generate_dataset(config)
if __name__ == "__main__":
main()