Completed 8 Earth and space dashboards: ✅ Weather & Climate Simulator (weather-climate.sh) - Real-time weather conditions with animated icons - 7-day and hourly forecasts - Precipitation radar with intensity visualization - Weather map with pressure systems - Climate analysis and temperature trends - Weather alerts and atmospheric conditions - UV index, air quality, sun/moon data - Global weather for major cities ✅ Ocean Current Visualizer (ocean-currents.sh) - Global ocean current map (Pacific, Atlantic) - Major currents: Gulf Stream, Kuroshio, Labrador - Temperature by depth (0-4000m layers) - 3D ocean visualization with thermocline - Salinity distribution map - Thermohaline circulation (global conveyor belt) - ENSO status (El Niño/La Niña) - Monitoring buoy network - Ocean health metrics ✅ Seismic Activity Monitor (seismic-monitor.sh) - Global seismic activity map (24h) - Real-time seismograph (3-axis: N-S, E-W, Z) - Recent earthquakes with magnitude, depth, location - Magnitude distribution chart - Tectonic plate boundary visualization - Depth cross-section (0-600km) - Modified Mercalli intensity scale - Tsunami warning system - Alert regions (Ring of Fire, San Andreas, etc.) - Prediction model with risk assessment ✅ Satellite Tracking System (satellite-tracker.sh) - Global satellite coverage (LEO, MEO, GEO) - ISS real-time tracking with ground track - Active satellites: Starlink, GPS, GOES, Hubble, JWST - Space debris monitoring (34,847 objects) - Debris density visualization - Upcoming launches schedule - Orbital elements (Keplerian parameters) - Coverage map with signal strength - Satellite health status - Ground station network ✅ Solar System Explorer (solar-system.sh) - Interactive planet selection (Mercury-Saturn) - Detailed planet visualizations with ASCII art - Complete stats: diameter, distance, orbital period - Interesting facts for each planet - Orbital positions diagram - Active missions: Parker, Perseverance, Juno - Upcoming astronomical events - Solar system statistics (age, planets, moons) ✅ Galaxy Cluster Viewer (galaxy-viewer.sh) - 3 galaxies: Milky Way (edge-on spiral), Andromeda (face-on), Whirlpool - Local Group visualization - Deep space objects: Sombrero, Pinwheel, Centaurus A - Galaxy clusters: Virgo (1,300), Coma (1,000+) - Hubble classification: Elliptical, Spiral, Irregular - Cosmic web structure with filaments - Observable universe stats: 2 trillion galaxies, 10²⁴ stars - Distance & redshift visualization (z=0 to z=10) - Universe composition: 68% dark energy, 27% dark matter, 5% normal ✅ Black Hole Simulator (black-hole-simulator.sh) - Interactive black hole with accretion disk - Adjustable mass (3-100 solar masses) - Schwarzschild radius calculation - Relativistic jets visualization - Spacetime curvature (embedding diagram) - Gravitational lensing (Einstein ring) - Time dilation table (1.0 Rs to 10 Rs) - Black hole types: Stellar, Intermediate, Supermassive, Primordial - Famous black holes: Sgr A*, M87*, Cygnus X-1, TON 618 - Hawking radiation visualization - Stable orbits: photon sphere, ISCO, plunge region ✅ Wormhole Navigator (wormhole-navigator.sh) - Traversable wormhole structure (Morris-Thorne) - Origin to destination transit (Milky Way ↔ Andromeda) - Real-time stability monitoring - Casimir effect exotic matter generator - Morris-Thorne metric equation - Wormhole network map (4 active wormholes) - Energy requirements & zero-point power - Spacetime diagram showing shortcut - Safety warnings based on stability - Transit log with recent crossings - Engage wormhole drive functionality Total: 76+ files, 65+ features across 10 waves! 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
246 lines
14 KiB
Bash
Executable File
246 lines
14 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# BlackRoad OS - Seismic Activity Monitor
|
||
# Real-time earthquake detection and analysis
|
||
|
||
source ~/blackroad-dashboards/themes.sh
|
||
load_theme
|
||
|
||
EARTHQUAKE_COUNT=0
|
||
MAGNITUDE_THRESHOLD=3.0
|
||
|
||
# Generate random earthquake
|
||
generate_earthquake() {
|
||
local mag=$(echo "scale=1; ($RANDOM % 60 + 10) / 10" | bc)
|
||
local depth=$((RANDOM % 500 + 5))
|
||
local lat=$(echo "scale=2; ($RANDOM % 18000 - 9000) / 100" | bc)
|
||
local lon=$(echo "scale=2; ($RANDOM % 36000 - 18000) / 100" | bc)
|
||
|
||
echo "$mag|$depth|$lat|$lon"
|
||
}
|
||
|
||
# Show seismic monitor
|
||
show_seismic_monitor() {
|
||
clear
|
||
echo ""
|
||
echo -e "${BOLD}${ORANGE}╔════════════════════════════════════════════════════════════════════════╗${RESET}"
|
||
echo -e "${BOLD}${ORANGE}║${RESET} ${RED}🌋${RESET} ${BOLD}SEISMIC ACTIVITY MONITOR${RESET} ${BOLD}${ORANGE}║${RESET}"
|
||
echo -e "${BOLD}${ORANGE}╚════════════════════════════════════════════════════════════════════════╝${RESET}"
|
||
echo ""
|
||
|
||
# Global seismic map
|
||
echo -e "${TEXT_MUTED}╭─ GLOBAL SEISMIC ACTIVITY (24H) ───────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
# World map with earthquake markers
|
||
echo " ${TEXT_MUTED}──────────────────────${RESET}"
|
||
echo " ${TEXT_MUTED}╱${RESET} ${RED}●${RESET} ${ORANGE}●${RESET} ${TEXT_MUTED}╲${RESET}"
|
||
echo " ${TEXT_MUTED}╱${RESET} ${YELLOW}●${RESET} ${ORANGE}●${RESET} ${TEXT_MUTED}╲${RESET}"
|
||
echo " ${TEXT_MUTED}Pacific${RESET} ${TEXT_MUTED}│${RESET} ${RED}●${RESET} ${TEXT_MUTED}│${RESET}"
|
||
echo " ${TEXT_MUTED}Ring${RESET} ${TEXT_MUTED}│${RESET} ${ORANGE}●${RESET} ${GREEN}●${RESET} ${TEXT_MUTED}│${RESET}"
|
||
echo " ${TEXT_MUTED}│${RESET} ${RED}●${RESET} ${YELLOW}●${RESET} ${TEXT_MUTED}│${RESET}"
|
||
echo " ${TEXT_MUTED}╲${RESET} ${ORANGE}●${RESET} ${GREEN}●${RESET} ${TEXT_MUTED}╱${RESET}"
|
||
echo " ${TEXT_MUTED}╲${RESET} ${RED}●${RESET} ${ORANGE}●${RESET} ${TEXT_MUTED}╱${RESET}"
|
||
echo " ${TEXT_MUTED}──────────────────────${RESET}"
|
||
echo ""
|
||
echo " ${RED}●${RESET} Major (M 7.0+) ${ORANGE}●${RESET} Strong (M 6.0-6.9) ${YELLOW}●${RESET} Moderate (M 5.0-5.9) ${GREEN}●${RESET} Light (M 3.0-4.9)"
|
||
echo ""
|
||
|
||
# Recent earthquakes
|
||
echo -e "${TEXT_MUTED}╭─ RECENT EARTHQUAKES ──────────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
for ((i=0; i<6; i++)); do
|
||
local eq=$(generate_earthquake)
|
||
local mag=$(echo "$eq" | cut -d'|' -f1)
|
||
local depth=$(echo "$eq" | cut -d'|' -f2)
|
||
local lat=$(echo "$eq" | cut -d'|' -f3)
|
||
local lon=$(echo "$eq" | cut -d'|' -f4)
|
||
|
||
local color="${GREEN}"
|
||
local severity="Light"
|
||
|
||
if (( $(echo "$mag >= 7.0" | bc -l) )); then
|
||
color="${RED}"
|
||
severity="Major"
|
||
elif (( $(echo "$mag >= 6.0" | bc -l) )); then
|
||
color="${ORANGE}"
|
||
severity="Strong"
|
||
elif (( $(echo "$mag >= 5.0" | bc -l) )); then
|
||
color="${YELLOW}"
|
||
severity="Moderate"
|
||
fi
|
||
|
||
local time_ago=$((RANDOM % 120))
|
||
|
||
echo -e " ${color}●${RESET} ${BOLD}M ${mag}${RESET} ${severity} ${TEXT_MUTED}${depth}km deep${RESET} ${CYAN}${lat}, ${lon}${RESET} ${TEXT_MUTED}${time_ago}min ago${RESET}"
|
||
done
|
||
|
||
EARTHQUAKE_COUNT=$((EARTHQUAKE_COUNT + 1))
|
||
echo ""
|
||
|
||
# Seismograph (live)
|
||
echo -e "${TEXT_MUTED}╭─ SEISMOGRAPH (LIVE) ──────────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
# Generate 3 seismograph traces
|
||
for axis in "N-S" "E-W" "Z "; do
|
||
echo -n " ${CYAN}$axis${RESET} ${TEXT_MUTED}│${RESET}"
|
||
|
||
for ((i=0; i<50; i++)); do
|
||
local amplitude=$((RANDOM % 10))
|
||
|
||
if [ $amplitude -gt 7 ]; then
|
||
echo -n "${RED}▂▄▆█${RESET}"
|
||
i=$((i + 3))
|
||
elif [ $amplitude -gt 5 ]; then
|
||
echo -n "${ORANGE}▂${RESET}"
|
||
elif [ $amplitude -gt 3 ]; then
|
||
echo -n "${YELLOW}─${RESET}"
|
||
else
|
||
echo -n "${TEXT_MUTED}─${RESET}"
|
||
fi
|
||
done
|
||
echo ""
|
||
done
|
||
|
||
echo ""
|
||
echo " ${TEXT_MUTED}←─────────────────── 60 seconds ─────────────────────→${RESET}"
|
||
echo ""
|
||
|
||
# Magnitude distribution
|
||
echo -e "${TEXT_MUTED}╭─ MAGNITUDE DISTRIBUTION (24H) ────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo " ${TEXT_MUTED}Mag${RESET}"
|
||
echo " ${TEXT_MUTED}9.0${RESET} ${TEXT_MUTED}│${RESET}"
|
||
echo " ${TEXT_MUTED}8.0${RESET} ${RED}│${RESET}${RED}█${RESET} ${TEXT_MUTED}0 events${RESET}"
|
||
echo " ${TEXT_MUTED}7.0${RESET} ${ORANGE}│${RESET}${ORANGE}██${RESET} ${TEXT_MUTED}2 events${RESET}"
|
||
echo " ${TEXT_MUTED}6.0${RESET} ${YELLOW}│${RESET}${YELLOW}████${RESET} ${TEXT_MUTED}8 events${RESET}"
|
||
echo " ${TEXT_MUTED}5.0${RESET} ${GREEN}│${RESET}${GREEN}████████${RESET} ${TEXT_MUTED}23 events${RESET}"
|
||
echo " ${TEXT_MUTED}4.0${RESET} ${CYAN}│${RESET}${CYAN}████████████████${RESET} ${TEXT_MUTED}94 events${RESET}"
|
||
echo " ${TEXT_MUTED}3.0${RESET} ${BLUE}│${RESET}${BLUE}████████████████████████${RESET} ${TEXT_MUTED}247 events${RESET}"
|
||
echo " ${TEXT_MUTED}└─────────────────────────────────→${RESET}"
|
||
echo " ${TEXT_MUTED}Frequency${RESET}"
|
||
echo ""
|
||
|
||
# Tectonic plates
|
||
echo -e "${TEXT_MUTED}╭─ TECTONIC PLATE BOUNDARIES ───────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo " ${ORANGE}Pacific${RESET} ${CYAN}North American${RESET}"
|
||
echo " ${ORANGE}Plate${RESET} ${CYAN}Plate${RESET}"
|
||
echo " ${TEXT_MUTED}│${RESET} ${RED}▲${RESET} ${TEXT_MUTED}│${RESET} ${RED}Convergent${RESET}"
|
||
echo " ${TEXT_MUTED}│${RESET}${RED}╱${RESET}${RED}│${RESET}${RED}╲${RESET}${TEXT_MUTED}│${RESET}"
|
||
echo " ${ORANGE}←${RESET}${ORANGE}←${RESET}${TEXT_MUTED}│${RESET}${RED}/${RESET} ${TEXT_MUTED}│${RESET}${RED}╲${RESET}${TEXT_MUTED}│${RESET}${CYAN}→${RESET}${CYAN}→${RESET}"
|
||
echo " ${TEXT_MUTED}│${RESET} ${GREEN}▼${RESET} ${TEXT_MUTED}│${RESET} ${GREEN}Subduction${RESET}"
|
||
echo ""
|
||
echo " ${PURPLE}←${RESET}${PURPLE}←${RESET}${PURPLE}←${RESET} ${TEXT_MUTED}|${RESET} ${PINK}→${RESET}${PINK}→${RESET}${PINK}→${RESET} ${YELLOW}Transform${RESET}"
|
||
echo " ${TEXT_MUTED}Divergent boundary${RESET}"
|
||
echo ""
|
||
|
||
# Depth cross-section
|
||
echo -e "${TEXT_MUTED}╭─ DEPTH CROSS-SECTION ─────────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo " ${TEXT_MUTED}0km${RESET} ${YELLOW}~~~~~${RESET} ${TEXT_MUTED}Surface${RESET}"
|
||
echo " ${TEXT_MUTED}10km${RESET} ${GREEN}●${RESET} ${ORANGE}●${RESET} ${TEXT_MUTED}Shallow (0-70km)${RESET}"
|
||
echo " ${TEXT_MUTED}50km${RESET} ${YELLOW}●${RESET}"
|
||
echo " ${TEXT_MUTED}100km${RESET} ${PURPLE}●${RESET} ${TEXT_MUTED}Intermediate (70-300km)${RESET}"
|
||
echo " ${TEXT_MUTED}200km${RESET} ${CYAN}●${RESET}"
|
||
echo " ${TEXT_MUTED}400km${RESET} ${BLUE}●${RESET} ${TEXT_MUTED}Deep (300-700km)${RESET}"
|
||
echo " ${TEXT_MUTED}600km${RESET} ${PINK}●${RESET}"
|
||
echo ""
|
||
|
||
# Intensity scale
|
||
echo -e "${TEXT_MUTED}╭─ MODIFIED MERCALLI INTENSITY SCALE ───────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo -e " ${GREEN}I-III${RESET} ${TEXT_MUTED}Not felt or weak${RESET}"
|
||
echo -e " ${CYAN}IV-V${RESET} ${TEXT_MUTED}Light - widely felt${RESET}"
|
||
echo -e " ${BLUE}VI${RESET} ${TEXT_MUTED}Strong - slight damage${RESET}"
|
||
echo -e " ${YELLOW}VII-VIII${RESET} ${TEXT_MUTED}Very strong - moderate damage${RESET}"
|
||
echo -e " ${ORANGE}IX-X${RESET} ${TEXT_MUTED}Violent - heavy damage${RESET}"
|
||
echo -e " ${RED}XI-XII${RESET} ${TEXT_MUTED}Extreme - total destruction${RESET}"
|
||
echo ""
|
||
|
||
# Alert regions
|
||
echo -e "${TEXT_MUTED}╭─ ACTIVE ALERT REGIONS ────────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo -e " ${RED}⚠${RESET} ${BOLD}Ring of Fire${RESET} ${TEXT_MUTED}Pacific Ocean${RESET} ${RED}HIGH${RESET}"
|
||
echo -e " ${ORANGE}⚠${RESET} ${BOLD}San Andreas Fault${RESET} ${TEXT_MUTED}California, USA${RESET} ${ORANGE}MODERATE${RESET}"
|
||
echo -e " ${YELLOW}⚠${RESET} ${BOLD}Himalayan Belt${RESET} ${TEXT_MUTED}South Asia${RESET} ${YELLOW}ELEVATED${RESET}"
|
||
echo -e " ${GREEN}✓${RESET} ${BOLD}Mid-Atlantic Ridge${RESET} ${TEXT_MUTED}Atlantic Ocean${RESET} ${GREEN}NORMAL${RESET}"
|
||
echo ""
|
||
|
||
# Tsunami warning
|
||
echo -e "${TEXT_MUTED}╭─ TSUNAMI WARNING SYSTEM ──────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Status:${RESET} ${GREEN}No Active Warnings${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Buoys Monitored:${RESET} ${CYAN}847${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Last Warning:${RESET} ${TEXT_MUTED}3 days ago${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}System Health:${RESET} ${GREEN}✓ Operational${RESET}"
|
||
echo ""
|
||
|
||
# Statistics
|
||
echo -e "${TEXT_MUTED}╭─ SEISMIC STATISTICS ──────────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Events (24h):${RESET} ${BOLD}${CYAN}374${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Events (7d):${RESET} ${BOLD}${PURPLE}2,618${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Largest (24h):${RESET} ${BOLD}${ORANGE}M 6.8${RESET} ${TEXT_MUTED}Fiji Islands${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Average Depth:${RESET} ${BOLD}${GREEN}42 km${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Monitoring Stations:${RESET} ${BOLD}${BLUE}15,847${RESET}"
|
||
echo ""
|
||
|
||
# Prediction model
|
||
echo -e "${TEXT_MUTED}╭─ PREDICTION MODEL ────────────────────────────────────────────────────╮${RESET}"
|
||
echo ""
|
||
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Risk Level:${RESET} ${ORANGE}Moderate${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Next 7 Days:${RESET} ${YELLOW}M 5.0-6.0${RESET} ${TEXT_MUTED}probability: 68%${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}High Risk Zone:${RESET} ${RED}Papua New Guinea${RESET}"
|
||
echo -e " ${BOLD}${TEXT_PRIMARY}Foreshock Pattern:${RESET} ${CYAN}Detected${RESET}"
|
||
echo ""
|
||
|
||
echo -e "${ORANGE}─────────────────────────────────────────────────────────────────────────${RESET}"
|
||
echo -e " ${TEXT_SECONDARY}[R]${RESET} Refresh ${TEXT_SECONDARY}[M]${RESET} Map ${TEXT_SECONDARY}[T]${RESET} Tsunami ${TEXT_SECONDARY}[H]${RESET} History ${TEXT_SECONDARY}[Q]${RESET} Quit"
|
||
echo ""
|
||
}
|
||
|
||
# Main loop
|
||
main() {
|
||
while true; do
|
||
show_seismic_monitor
|
||
|
||
read -t 3 -n1 key
|
||
|
||
case "$key" in
|
||
'r'|'R')
|
||
# Refresh
|
||
;;
|
||
'm'|'M')
|
||
echo -e "\n${ORANGE}Loading seismic map...${RESET}"
|
||
sleep 1
|
||
;;
|
||
't'|'T')
|
||
echo -e "\n${CYAN}Checking tsunami warnings...${RESET}"
|
||
sleep 1
|
||
;;
|
||
'h'|'H')
|
||
echo -e "\n${PURPLE}Loading earthquake history...${RESET}"
|
||
sleep 1
|
||
;;
|
||
'q'|'Q')
|
||
echo -e "\n${CYAN}Seismic monitoring ended${RESET}\n"
|
||
exit 0
|
||
;;
|
||
esac
|
||
done
|
||
}
|
||
|
||
# Run
|
||
main
|