4 changed files with 9201 additions and 0 deletions
-
1graphify-out/.graphify_python
-
263graphify-out/GRAPH_REPORT.md
-
257graphify-out/graph.html
-
8680graphify-out/graph.json
@ -0,0 +1 @@ |
|||||
|
C:\Users\rakadu1\AppData\Local\Programs\Python\Python314\python.exe |
||||
@ -0,0 +1,263 @@ |
|||||
|
# 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|Scenario Framework & Maneuvers]] |
||||
|
- [[_COMMUNITY_Radar Simulation & Processing|Radar Simulation & Processing]] |
||||
|
- [[_COMMUNITY_Orchestration & Sensor Management|Orchestration & Sensor Management]] |
||||
|
- [[_COMMUNITY_Data Recording & Heatmaps|Data Recording & Heatmaps]] |
||||
|
- [[_COMMUNITY_Data Conversion Utilities|Data Conversion Utilities]] |
||||
|
- [[_COMMUNITY_Web Dashboard & Loader|Web Dashboard & Loader]] |
||||
|
- [[_COMMUNITY_LiDAR & Fast Heatmap Gen|LiDAR & Fast Heatmap Gen]] |
||||
|
- [[_COMMUNITY_DSP & CFAR Detection|DSP & CFAR Detection]] |
||||
|
- [[_COMMUNITY_Scene Reconstruction|Scene Reconstruction]] |
||||
|
- [[_COMMUNITY_Dashboard Frontend (JS)|Dashboard Frontend (JS)]] |
||||
|
- [[_COMMUNITY_MCAP Dataset Conversion|MCAP Dataset Conversion]] |
||||
|
- [[_COMMUNITY_Radar Signal Detection|Radar Signal Detection]] |
||||
|
- [[_COMMUNITY_Data Quality Inspection|Data Quality Inspection]] |
||||
|
- [[_COMMUNITY_Deep Metrology Analysis|Deep Metrology Analysis]] |
||||
|
- [[_COMMUNITY_Metrology Comparison|Metrology Comparison]] |
||||
|
- [[_COMMUNITY_Community 15|Community 15]] |
||||
|
- [[_COMMUNITY_Community 16|Community 16]] |
||||
|
- [[_COMMUNITY_Community 17|Community 17]] |
||||
|
- [[_COMMUNITY_Community 18|Community 18]] |
||||
|
- [[_COMMUNITY_Community 19|Community 19]] |
||||
|
- [[_COMMUNITY_Community 20|Community 20]] |
||||
|
- [[_COMMUNITY_Community 21|Community 21]] |
||||
|
- [[_COMMUNITY_Community 22|Community 22]] |
||||
|
- [[_COMMUNITY_Community 23|Community 23]] |
||||
|
- [[_COMMUNITY_Community 24|Community 24]] |
||||
|
- [[_COMMUNITY_Community 25|Community 25]] |
||||
|
- [[_COMMUNITY_Community 26|Community 26]] |
||||
|
- [[_COMMUNITY_Community 27|Community 27]] |
||||
|
- [[_COMMUNITY_Community 28|Community 28]] |
||||
|
- [[_COMMUNITY_Community 29|Community 29]] |
||||
|
- [[_COMMUNITY_Community 30|Community 30]] |
||||
|
- [[_COMMUNITY_Community 31|Community 31]] |
||||
|
- [[_COMMUNITY_Community 32|Community 32]] |
||||
|
|
||||
|
## God Nodes (most connected - your core abstractions) |
||||
|
1. `ScenarioBase` - 26 edges |
||||
|
2. `ShenronRadarModel` - 22 edges |
||||
|
3. `radar` - 20 edges |
||||
|
4. `RadarProcessor` - 20 edges |
||||
|
5. `main()` - 20 edges |
||||
|
6. `run_testbench()` - 12 edges |
||||
|
7. `Recorder` - 11 edges |
||||
|
8. `SensorManager` - 11 edges |
||||
|
9. `BrakingScenario` - 9 edges |
||||
|
10. `CutInScenario` - 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.py |
||||
|
- `Step 11: Deep Intersection Guidance for Ego.` --uses--> `ScenarioBase` [INFERRED] |
||||
|
scenarios\showcase.py → scenarios\base.py |
||||
|
- `Step 11: Multi-stage steering logic.` --uses--> `ScenarioBase` [INFERRED] |
||||
|
scenarios\showcase.py → scenarios\base.py |
||||
|
- `src/scenario_loader.py ---------------------- Dynamic scenario discovery and loa` --uses--> `ScenarioBase` [INFERRED] |
||||
|
src\scenario_loader.py → scenarios\base.py |
||||
|
- `Discover 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.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 15`** (2 nodes): `get_pos()`, `get_pos.py` |
||||
|
Too 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.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 19`** (2 nodes): `research_metrology()`, `research_metrology.py` |
||||
|
Too 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. Parameters` |
||||
|
Too 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 fina` |
||||
|
Too 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 Non` |
||||
|
Too 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, the` |
||||
|
Too 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. Returns` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 27`** (1 nodes): `__init__.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 28`** (1 nodes): `__init__.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 29`** (1 nodes): `verify_tags.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 30`** (1 nodes): `path_config.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 31`** (1 nodes): `__init__.py` |
||||
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted. |
||||
|
- **Thin community `Community 32`** (1 nodes): `check_lidar.py` |
||||
|
Too 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()` connect `Orchestration & Sensor Management` to `Scenario 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 `ShenronRadarModel` connect `Radar Simulation & Processing` to `Data Recording & Heatmaps`?** |
||||
|
_High betweenness centrality (0.179) - this node is a cross-community bridge._ |
||||
|
- **Why does `ScenarioBase` connect `Scenario Framework & Maneuvers` to `Orchestration & 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. with `BrakingScenario` and `scenarios/braking.py -------------------- Lead Vehicle Hard Braking Scenario. A`) actually correct?** |
||||
|
_`ScenarioBase` has 16 INFERRED edges - model-reasoned connections that need verification._ |
||||
|
- **Are the 15 inferred relationships involving `ShenronRadarModel` (e.g. with `Retrieve GPU hardware info for telemetry display.` and `FastHeatmapEngine`) actually correct?** |
||||
|
_`ShenronRadarModel` has 15 INFERRED edges - model-reasoned connections that need verification._ |
||||
|
- **Are the 15 inferred relationships involving `radar` (e.g. with `ShenronRadarModel` and `Initialize the Shenron Radar Model. Args: radar_`) actually correct?** |
||||
|
_`radar` has 15 INFERRED edges - model-reasoned connections that need verification._ |
||||
|
- **Are the 14 inferred relationships involving `RadarProcessor` (e.g. with `ShenronRadarModel` and `Initialize the Shenron Radar Model. Args: radar_`) actually correct?** |
||||
|
_`RadarProcessor` has 14 INFERRED edges - model-reasoned connections that need verification._ |
||||
257
graphify-out/graph.html
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
8680
graphify-out/graph.json
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue