refactor: remove emojis from titles and buttons for a cleaner UI
All checks were successful
Build & Deploy Shannon / 🏗️ Build & Deploy Shannon (push) Successful in 1m3s
All checks were successful
Build & Deploy Shannon / 🏗️ Build & Deploy Shannon (push) Successful in 1m3s
This commit is contained in:
@@ -66,7 +66,7 @@ _ORBITS_HTML = """
|
||||
<canvas id="c"></canvas>
|
||||
|
||||
<div id="info">
|
||||
<h3>🛰️ Orbit Comparison</h3>
|
||||
<h3>Orbit Comparison</h3>
|
||||
<div id="infoContent">
|
||||
<p style="color:#94a3b8; text-align:center;">
|
||||
Hover over a satellite to see its details.
|
||||
@@ -226,8 +226,8 @@ function showInfo(o) {
|
||||
<div class="stat"><span class="label">FSPL</span><span class="value">${o.fsplDb}</span></div>
|
||||
<div class="stat"><span class="label">Coverage</span><span class="value">${o.coverage}</span></div>
|
||||
<hr>
|
||||
<div class="stat"><span class="label">✅ Pros</span><span class="value" style="text-align:right; max-width:160px">${o.pros}</span></div>
|
||||
<div class="stat"><span class="label">⚠️ Cons</span><span class="value" style="text-align:right; max-width:160px">${o.cons}</span></div>
|
||||
<div class="stat"><span class="label">Pros</span><span class="value" style="text-align:right; max-width:160px">${o.pros}</span></div>
|
||||
<div class="stat"><span class="label">Cons</span><span class="value" style="text-align:right; max-width:160px">${o.cons}</span></div>
|
||||
<hr>
|
||||
<div class="stat"><span class="label">Examples</span><span class="value" style="color:#4FC3F7">${o.examples}</span></div>
|
||||
`;
|
||||
@@ -489,7 +489,7 @@ draw();
|
||||
|
||||
def render():
|
||||
"""Render the GEO/MEO/LEO orbit comparison animation."""
|
||||
st.markdown("## 🌍 Satellite Orbits — GEO vs MEO vs LEO")
|
||||
st.markdown("## Satellite Orbits — GEO vs MEO vs LEO")
|
||||
st.markdown(
|
||||
"Compare the three main satellite orbit types. "
|
||||
"Hover over satellites or legend items to explore their characteristics."
|
||||
@@ -500,50 +500,50 @@ def render():
|
||||
|
||||
# ── Educational content below ──
|
||||
st.divider()
|
||||
st.markdown("### 📊 Orbit Comparison at a Glance")
|
||||
st.markdown("### Orbit Comparison at a Glance")
|
||||
|
||||
col1, col2, col3 = st.columns(3)
|
||||
|
||||
with col1:
|
||||
st.markdown("""
|
||||
#### 🟢 LEO — Low Earth Orbit
|
||||
#### LEO — Low Earth Orbit
|
||||
**160 – 2 000 km**
|
||||
|
||||
- ⚡ Latency: **4 – 20 ms** (RTT)
|
||||
- 📉 FSPL: ~155 dB (Ku-band)
|
||||
- 🔄 Period: ~90 – 120 min
|
||||
- 📡 Small footprint → **large constellations** needed (hundreds to thousands)
|
||||
- 🤝 Requires **handover** between satellites
|
||||
- 🛰️ *Starlink (550 km), OneWeb (1 200 km), Iridium (780 km)*
|
||||
- Latency: **4 – 20 ms** (RTT)
|
||||
- FSPL: ~155 dB (Ku-band)
|
||||
- Period: ~90 – 120 min
|
||||
- Small footprint → **large constellations** needed (hundreds to thousands)
|
||||
- Requires **handover** between satellites
|
||||
- *Starlink (550 km), OneWeb (1 200 km), Iridium (780 km)*
|
||||
""")
|
||||
|
||||
with col2:
|
||||
st.markdown("""
|
||||
#### 🟡 MEO — Medium Earth Orbit
|
||||
#### MEO — Medium Earth Orbit
|
||||
**2 000 – 35 786 km**
|
||||
|
||||
- ⚡ Latency: **40 – 80 ms** (RTT)
|
||||
- 📉 FSPL: ~186 dB (Ku-band)
|
||||
- 🔄 Period: ~2 – 12 h
|
||||
- 📡 Medium footprint → **medium constellations** (20 – 50 sats)
|
||||
- 🌍 Good balance between coverage and latency
|
||||
- 🛰️ *GPS (20 200 km), Galileo, O3b/SES (8 000 km)*
|
||||
- Latency: **40 – 80 ms** (RTT)
|
||||
- FSPL: ~186 dB (Ku-band)
|
||||
- Period: ~2 – 12 h
|
||||
- Medium footprint → **medium constellations** (20 – 50 sats)
|
||||
- Good balance between coverage and latency
|
||||
- *GPS (20 200 km), Galileo, O3b/SES (8 000 km)*
|
||||
""")
|
||||
|
||||
with col3:
|
||||
st.markdown("""
|
||||
#### 🔴 GEO — Geostationary Orbit
|
||||
#### GEO — Geostationary Orbit
|
||||
**35 786 km (fixed)**
|
||||
|
||||
- ⚡ Latency: **240 – 280 ms** (RTT)
|
||||
- 📉 FSPL: ~205 dB (Ku-band)
|
||||
- 🔄 Period: 23 h 56 min (= 1 sidereal day)
|
||||
- 📡 Huge footprint → **3 sats = global** coverage
|
||||
- 📌 **Fixed position** in the sky — no tracking needed
|
||||
- 🛰️ *Intelsat, SES, Eutelsat, ViaSat*
|
||||
- Latency: **240 – 280 ms** (RTT)
|
||||
- FSPL: ~205 dB (Ku-band)
|
||||
- Period: 23 h 56 min (= 1 sidereal day)
|
||||
- Huge footprint → **3 sats = global** coverage
|
||||
- **Fixed position** in the sky — no tracking needed
|
||||
- *Intelsat, SES, Eutelsat, ViaSat*
|
||||
""")
|
||||
|
||||
with st.expander("🔬 Key Trade-offs in Detail"):
|
||||
with st.expander("Key Trade-offs in Detail"):
|
||||
st.markdown(r"""
|
||||
| Parameter | LEO | MEO | GEO |
|
||||
|:---|:---:|:---:|:---:|
|
||||
@@ -569,7 +569,7 @@ for the same bandwidth and transmit power. LEO compensates with lower FSPL
|
||||
but requires more satellites and complex handover.
|
||||
""")
|
||||
|
||||
with st.expander("🛰️ Notable Constellations"):
|
||||
with st.expander("Notable Constellations"):
|
||||
st.markdown("""
|
||||
| Constellation | Orbit | Altitude | # Satellites | Use Case |
|
||||
|:---|:---:|:---:|:---:|:---|
|
||||
|
||||
Reference in New Issue
Block a user