Fork de SPLAT! (John A. Magliacane, KD2BD, 2002-2014), bajo GPLv2 heredada del original. El núcleo de cálculo de propagación (ITWOM v3.0, Sid Shumate) se mantiene sin modificar en cpp/itwom3.0.cpp, llamado vía FFI. El resto del pipeline (lectura de formatos SPLAT!, reportes, mapas, KML, gnuplot) se reescribió en Rust, con paralelización nativa vía rayon reemplazando el paralelismo por múltiples procesos del original. Validado contra el corpus golden de SPLAT! con drift < 0.02 dB en cálculos ITWOM.
splat-rs
splat-rs es un fork / port a Rust de SPLAT! (Signal Propagation, Loss, And Terrain analysis tool), la herramienta de predicción de cobertura de radiofrecuencia de referencia en el mundo del radioaficionado y la radiodifusión.
Proyecto original
SPLAT! fue creado por John A. Magliacane, KD2BD (2002–2014) y es software libre bajo GPLv2. Este repositorio es un fork derivado de SPLAT! 1.4.2 — no es un proyecto independiente ni pretende serlo.
El núcleo de cálculo de pérdida de propagación (ITWOM v3.0, de
Sid Shumate, a su vez basado en el modelo ITM/Longley-Rice de dominio
público del NTIA/ITS con contribuciones de J. D. McDonald y del propio
John A. Magliacane) se mantiene sin modificar, compilado desde
cpp/itwom3.0.cpp y llamado vía FFI (cpp/itwom_ffi.cpp → src/itwom.rs).
Ver cabecera de ese archivo para la historia completa de autoría del modelo.
Qué cambia este fork
- Port completo a Rust del resto del pipeline (antes en C++): lectura de
.qth/.lrp/.sdf/.az/.el/.udt/.cities, generación de reportes, mapas de cobertura, KML, gráficos vía gnuplot. - Paralelización nativa con rayon: el cálculo de cobertura, que en el SPLAT! original se paralelizaba lanzando múltiples procesos por separado (uno por radial/azimut), acá corre en un solo proceso multi-hilo — mismo resultado numérico (validado contra el corpus golden de SPLAT! con drift < 0.02 dB), muchísimo más rápido.
- Salidas en español, tabla de intensidad de campo (SFT) nueva, defaults métricos, leyenda SVG nativa sin depender de un bitmap font vendorizado.
Detalle completo de las fases de desarrollo y decisiones de diseño en el historial de commits.
Binarios
| Binario | Descripción |
|---|---|
splat-rs |
Herramienta principal — compatible en banderas con el SPLAT! original |
splat-bench |
Microbenchmark serial vs. paralelo del núcleo ITWOM |
Compilar
cargo build --release
Requiere un compilador de C++ (se compila cpp/itwom3.0.cpp vía build.rs).
Uso
Ver MANUAL.md para la referencia completa de banderas y
ejemplos (análisis de enlace, cobertura, tabla SFT, exportación KML/PPM, etc.).
Créditos y licencia
| SPLAT! original | John A. Magliacane, KD2BD (2002–2014) |
| ITWOM v3.0 | Sid Shumate (2010), sobre ITM/NTIA (dominio público) |
| Port a Rust + paralelización | Charles Escobar, 2026 |
Distribuido bajo los términos de la GNU General Public License v2.0
(GPLv2), heredada del SPLAT! original. Ver el archivo LICENSE.