# James Webb Space Telescope Integration for RF SCYTHE

This module integrates James Webb Space Telescope (JWST) space weather observations with the RF SCYTHE system, enhancing ionospheric propagation modeling and RF signal analysis.

## Overview

The JWST integration provides:

1. **Space Weather Data**: Real-time solar activity metrics including solar flux, Kp index, and solar wind data
2. **CME Predictions**: Coronal Mass Ejection predictions with impact timing and severity
3. **Ionospheric Modeling**: Enhanced ionospheric modeling using JWST observations
4. **RF Propagation Impact Analysis**: Calculate how space weather affects signal propagation
5. **Visualization**: Visual representation of space weather and ionospheric conditions

## Components

The integration consists of the following components:

- **`jwst_integration.js`**: Main JavaScript module for browser-based integration
- **`jwst-visualization.js`**: Frontend visualization module for displaying JWST data
- **`jwst_data_processor.py`**: Python processor for JWST and space weather data
- **`jwst_data_server.py`**: WebSocket server for streaming JWST data to clients
- **`jwst-enhanced-visualization.html`**: Example visualization interface

## Installation

1. Install the required Python packages:

```bash
pip install numpy scipy matplotlib requests websockets
```

2. Include the JavaScript libraries in your HTML:

```html
<script src="jwst_integration.js"></script>
<script src="jwst-visualization.js"></script>
```

3. Start the data server:

```bash
python jwst_data_server.py
```

## Usage

### JavaScript Integration

```javascript
// Initialize JWST integration
const jwstIntegration = new JWSTIntegration();
jwstIntegration.initialize()
    .then(success => {
        console.log('JWST integration initialized successfully');
        
        // Get solar activity data
        const solarData = jwstIntegration.getSolarActivityData();
        console.log('Solar Flux:', solarData.solarFlux);
        console.log('Kp Index:', solarData.kpIndex);
        
        // Check for CME predictions
        const cmeData = jwstIntegration.getCoronalMassEjectionData();
        if (cmeData.length > 0) {
            console.log('CME predicted in', cmeData[0].estimatedTimeToEarth, 'hours');
        }
    });
```

### Map Visualization Integration

```javascript
// Initialize with a Leaflet map
const map = L.map('map-element').setView([20, 0], 2);

// Add JWST visualization
RF_SCYTHE.JWST.initializeJWSTVisualization(map)
    .then(success => {
        console.log('JWST visualization added to map');
    });

// Calculate RF propagation impact
const rfImpact = RF_SCYTHE.JWST.calculateRFPropagationImpact(
    14.200, // Frequency in MHz
    { lat: 37.7, lng: -122.4, alt: 0 }, // Start point
    { lat: 40.7, lng: -74.0, alt: 0 }   // End point
);
```

### Python API

```python
from jwst_data_processor import JWSTDataProcessor

# Create processor
processor = JWSTDataProcessor()

# Update data
processor.update_data()

# Get ionospheric parameters at a location
params = processor.get_ionospheric_parameters(37.7749, -122.4194)
print(f"F2 critical frequency: {params['foF2']} MHz")
print(f"Maximum Usable Frequency: {params['muf']} MHz")

# Calculate RF effects for a specific frequency
effects = processor.calculate_rf_effects(14.200, 37.7749, -122.4194)
print(f"Attenuation: {effects['propagationEffects']['attenuation']} dB")

# Generate visualization
processor.generate_visualization('ionospheric_conditions.png')
```

## Integration with Existing RF SCYTHE Components

The JWST integration enhances:

1. **SDR Signal Analysis**: By providing context on how space weather affects received signals
2. **RF Propagation Prediction**: With more accurate ionospheric modeling
3. **Anomaly Detection**: By attributing signal anomalies to space weather events
4. **Map Visualization**: With ionospheric and space weather overlays

## Example Web Interface

An example visualization interface is provided in `jwst-enhanced-visualization.html`. This demonstrates how to integrate JWST data into a web application with:

- Real-time space weather monitoring
- RF propagation analysis with JWST data integration
- 2D map and 3D globe visualization
- Signal analysis with space weather context

## Data Sources

While we reference "JWST data," the implementation primarily uses:

1. NOAA SWPC (Space Weather Prediction Center) data
2. GOES satellite X-ray flux measurements 
3. Magnetometer data
4. Ionospheric models enhanced with space weather observations

In a real implementation, you would integrate with actual JWST observations as they become available for space weather research.

## License

This integration is part of the RF SCYTHE project and follows the same licensing terms.
