Functions: Radio
Functions for predicting Jupiter decametric radio emissions. Jupiter is the strongest radio source in the solar system after the Sun, producing bursts in the 10-40 MHz range driven by the interaction between Io and Jupiter’s magnetosphere. These functions compute the geometric parameters needed to predict when bursts are likely.
io_phase_angle
Section titled “io_phase_angle”Computes the orbital phase angle of Io relative to Jupiter’s superior conjunction as seen from Earth. The phase angle determines the position of Io in its orbit as projected against Jupiter’s disk, which is one of two parameters needed for burst prediction.
Signature
Section titled “Signature”io_phase_angle(t timestamptz) → float8Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
t | timestamptz | Evaluation time |
Returns
Section titled “Returns”Io’s orbital phase angle in degrees, range [0, 360).
- 0 = superior conjunction (Io behind Jupiter, as seen from Earth)
- 90 = eastern elongation (Io east of Jupiter)
- 180 = inferior conjunction (Io between Earth and Jupiter)
- 270 = western elongation (Io west of Jupiter)
Example
Section titled “Example”-- Current Io phase angleSELECT round(io_phase_angle(now())::numeric, 1) AS io_phase;-- Io phase over the next 24 hours at 30-minute intervalsSELECT t, round(io_phase_angle(t)::numeric, 1) AS io_phaseFROM generate_series(now(), now() + interval '24 hours', interval '30 minutes') AS t;jupiter_cml
Section titled “jupiter_cml”Computes Jupiter’s Central Meridian Longitude (CML) in System III (1965.0) as seen from an Earth-based observer. System III is tied to Jupiter’s magnetic field rotation (period = 9h 55m 29.711s) and is the standard reference for radio astronomy.
The result is corrected for light travel time between Jupiter and the observer.
Signature
Section titled “Signature”jupiter_cml(obs observer, t timestamptz) → float8Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
obs | observer | Observer location on Earth |
t | timestamptz | Observation time |
Returns
Section titled “Returns”Central Meridian Longitude in degrees, range [0, 360). This is the longitude of the Jovian meridian facing the observer at the given time, in System III coordinates.
Example
Section titled “Example”-- Current Jupiter CML from BoulderSELECT round(jupiter_cml('40.0N 105.3W 1655m'::observer, now())::numeric, 1) AS cml;-- CML sweep over one Jupiter rotation (~9h 55m)SELECT t, round(jupiter_cml('40.0N 105.3W 1655m'::observer, t)::numeric, 1) AS cmlFROM generate_series( now(), now() + interval '9 hours 55 minutes', interval '10 minutes' ) AS t;jupiter_burst_probability
Section titled “jupiter_burst_probability”Computes the probability of detecting a Jupiter decametric radio burst given the current Io phase angle and Jupiter CML. Based on the Carr, Desch & Alexander (1983) source region model.
The function evaluates whether the Io phase and CML fall within one of the known emission source regions and returns a probability between 0 and 1.
Signature
Section titled “Signature”jupiter_burst_probability(io_phase float8, cml float8) → float8Parameters
Section titled “Parameters”| Parameter | Type | Unit | Description |
|---|---|---|---|
io_phase | float8 | degrees | Io orbital phase angle (output of io_phase_angle) |
cml | float8 | degrees | Jupiter CML System III (output of jupiter_cml) |
Returns
Section titled “Returns”Burst probability as a value from 0.0 to 1.0.
Source Regions
Section titled “Source Regions”The Carr model identifies four primary Io-related source regions in the Io phase vs. CML parameter space:
| Source | Io Phase Range | CML Range | Description |
|---|---|---|---|
| Io-A | 195-265 | 200-290 | Strongest Io-related source. Io near western elongation, CML in the 200-290 range. |
| Io-B | 75-105 | 95-195 | Second strongest. Io near eastern elongation, CML roughly opposite to Io-A. |
| Io-C | 195-265 | 290-10 | Weaker Io-related source. Same Io phase as Io-A but different CML range. |
| Io-D | 75-105 | 0-95 | Weakest of the four. Same Io phase as Io-B but CML shifted. |
Example
Section titled “Example”-- Current burst probabilitySELECT round( jupiter_burst_probability( io_phase_angle(now()), jupiter_cml('40.0N 105.3W 1655m'::observer, now()) )::numeric, 3) AS burst_prob;-- Find high-probability windows tonightSELECT t, round(io_phase_angle(t)::numeric, 1) AS io_phase, round(jupiter_cml('40.0N 105.3W 1655m'::observer, t)::numeric, 1) AS cml, round(jupiter_burst_probability( io_phase_angle(t), jupiter_cml('40.0N 105.3W 1655m'::observer, t) )::numeric, 3) AS probabilityFROM generate_series( '2024-06-15 02:00:00+00', '2024-06-15 10:00:00+00', interval '5 minutes' ) AS tWHERE jupiter_burst_probability( io_phase_angle(t), jupiter_cml('40.0N 105.3W 1655m'::observer, t) ) > 0.2ORDER BY probability DESC;-- Full radio observing plan: combine burst probability with Jupiter visibilitySELECT t, round(topo_elevation(jup)::numeric, 1) AS jupiter_el, round(io_phase_angle(t)::numeric, 1) AS io_phase, round(jupiter_cml('40.0N 105.3W 1655m'::observer, t)::numeric, 1) AS cml, round(jupiter_burst_probability( io_phase_angle(t), jupiter_cml('40.0N 105.3W 1655m'::observer, t) )::numeric, 3) AS burst_probFROM generate_series( '2024-06-15 02:00:00+00', '2024-06-15 10:00:00+00', interval '10 minutes' ) AS t, planet_observe(5, '40.0N 105.3W 1655m'::observer, t) AS jupWHERE topo_elevation(jup) > 10 AND jupiter_burst_probability( io_phase_angle(t), jupiter_cml('40.0N 105.3W 1655m'::observer, t) ) > 0.1;