DEV Community

Cover image for 🛰️ Construyendo un Marco Explicable de Anomalías Satelitales Multidominio: De la Sismología a la Agricultura en 48 Horas
Sh@n@
Sh@n@

Posted on

🛰️ Construyendo un Marco Explicable de Anomalías Satelitales Multidominio: De la Sismología a la Agricultura en 48 Horas

Etiquetas: inteligenciaartificial machinelearning python opensource

👩‍💻 Escrito por Roxana Salazar — creadora de IASi e IASi-Agri, proyectos nacidos de una visión que integra ciencia, ética e inteligencia artificial explicable.

Desarrollado durante el Hackathon MLH 2025, este marco explora cómo los datos satelitales pueden aplicarse en distintos dominios — desde el monitoreo sísmico hasta la agricultura de precisión — manteniendo la transparencia como principio central.

“Este repositorio no es una entrega; es una idea viva.”

🌍 Introducción

¿Qué tienen en común los terremotos y la agricultura de precisión?
Ambos necesitan sistemas de alerta temprana que sean explicables, auditables y accionables.

Después de varios meses trabajando en detección de anomalías satelitales, desarrollé IASi (Intelligent Satellite Anomaly System): un marco que puede evolucionar entre dominios, manteniendo siempre la trazabilidad y los principios éticos.

🏆 Certificación de Calidad: CodeFactor A+ | 23/23 pruebas exitosas | 74 % de cobertura

🚨 El Problema: Sistemas Satelitales de Caja Negra

Los sistemas actuales de alerta satelital presentan deficiencias críticas:

❌ Falta de explicabilidad – no se comprende por qué se activa una alerta.

❌ Sin trazabilidad – no se identifican las señales que contribuyen.

❌ Escasa adaptabilidad – dependen de un único dominio o modelo.

❌ Ausencia de ética – sesgos y riesgos de privacidad.

✅ Mi solución: el Marco IASi, diseñado bajo el principio de “explicabilidad primero”.

⚙️ Arquitectura del Marco IASi
🧮 Fundamento Matemático Principal
def iasi_score(signals, weights):
"""
Calcula el puntaje IASi a partir de múltiples señales.
Args:
signals: diccionario con datos A/R/D/M/S
weights: diccionario con pesos alpha/beta/gamma/delta/epsilon
Returns:
Valor IASi [0,1] con trazabilidad completa
"""
A_ = normalize_environmental(signals.get('A', {}))
R_ = normalize_geochemical(signals.get('R', {}))
D_ = normalize_deformation(signals.get('D', {}))
M_ = normalize_marine(signals.get('M', {}))
S_ = normalize_sensors(signals.get('S', {}))

return (weights['alpha'] * A_ + weights['beta'] * R_ + 
        weights['gamma'] * D_ + weights['delta'] * M_ + 
        weights['epsilon'] * S_)
Enter fullscreen mode Exit fullscreen mode

🌐 Arquitectura Multiseñal (A/R/D/M/S)
Código Dominio Descripción
A Ambiental Condiciones atmosféricas, indicadores biológicos
R Geoquímico Emisiones de radón, precursores químicos
D Deformación Desplazamientos InSAR, movimientos del suelo
M Marino Datos oceanográficos y ecosistemas marinos
S Sensores Actividad sísmica y redes de sensores
¿Por qué esta arquitectura funciona?

🔍 Explicable: cada componente es rastreable.

📊 Auditable: pesos configurables por región.

🔄 Adaptable: misma base matemática, distintos dominios.

⚖️ Ética: diseño transparente y centrado en el ser humano.

🌋 Dominio 1: Monitoreo Sísmico (IASi Core)

Configuración sísmica

weights_seismic = {
"alpha": 0.25, "beta": 0.20, "gamma": 0.25, "delta": 0.15, "epsilon": 0.15
}
seismic_signals = {
"A": {"a_score": 0.8},
"R": {"r_zscore": 2.1},
"D": {"d_mm_p95": 18.7},
"M": {"m_verified_ratio": 0.67},
"S": {"s_activity_z": 1.9}
}
score = iasi_score(seismic_signals, weights_seismic)

Resultado: 0.84 (Alerta sísmica alta)

🌾 Dominio 2: Monitoreo Agrícola (IASi-Agri)

La magia de la adaptación: el mismo marco matemático, pero con distinta interpretación de las señales.

def calculate_iea(ndvi, humidity, rainfall, weights, thresholds):
"""IASi adaptado para detección de estrés agrícola."""
ndvi_norm = normalize_ndvi(ndvi)
humidity_norm = normalize_humidity(humidity)
rainfall_norm = normalize_rainfall(rainfall)
iea_score = (ndvi_norm * weights['ndvi'] +
humidity_norm * weights['humidity'] +
rainfall_norm * weights['rainfall'])
if iea_score >= thresholds['high']:
return iea_score, "ALTO", "🚨 Irrigación inmediata recomendada"
elif iea_score >= thresholds['medium']:
return iea_score, "MEDIO", "⏰ Programar irrigación en 24–48 h"
else:
return iea_score, "BAJO", "✅ Mantener monitoreo regular"

🧠 Calidad del Código: Certificación A+
Pruebas Unitarias (74 % de Cobertura)
def test_iasi_score_traceability():
"""Verifica que los componentes del puntaje IASi sean trazables."""
inputs = {
"A": {"a_score": 0.8},
"R": {"r_zscore": 0.0},
"D": {"d_mm_p95": 10.0},
"M": {"m_verified_ratio": 0.6},
"S": {"s_activity_z": 0.0}
}
weights = {k: 0.2 for k in ["alpha","beta","gamma","delta","epsilon"]}
result = iasi_score(inputs, weights)
assert abs(result - 0.58) < 0.01 # Trazabilidad verificada ✅

Métricas de Calidad
Métrica Resultado
🟢 CodeFactor A+ (Top 5 %)
🧪 Pruebas 23/23 exitosas
📈 Cobertura 74 %
🛡️ Seguridad 0 vulnerabilidades
📘 Estilo Cumple PEP8
⚖️ Ética y Procedencia

🔍 Explicabilidad Primero: toda decisión debe ser rastreable.

📂 Validación Abierta: datos y métodos auditables.

⚖️ Umbrales Auditables: configurables por región.

🔒 Privacidad: manejo ético de datos sensibles.

📊 Salida Probabilística: expresa probabilidad, no certeza.

Principio esencial: Validación ≠ Origen.
IASi conserva su historial de desarrollo para garantizar la autoría y la transparencia.

🚀 Resultados y Desempeño

🏆 Código certificado A+ por CodeFactor.

🔬 Rigor científico y documentación completa.

🌎 Adaptabilidad multidominio: de la sismología a la agricultura.

🧩 Arquitectura de IA explicable, lista para escalar en código abierto.

🔗 Referencias y Enlaces

🌐 Repositorio IASi en GitHub

🌾 Demo interactiva IASi-Agri

💬 Colaboraciones

Estoy abierta a colaborar en proyectos de inteligencia artificial explicable, geociencia y agricultura sostenible.
Si compartes la curiosidad por unir transparencia, ética y conocimiento abierto, podemos construir algo que verdaderamente tenga sentido. 🌱

Top comments (0)