File Reference Appscenarioloader
File Reference App_scenario_loader
Path: App/scenario_loader.py
1. Purpose
هذا الملف جزء من نواة HDDS ويخدم طبقة وظيفية محددة داخل منظومة Radar/Audio/GUI orchestration.
2. Responsibilities
- احتواء منطق المجال الخاص بهذا الملف.
- توفير API داخلي لباقي الوحدات.
- تنفيذ جزء من Runtime pipeline.
3. Imports Analysis
- 3:from future import annotations
- 5:import json
- 6:import sys
- 7:from dataclasses import dataclass
- 8:from pathlib import Path
- 9:from typing import Any
- 20:from radar_sim.constants import RadarConfig, ScenarioConfig, Target
- 21:from radar_sim.geometry import (
4. Main Classes
- 54:class ScenarioBundle:
- 63:class RadarObject:
- 74:class RadarTimelinePhase:
- 82:class RadarScenarioData:
5. Main Functions
- 92:def discover_scenarios(directory: Path) -> list[ScenarioBundle]:
- 121:def bundle_from_member(path: Path) -> ScenarioBundle:
- 138:def load_radar_scenario(path: Path, radar: RadarConfig) -> RadarScenarioData:
- 187:def active_radar_objects_at_time(
- 230:def scenario_at_time(
- 254:def _find_required(
- 271:def _parse_radar_object(item: dict[str, Any], index: int, radar: RadarConfig) -> RadarObject:
- 308:def _parse_timeline(item: Any, radar: RadarConfig) -> tuple[RadarTimelinePhase, …]:
- 336:def _float_from(
- 348:def _optional_float(value: Any) -> float | None:
تحليل الدوال (منهج عام):
- input: معاملات runtime/config/data structures.
- output: dataclasses/arrays/reports/state updates.
- algorithm: يعتمد على نوع الملف (DSP/ML/GUI/control flow).
- side effects: I/O، logging، GUI updates، أو model loading.
- runtime behavior: دوال critical قد تنفذ per-frame أو per-window.
6. Internal Workflow
- تهيئة البيانات أو الإعدادات.
- تطبيق المعالجة الأساسية.
- إعادة النتائج أو تحديث state خارجي.
7. Data Flow
- inbound: من ملفات config أو callers أعلى.
- processing: transformations حسب domain.
- outbound: structures تستخدمها ملفات أخرى أو GUI.
8. Mathematical Concepts
إذا كان الملف Radar/Audio DSP فإنه يستخدم مفاهيم مثل FFT, Doppler Shift, log-Mel, thresholding حسب السياق.
9. Important Variables
- 12:REPO_ROOT = Path(file).resolve().parents[1]
- 13:PROJECT_ROOT = REPO_ROOT / "Project v1"
- 14:PROJECT_SRC = PROJECT_ROOT / "src"
- 27:VIDEO_EXTENSIONS = (".mp4", ".avi", ".mov", ".mkv")
- 28:AUDIO_EXTENSIONS = (".wav", ".flac", ".mp3", ".ogg")
- 29:TARGET_KEYS = {
10. Integration Points
- Used By: يعتمد على استدعاءات بقية النظام لهذا الملف.
- Calls: وحدات داخلية وخارجية (NumPy/TensorFlow/PyTorch/OpenCV).
11. Runtime Sequence
ينفذ هذا الملف ضمن التسلسل العام الموضح في Runtime Execution Flow.
12. Error Handling
- يعتمد على
raise/exceptions المحلية في الملف. - في GUI يتم غالبًا احتواء الخطأ عبر dialogs أو status messages.
13. Performance Notes
- الملفات التشغيلية per-frame/per-window حساسة للأداء.
- عمليات ML inference وFFT هي الأعلى كلفة عادة.
14. Future Improvements
- إضافة profiling موحد.
- توحيد metrics logging.
- تقليل التكرار بين و عند الإمكان.
15. Related Notes
Metadata
- Source path: App/scenario_loader.py
- Lines: 352