16 KiB
Graph Report - . (2026-04-21)
Corpus Check
- 89 files · ~92,297 words
- Verdict: corpus is large enough that graph structure adds value.
Summary
- 330 nodes · 475 edges · 33 communities detected
- Extraction: 68% EXTRACTED · 32% INFERRED · 0% AMBIGUOUS · INFERRED: 151 edges (avg confidence: 0.7)
- Token cost: 0 input · 0 output
Community Hubs (Navigation)
- _COMMUNITY_Scenario Framework & Maneuvers
- _COMMUNITY_Radar Simulation & Processing
- _COMMUNITY_Orchestration & Sensor Management
- _COMMUNITY_Data Recording & Heatmaps
- _COMMUNITY_Data Conversion Utilities
- _COMMUNITY_Web Dashboard & Loader
- _COMMUNITY_LiDAR & Fast Heatmap Gen
- _COMMUNITY_DSP & CFAR Detection
- _COMMUNITY_Scene Reconstruction
- _COMMUNITY_Dashboard Frontend (JS)
- _COMMUNITY_MCAP Dataset Conversion
- _COMMUNITY_Radar Signal Detection
- _COMMUNITY_Data Quality Inspection
- _COMMUNITY_Deep Metrology Analysis
- _COMMUNITY_Metrology Comparison
- _COMMUNITY_Community 15
- _COMMUNITY_Community 16
- _COMMUNITY_Community 17
- _COMMUNITY_Community 18
- _COMMUNITY_Community 19
- _COMMUNITY_Community 20
- _COMMUNITY_Community 21
- _COMMUNITY_Community 22
- _COMMUNITY_Community 23
- _COMMUNITY_Community 24
- _COMMUNITY_Community 25
- _COMMUNITY_Community 26
- _COMMUNITY_Community 27
- _COMMUNITY_Community 28
- _COMMUNITY_Community 29
- _COMMUNITY_Community 30
- _COMMUNITY_Community 31
- _COMMUNITY_Community 32
God Nodes (most connected - your core abstractions)
ScenarioBase- 26 edgesShenronRadarModel- 22 edgesradar- 20 edgesRadarProcessor- 20 edgesmain()- 20 edgesrun_testbench()- 12 edgesRecorder- 11 edgesSensorManager- 11 edgesBrakingScenario- 9 edgesCutInScenario- 9 edges
Surprising Connections (you probably didn't know these)
scenarios/showcase.py --------------------- Custom high-impact demo scene: Left--uses-->ScenarioBase[INFERRED] scenarios\showcase.py → scenarios\base.pyStep 11: Deep Intersection Guidance for Ego.--uses-->ScenarioBase[INFERRED] scenarios\showcase.py → scenarios\base.pyStep 11: Multi-stage steering logic.--uses-->ScenarioBase[INFERRED] scenarios\showcase.py → scenarios\base.pysrc/scenario_loader.py ---------------------- Dynamic scenario discovery and loa--uses-->ScenarioBase[INFERRED] src\scenario_loader.py → scenarios\base.pyDiscover all scenario modules inside the 'scenarios' package. Returns a sort--uses-->ScenarioBase[INFERRED] src\scenario_loader.py → scenarios\base.py
Communities
Community 0 - "Scenario Framework & Maneuvers"
Cohesion: 0.05
Nodes (18): ABC, scenarios/base.py ----------------- Abstract base class for all CARLA simulati, Return a dict that will be merged into every recorded frame's metadata, Convenience method: destroy all actors tracked in self._actors. Call th, Return a waypoint distance metres ahead of the ego vehicle. lane_offs, Abstract interface for all ADAS simulation scenarios. Lifecycle ----, Unified 1:1 logging for all scenarios. This method ensures clean consol, ScenarioBase (+10 more)
Community 1 - "Radar Simulation & Processing"
Cohesion: 0.08 Nodes (22): radar, Load normalized antenna gain LUTs (dB) from CSV files. Expected CSV f, class to define the radar object with it's settings and to extract time interval, _get_gpu_info(), main(), process_session(), Retrieve GPU hardware info for telemetry display., Return the raw internal heatmaps and thresholds for the last processed frame. (+14 more)
Community 2 - "Orchestration & Sensor Management"
Cohesion: 0.08 Nodes (13): Called immediately after the ego vehicle is spawned. Override to react, Allow the orchestrator to inject parameters parsed from CLI. This maps, main(), parse_args(), src/main.py ----------- Scenario-agnostic orchestrator for the CARLA ADAS simu, SensorManager, scenarios/showcase.py --------------------- Custom high-impact demo scene: Left, Step 11: Deep Intersection Guidance for Ego. (+5 more)
Community 3 - "Data Recording & Heatmaps"
Cohesion: 0.09 Nodes (18): check_save_path(), main(), Stitch captured frames into .mp4 files for easy viewing., Categorise actor into broad ADAS classes., Calculate relative range, azimuth, and closing velocity. Uses right-han, Helper to convert world location to transform-local location., Helper to save image in a background thread., Recorder (+10 more)
Community 4 - "Data Conversion Utilities"
Cohesion: 0.1 Nodes (14): convert2D_img_func(), convert_sem_lidar_2D_img_func(), main(), converts the 3D radar raw data to 2d range-angle image of dimension 256X256, converts the semantic_lidar data to the range angle 2D image of dimension 256X25, # apply fft on each antenna to get angle profile, cart2polar(), get_range_angle() (+6 more)
Community 5 - "Web Dashboard & Loader"
Cohesion: 0.09 Nodes (16): get_config(), get_scenario_params(), is_simulation_running(), PollingFilter, dashboard/app.py ---------------- Flask backend for the BATL CARLA Orchestrator, Forces all CarlaUE4 processes to terminate., Stops the Flask server itself., Returns True if a scenario process is currently alive. (+8 more)
Community 6 - "LiDAR & Fast Heatmap Gen"
Cohesion: 0.11 Nodes (13): get_gpu_id_most_avlbl_mem(), heatmap_gen(), heatmap_gen(), Cropped_forRadar(), map_carla_semantic_lidar_latest(), Function to map material column in the collected carla ray_cast_shenron to shenr, Removes Occlusions and calculates loss for each point, rotate_points() (+5 more)
Community 7 - "DSP & CFAR Detection"
Cohesion: 0.14 Nodes (8): CA_CFAR, cart2polar(), convert_adc_to_3d_fft(), polar_to_cart(), Description: ------------ Cell Averaging - Constant False Alarm Ra, Description: ------------ Performs the automatic detection, Function to convert adc data to RA tensor Input: adcData:, convert a polar range angle tensor to cartesian array Input: RATe
Community 8 - "Scene Reconstruction"
Cohesion: 0.18 Nodes (8): cart2sph(), get_loss_2(), get_loss_3(), Class with all the functions to modify OSM scenario and thus generate the points, Note: angles should be used for power calculation as it is in reflecting surface, Note: angles should be used for power calculation as it is in reflecting surface, Sceneset, sph2cart()
Community 9 - "Dashboard Frontend (JS)"
Cohesion: 0.33 Nodes (7): appendLog(), chip(), renderShenronTelemetry(), resetIdleTimer(), setLoadingState(), startStream(), updateShenronProgress()
Community 10 - "MCAP Dataset Conversion"
Cohesion: 0.31 Nodes (9): convert_folder(), load_frames(), main(), postprocess_ra(), Refined RA post-processing pipeline for Physical Realism. Restores the natu, Polar-to-Cartesian scan conversion following FIG / Guide logic. Converts RA, Convert 2D array to colormapped B64 PNG with guide-compliant normalization., render_heatmap() (+1 more)
Community 11 - "Radar Signal Detection"
Cohesion: 0.22 Nodes (5): CA_CFAR, Description: ------------ Performs the automatic detection o, Description: ------------ Cell Averaging - Constant False Alarm Rate, apply range window and doppler window and apply fft on each sample to get range, apply fft on each chirp to get doppler profile
Community 12 - "Data Quality Inspection"
Cohesion: 0.33 Nodes (2): inspect_gt(), load_frame()
Community 13 - "Deep Metrology Analysis"
Cohesion: 0.83 Nodes (3): analyze_iteration(), power_law(), run_metrology_suite()
Community 14 - "Metrology Comparison"
Cohesion: 1.0 Nodes (0):
Community 15 - "Community 15"
Cohesion: 1.0 Nodes (0):
Community 16 - "Community 16"
Cohesion: 1.0 Nodes (0):
Community 17 - "Community 17"
Cohesion: 1.0 Nodes (0):
Community 18 - "Community 18"
Cohesion: 1.0 Nodes (0):
Community 19 - "Community 19"
Cohesion: 1.0 Nodes (0):
Community 20 - "Community 20"
Cohesion: 1.0 Nodes (1): Human-readable scenario identifier (e.g. 'braking').
Community 21 - "Community 21"
Cohesion: 1.0 Nodes (1): Initialise the scenario: - Store world / ego / tm references.
Community 22 - "Community 22"
Cohesion: 1.0 Nodes (1): Per-tick logic executed inside the main simulation loop. Parameters
Community 23 - "Community 23"
Cohesion: 1.0 Nodes (1): Destroy all actors spawned by this scenario. Always call this in a fina
Community 24 - "Community 24"
Cohesion: 1.0 Nodes (1): Override to request a specific weather preset for this scenario. If Non
Community 25 - "Community 25"
Cohesion: 1.0 Nodes (1): Override to request a specific duration for this scenario. If None, the
Community 26 - "Community 26"
Cohesion: 1.0 Nodes (1): Override to request a specific spawn point for the ego vehicle. Returns
Community 27 - "Community 27"
Cohesion: 1.0 Nodes (0):
Community 28 - "Community 28"
Cohesion: 1.0 Nodes (0):
Community 29 - "Community 29"
Cohesion: 1.0 Nodes (0):
Community 30 - "Community 30"
Cohesion: 1.0 Nodes (0):
Community 31 - "Community 31"
Cohesion: 1.0 Nodes (0):
Community 32 - "Community 32"
Cohesion: 1.0 Nodes (0):
Knowledge Gaps
- 39 isolated node(s):
dashboard/app.py ---------------- Flask backend for the BATL CARLA Orchestrator,Returns True if a scenario process is currently alive.,Forces all CarlaUE4 processes to terminate.,Stops the Flask server itself.,scenarios/base.py ----------------- Abstract base class for all CARLA simulati(+34 more) These have ≤1 connection - possible missing edges or undocumented components. - Thin community
Metrology Comparison(2 nodes):analyze_session(),compare_metrology.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 15(2 nodes):get_pos(),get_pos.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 16(2 nodes):track_full_state.py,track_full_state()Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 17(2 nodes):track_peaks.py,get_peak_tracking()Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 18(2 nodes):compare_folders(),compare_iterations.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 19(2 nodes):research_metrology(),research_metrology.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 20(1 nodes):Human-readable scenario identifier (e.g. 'braking').Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 21(1 nodes):Initialise the scenario: - Store world / ego / tm references.Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 22(1 nodes):Per-tick logic executed inside the main simulation loop. ParametersToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 23(1 nodes):Destroy all actors spawned by this scenario. Always call this in a finaToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 24(1 nodes):Override to request a specific weather preset for this scenario. If NonToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 25(1 nodes):Override to request a specific duration for this scenario. If None, theToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 26(1 nodes):Override to request a specific spawn point for the ego vehicle. ReturnsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 27(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 28(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 29(1 nodes):verify_tags.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 30(1 nodes):path_config.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 31(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 32(1 nodes):check_lidar.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted.
Suggested Questions
Questions this graph is uniquely positioned to answer:
- Why does
main()connectOrchestration & Sensor ManagementtoScenario Framework & Maneuvers,Radar Simulation & Processing,Data Recording & Heatmaps,Web Dashboard & Loader,MCAP Dataset Conversion? High betweenness centrality (0.263) - this node is a cross-community bridge. - Why does
ShenronRadarModelconnectRadar Simulation & ProcessingtoData Recording & Heatmaps? High betweenness centrality (0.179) - this node is a cross-community bridge. - Why does
ScenarioBaseconnectScenario Framework & ManeuverstoOrchestration & Sensor Management,Web Dashboard & Loader? High betweenness centrality (0.122) - this node is a cross-community bridge. - Are the 16 inferred relationships involving
ScenarioBase(e.g. withBrakingScenarioandscenarios/braking.py -------------------- Lead Vehicle Hard Braking Scenario. A) actually correct?ScenarioBasehas 16 INFERRED edges - model-reasoned connections that need verification. - Are the 15 inferred relationships involving
ShenronRadarModel(e.g. withRetrieve GPU hardware info for telemetry display.andFastHeatmapEngine) actually correct?ShenronRadarModelhas 15 INFERRED edges - model-reasoned connections that need verification. - Are the 15 inferred relationships involving
radar(e.g. withShenronRadarModelandInitialize the Shenron Radar Model. Args: radar_) actually correct?radarhas 15 INFERRED edges - model-reasoned connections that need verification. - Are the 14 inferred relationships involving
RadarProcessor(e.g. withShenronRadarModelandInitialize the Shenron Radar Model. Args: radar_) actually correct?RadarProcessorhas 14 INFERRED edges - model-reasoned connections that need verification.