0rbix / src /prediction.py
nicolasleiva's picture
Initial commit: Add complete Orbix project
3dc2617
import tensorflow as tf
import logging
from .quantum_trajectory import QuantumTrajectoryModel
from .config import MODEL_PATH
logger = logging.getLogger("Orbix")
# Variable global para almacenar el modelo
global_model = None
def load_model():
"""
Carga los pesos del modelo cuántico desde el directorio de producción.
"""
global global_model
global_model = QuantumTrajectoryModel()
try:
global_model.load_weights(MODEL_PATH)
logger.info("Modelo cuántico cargado con éxito desde %s", MODEL_PATH)
except Exception as e:
logger.error("Error al cargar el modelo: %s", str(e))
raise e
def predict_trajectory(tle_data: dict) -> dict:
"""
Predice la trayectoria orbital usando el modelo cuántico a partir de datos TLE.
Se espera que tle_data incluya claves 'data' y 'satellite_id'.
"""
try:
input_data = tle_data.get("data", [])
if not input_data:
raise ValueError("Datos TLE vacíos")
input_tensor = tf.convert_to_tensor([input_data], dtype=tf.float32)
prediction = global_model(input_tensor, training=False)
return {
"satellite_id": tle_data.get("satellite_id", "unknown"),
"trajectory": prediction.numpy().tolist()
}
except Exception as e:
logger.error("Error en la predicción: %s", str(e))
return {"error": str(e)}