Skip to content

Vasallo94/GWV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌌 Gravitational Wave Visualizer

Sistema completo para el análisis y visualización de ondas gravitacionales con asistente AI integrado. Utiliza datos abiertos de LIGO/Virgo/KAGRA y Google Gemini para análisis interactivo.

Python TypeScript License

✨ Características

  • 📡 Acceso a datos abiertos de LIGO/Virgo/KAGRA - Catálogos GWTC completos
  • 📊 Visualizaciones avanzadas - Time series, espectrogramas, ASD, Q-transforms
  • 🤖 Asistente AI con Gemini - Consultas interactivas sobre física de ondas gravitacionales
  • 🚀 API REST completa - Backend FastAPI con documentación automática
  • 💻 Interfaz web moderna - Frontend React/TypeScript con Tailwind CSS
  • 📦 Gestión moderna de dependencias - uv para Python, pnpm para TypeScript

🏗️ Arquitectura

GWV/
├── backend/              # Python backend con FastAPI
│   ├── src/
│   │   ├── gw_visualizer_backend.py    # Core del análisis
│   │   ├── gw_visualizer_api.py        # REST API
│   │   ├── gw_quickstart_demo.py       # Demo CLI
│   │   └── gw_advanced_examples.py     # Ejemplos avanzados
│   ├── pyproject.toml    # Configuración uv
│   └── README.md
│
├── frontend/             # React/TypeScript frontend
│   ├── src/
│   │   ├── GWVisualizer.tsx            # Componente principal
│   │   ├── main.tsx                    # Entry point
│   │   └── index.css                   # Estilos
│   ├── package.json      # Configuración pnpm
│   ├── vite.config.ts    # Configuración Vite
│   └── README.md
│
├── docs/                 # Documentación
│   └── gw_installation_guide.md
│
├── scripts/              # Scripts de automatización
│   ├── install.sh        # Instalación completa
│   ├── start.sh          # Inicio del sistema
│   └── stop.sh           # Detener servicios
│
├── .env.example          # Template de variables de entorno
└── README.md             # Este archivo

🚀 Quick Start

Prerrequisitos

Instalación Automática

# 1. Clonar o descargar el proyecto
cd GWV

# 2. Ejecutar instalación automática
./scripts/install.sh

# 3. Configurar API key
cp .env.example .env
# Editar .env y agregar tu GEMINI_API_KEY

# 4. Iniciar el sistema
./scripts/start.sh

La aplicación estará disponible en:

Instalación Manual

Backend (Python con uv)

cd backend

# Instalar dependencias
uv sync

# Configurar variables de entorno
cp .env.example .env
# Editar .env con tu GEMINI_API_KEY

# Iniciar servidor API
uv run uvicorn src.gw_visualizer_api:app --reload --host 0.0.0.0 --port 8000

# O ejecutar demos
uv run python src/gw_quickstart_demo.py

Frontend (TypeScript con pnpm)

cd frontend

# Instalar dependencias
pnpm install

# Iniciar servidor de desarrollo
pnpm dev

# Build de producción
pnpm build

📖 Uso

Interfaz Web

  1. Abre http://localhost:3000
  2. Selecciona un catálogo de eventos (ej: GWTC-3-confident)
  3. Haz clic en un evento para analizarlo
  4. Explora las visualizaciones (Time Series, Whitened, ASD, Spectrogram)
  5. Usa el asistente AI para hacer preguntas sobre el evento

API REST

# Listar catálogos
curl http://localhost:8000/api/catalogs

# Obtener eventos de un catálogo
curl http://localhost:8000/api/events/GWTC-3-confident?limit=10

# Analizar un evento específico
curl http://localhost:8000/api/analyze/GW150914?detector=L1

# Consultar al asistente AI
curl -X POST http://localhost:8000/api/ask \
  -H "Content-Type: application/json" \
  -d '{
    "question": "¿Qué fue GW150914?",
    "event_name": "GW150914",
    "include_context": true
  }'

Documentación interactiva completa: http://localhost:8000/docs

CLI (Command Line Interface)

# Demo rápido
cd backend
uv run python src/gw_quickstart_demo.py

# Ejemplos avanzados (análisis multi-detector, batch processing)
uv run python src/gw_advanced_examples.py

🛠️ Desarrollo

Backend

cd backend

# Instalar con dependencias de desarrollo
uv sync --extra dev

# Formatear código
uv run black src/

# Linting
uv run ruff check src/

# Tests (cuando estén disponibles)
uv run pytest

Frontend

cd frontend

# Modo desarrollo con hot reload
pnpm dev

# Linting
pnpm lint

# Build
pnpm build

# Preview del build
pnpm preview

📚 Documentación

🔧 Configuración

Variables de Entorno

Crea un archivo .env en la raíz del proyecto:

# Backend
GEMINI_API_KEY=tu_api_key_aqui
API_PORT=8000
API_HOST=0.0.0.0
LOG_LEVEL=INFO

# Frontend
VITE_API_URL=http://localhost:8000

🧪 Ejemplos

Análisis Multi-Detector

from backend.src.gw_advanced_examples import MultiDetectorAnalyzer

analyzer = MultiDetectorAnalyzer('GW150914')
analyzer.fetch_all_detectors()
snr_values = analyzer.compute_snr_comparison()
analyzer.plot_comparison()

Procesamiento por Lotes

from backend.src.gw_advanced_examples import BatchProcessor

processor = BatchProcessor()
events = ['GW150914', 'GW170817', 'GW190521']
results = processor.process_events(events)
processor.generate_report(format='html')

🤝 Contribuir

Las contribuciones son bienvenidas! Por favor:

  1. Fork el proyecto
  2. Crea una branch para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la branch (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la licencia MIT. Ver LICENSE para más detalles.

🙏 Agradecimientos

  • LIGO/Virgo/KAGRA Collaborations - Por los datos abiertos de ondas gravitacionales
  • GWpy - Framework para análisis de datos GW
  • GWOSC - Gravitational Wave Open Science Center
  • Google Gemini - Capacidades de AI generativa
  • FastAPI - Framework web moderno para Python
  • Vite + React - Tooling frontend de nueva generación

📞 Soporte

Si encuentras algún problema o tienes preguntas:

  1. Revisa la documentación
  2. Busca en los issues existentes
  3. Crea un nuevo issue con detalles del problema

🌟 Recursos Adicionales


¡Feliz exploración de ondas gravitacionales! 🌌

About

Gravitational Wave Visualizer — explore and analyze LIGO/Virgo/KAGRA open data (time series, spectrograms, Q-transforms) with an integrated AI assistant powered by Google Gemini.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages