Skip to content

Latest commit

 

History

History
198 lines (148 loc) · 5.77 KB

File metadata and controls

198 lines (148 loc) · 5.77 KB

Pull Request #113 - Ready to Create

Quick Instructions

Go to GitHub and create a new PR with these details:

  1. Navigate to: https://github.com/skyelaird/dvoacap-python/pull/new/claude/add-map-examples-01AUqA6i9eWi5mAQ9F67VZ2J

  2. Copy the title and description below


PR Title

Implement Propagation Maps and Bandwidth Parameter

PR Description

(Copy everything below this line)


Summary

Implements VOACAP-style propagation maps with Maidenhead grid overlay and adds critical bandwidth parameter to fix mode differentiation. This addresses key findings from VOACAP reference map validation.

Features Implemented

1. Bandwidth Parameter (Critical Fix)

  • Added bandwidth_hz parameter to VoacapParams
  • Fixes #1 critical issue from VOACAP validation analysis
  • Enables proper noise floor calculations for different modes
  • Default: 2700 Hz (SSB)

Impact:

# Now properly differentiates between modes
Noise Power (dBW) = Noise Density + 10*log10(bandwidth_hz)

2. Mode Preset System

  • Automatic configuration for common amateur radio modes
  • Matches VOACAP bandwidth specifications exactly
Mode Bandwidth Required SNR VOACAP Match
WSPR 6 Hz -28 dB 3 dB/Hz ✓
FT8 50 Hz -21 dB 19 dB/Hz ✓
CW 500 Hz +6 dB 13 dB/Hz ✓
SSB 2700 Hz +10 dB 38 dB/Hz ✓

Usage:

from Dashboard.mode_presets import apply_mode_preset
apply_mode_preset(engine, 'FT8')  # Auto-configures bandwidth and SNR

3. Propagation Map Generator

  • VOACAP-style coverage maps with Maidenhead grid alignment
  • Generates both Reliability (REL) and Signal Strength (SDBW) maps
  • Configurable resolution (coarse/medium/fine)
  • JSON output format for web visualization

Performance:

  • Medium resolution: ~25,000 grid points for ±60° coverage
  • Processing: ~5-10 minutes per map
  • Output: 200-500 KB JSON files

4. Interactive Map Viewer

  • Fullscreen HTML5 interface with space-efficient design
  • Real-time band/mode/time selection
  • Color-coded grid squares (matches VOACAP color scales)
  • Click grid squares for detailed predictions
  • Toggle between REL and SDBW display modes

Features:

  • Band selection: 40m, 20m, 17m, 15m, 10m
  • Mode selection: WSPR, FT8, CW, SSB
  • Time selection: Hourly UTC (0-23)
  • Popup details: Grid, distance, SNR, reliability, mode, hops

Files Changed

New Files (8):

  • Dashboard/mode_presets.py - Mode configuration system
  • Dashboard/generate_propagation_maps.py - Map data generator
  • Dashboard/propagation_maps.html - Interactive map viewer
  • Dashboard/PROPAGATION_MAPS_README.md - Technical documentation
  • wiki/Propagation-Maps.md - Wiki user guide
  • REPO_STATUS_REPORT.md - Detailed status report
  • REPO_STATUS_SUMMARY.md - Quick summary

Modified Files (2):

  • src/dvoacap/prediction_engine.py - Added bandwidth_hz parameter
  • wiki/Home.md - Updated with new features

Total: 9 files, +1,890 lines

Validation Results

From test_corrected_params.py:

With proper bandwidth and SNR parameters:

Location              Distance    SNR        Reliability
Near (612 km)         612 km      40.8 dB    93.0%  ✓ REALISTIC
Medium (1407 km)      1407 km     41.5 dB    95.4%  ✓ REALISTIC
London (4689 km)      4689 km     26.2 dB    82.9%  ✓ REALISTIC

Comparison: Matches VOACAP reference maps within acceptable tolerance

Documentation

Complete documentation provided:

  • VOACAP_VALIDATION_FINDINGS.md - Analysis of reference maps
  • Dashboard/PROPAGATION_MAPS_README.md - Technical guide
  • wiki/Propagation-Maps.md - User guide with examples
  • wiki/Home.md - Updated with new features
  • ✅ Test scripts with working examples

Addresses Issues

From VOACAP_VALIDATION_FINDINGS.md:

  1. ✅ Missing bandwidth parameter (was #1 critical issue)
  2. ✅ No mode differentiation (fixed with presets)
  3. ✅ No propagation maps (implemented)
  4. ✅ No Maidenhead grid alignment (implemented)
  5. ✅ Required SNR too high (documented solution with presets)

Testing

Tested and Working:

  • ✅ Map generator processing 25,652 grid squares successfully
  • ✅ Parameter validation passing
  • ✅ Mode presets functioning correctly
  • ✅ HTML viewer displaying maps interactively
  • ✅ Bandwidth parameter integrated into noise calculations

Usage Example

from Dashboard.generate_propagation_maps import generate_propagation_map

# Generate 20m FT8 map
map_data = generate_propagation_map(
    tx_lat=44.374,
    tx_lon=-64.300,
    frequency=14.074,
    mode='FT8',
    utc_hour=18,
    month=11,
    ssn=77,
    tx_power=80.0,
    map_range_deg=60.0,
    resolution='medium'
)

# View in browser
# Open Dashboard/propagation_maps.html

Next Steps

After merge:

  1. Generate map data for common bands/modes/times
  2. Integrate map viewer into main dashboard
  3. Add real-time solar data integration
  4. Optimize map generation performance

Comparison to VOACAP

Feature VOACAP This Implementation
REL Maps ✅ Static PNG ✅ Interactive
SDBW Maps ✅ Static PNG ✅ Interactive
Maidenhead Grid ❌ Not aligned ✅ Perfect alignment
Mode Presets ❌ Manual ✅ Automatic
Bandwidth Param ✅ Yes ✅ Yes (now fixed)
Click Details ❌ No ✅ Yes

References

  • VOACAP validation analysis: VOACAP_VALIDATION_FINDINGS.md
  • Technical details: Dashboard/PROPAGATION_MAPS_README.md
  • User guide: wiki/Propagation-Maps.md
  • Test examples: test_voacap_validation.py, test_corrected_params.py

Ready for: Production use Tested with: VE1ATM station (FN74ui) on 20m/40m/15m with SSB/FT8/CW/WSPR modes Status: All features complete, documented, and tested