여러 공통 리소스(작업자, 콜백, 출력 폴더, 프로파일러 등)를 한 번에 초기화하고 반환하여, 멀티 콜백 생성 및 초기화:
build_main_multi_callback(cfg)를 호출하여 multi_main_callback)를 만듭니다. multi_main_callback.on_run_simulation_start()를 호출해 설정 업데이트:
update_config_for_simulation(cfg)를 사용해 로깅 설정:
build_logger(cfg)를 호출하여 로깅 환경을 구성작업자(Worker) 풀 구성:
build_worker(cfg)를 통해 멀티스레딩이나 분산 실행을 위한 작업자 풀을 만듦출력 폴더 생성:
build_simulation_experiment_folder(cfg)를 통해 cfg.output_dir에서 실제 출력 경로를 가져와 output_dir 변수에 저장프로파일러 설정 (옵션):
ProfileCallback 객체를 생성해 출력 폴더를 지정 profiler.start_profiler(profiler_name)로 시뮬레이션 구성 과정을 프로파일링하기 시작공통 빌더 반환:
CommonBuilder 데이터 클래스에 담아 반환합니다.nuplan/planning/script/builders/main_callback_builder.py 에 있음cfg.main_callback 항목에 정의된 모든 콜백 설정을 순회 - main_callback:
- time_callback
- metric_file_callback
- metric_aggregator_callback
- metric_summary_callback
각 콜백 인스턴스 생성:
build_metrics_aggregators(cfg)를 호출하여 metric aggregators(메트릭 집계자)를 생성한 후, instantiate 함수를 사용해 콜백 인스턴스를 생성MultiMainCallback 생성:
로깅 및 반환:
time.perf_counter()를 사용하여 시작 시간을 저장역할:
각 시나리오 별로 생성된 개별 메트릭 파일(JSON)들을, 하나의 통합된 메트릭 파일(Parquet 형식)로 결합
기능:
시나리오 메트릭 데이터를 읽어옵니다.각 메트릭 파일의 내용을 판다스 데이터프레임으로 변환한 후, 이를 하나의 데이터프레임으로 통합합니다.통합된 데이터프레임에 시뮬레이션 소요 시간을 추가하고, 최종 결과를 지정된 출력 경로에 Parquet 파일로 저장역할:
기능:
역할:
시뮬레이션 결과로 생성된 메트릭 데이터를 시각화하여, 히스토그램 형태의 요약 리포트를 PDF 파일로 생성
기능:
메트릭 통계 파일과 메트릭 집계 파일들을 읽어옵니다.이와 같이, 각 콜백 클래스는 시뮬레이션 실행 전후에 필요한 작업(시간 측정, 메트릭 파일 통합, 집계 및 시각화)을 자동으로 수행하여, 시뮬레이션 결과 분석 및 리포팅을 체계적으로 지원합니다.