{% extends "base.html" %} {% block title %}RF Layers · SignalOps{% endblock %} {% block topbar %}LoRa · Meshtastic · radiosondes · HF paths · GNSS interference{% endblock %} {% block extra_style %} .rf-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px} .rf-bar input{width:220px !important;height:38px;font-family:'IBM Plex Mono',monospace !important} .rf-bar select{width:auto !important;height:38px;padding:0 30px 0 12px !important} .rf-bar .sp{flex:1} .rf-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;height:calc(100vh - 170px);min-height:560px} #rf-map{height:100%;border-radius:12px;border:1px solid var(--so-line);background:#101015} .rf-side{display:flex;flex-direction:column;gap:14px;overflow-y:auto;min-height:0} .rf-card{background:var(--so-s1);border:1px solid var(--so-line);border-radius:12px;padding:16px} .rf-card h3{margin:0 0 10px;font-size:14px;font-weight:600} .rf-layer{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:13px;color:#C8C4D6;cursor:pointer;border-bottom:1px solid #1A1A21} .rf-layer:last-child{border-bottom:0} .rf-layer input{margin:0;width:auto !important;flex:0 0 auto} .rf-layer > span:not(.n){flex:1;min-width:0;text-align:left} .rf-layer i{width:8px;height:8px;border-radius:50%;flex:0 0 auto} .rf-layer .n{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:12px;color:#9A97A8} .rf-layer .n.err{color:#C99A9A} .rf-layer small{display:block;font-size:11px;color:#85829A} .rf-sw{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px} .rf-sw div{background:var(--so-s2);border-radius:8px;padding:10px} .rf-sw b{display:block;font-size:20px;font-weight:600} .rf-sw span{font-size:11px;color:#9A97A8} .rf-impact{font-size:12px;color:#C8C4D6;margin-bottom:8px} .rf-alert{font-size:12px;color:#A3A0B2;padding:6px 0;border-top:1px solid #1A1A21} .rf-alert time{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;color:#76738A} .rf-tool{display:flex;gap:8px;margin-top:8px} .rf-tool input{flex:1;height:36px;font-family:'IBM Plex Mono',monospace !important} .rf-out{margin-top:10px;font-size:12px;color:#C8C4D6;max-height:220px;overflow-y:auto} .rf-out table td{padding:5px 6px 5px 0 !important;font-size:12px !important} .rf-note{font-size:11px;color:#85829A;margin-top:8px;line-height:1.5} .rf-pop b{display:block;font-size:13px;margin-bottom:2px} .rf-pop div{font-size:12px;color:#555;line-height:1.5} @media (max-width:1000px){.rf-grid{grid-template-columns:1fr;height:auto}#rf-map{height:62vh}} {% endblock %} {% block content %}
HF paths are off by default — they can draw thousands of lines. Imagery: use the layer switcher on the map (NASA GIBS, Sentinel-2 cloudless).
Transmitters from SatNOGS DB. Pair with pass times on the Orbital page.
BeaconDB (open MLS successor). Needs at least two access points seen together.
RepeaterBook data needs an approved app token (Settings → Air & Radio). Data courtesy of RepeaterBook.com.