fix(fixtures): rewrite capture_fixtures.py to use ephemeral push subscribe

Previous script hardcoded stream="CENTRAL" which does not exist — Central
partitions into domain streams (CENTRAL_QUAKE, CENTRAL_SPACE, etc.).  It
also called pull_subscribe_bind() without await, making the fetch a no-op.

Fix: mirror the proven CentralConsumer.start() pattern — use
js.subscribe(subject, cb=..., AckPolicy.NONE, no durable) which auto-
discovers the correct stream via the subject filter, identical to how the
live consumer binds.  Messages are funnelled through asyncio.Queue with
an idle-timeout to detect drain completion.

Adds live captured fixtures:
- tests/fixtures/quake/  — 3 envelopes (CENTRAL_QUAKE stream, mode=all)
- tests/fixtures/swpc/   — 40 envelopes (CENTRAL_SPACE, mode=all, proton_flux history)
- tests/fixtures/swpc_last/ — 23 envelopes (mode=last: 21 alert variants + kindex + proton_flux)
Avalanche: confirmed empty off-season (CENTRAL_AVY stream, 0 messages).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt Johnson 2026-07-04 20:22:22 +00:00
commit a85a5adb72
67 changed files with 2592 additions and 89 deletions

View file

@ -1,32 +1,35 @@
"""Read-only ephemeral fixture capture from NATS JetStream.
Captures real Central CloudEvents envelopes WITHOUT disturbing the live
durable consumers by using an ephemeral pull consumer (no durable name,
AckPolicy.none, short inactive_threshold for auto-deletion).
durable consumers by using an ephemeral push consumer (no durable name,
AckPolicy.none). The consumer is subject-based, so it auto-discovers the
correct stream (CENTRAL_QUAKE, CENTRAL_SPACE, ) exactly as the live
CentralConsumer does in meshai/central/consumer.py.
Run from inside the meshai container::
docker exec meshai python /app/scripts/capture_fixtures.py \\
--hazard earthquake_event \\
--subject "central.usgs_quake.>" \\
--mode all --max 20
--hazard quake \\
--subject "central.quake.event.>" \\
--mode all --max 25
# Dry-run (count only, no file writes):
docker exec meshai python /app/scripts/capture_fixtures.py \\
--hazard earthquake_event \\
--subject "central.usgs_quake.>" \\
--mode all --max 20 --dry-run
--hazard quake \\
--subject "central.quake.event.>" \\
--mode all --max 25 --dry-run
# Last-per-subject snapshot:
docker exec meshai python /app/scripts/capture_fixtures.py \\
--hazard nws \\
--subject "central.nws.>" \\
--hazard swpc \\
--subject "central.space.>" \\
--mode last
Modes
-----
--mode last DeliverPolicy.LAST_PER_SUBJECT one message per subject key.
Useful for a current-state snapshot.
Useful for a current-state snapshot. Script stops after a
short idle period (no new messages arriving).
--mode all DeliverPolicy.ALL bounded history. REQUIRED: --max N cap
to avoid pulling 330k+ traffic messages.
@ -37,16 +40,30 @@ Each captured envelope is written as::
tests/fixtures/<hazard>/<n>.json
{
"envelope": { ... }, # raw Central CloudEvents payload
"subject": "central.usgs_quake.us7000xyz",
"subject": "central.quake.event.minor.unknown",
"captured_epoch": 1750000000
}
Safety
------
The ephemeral consumer is created with AckPolicy.none and a 30-second
inactive_threshold. It is never assigned a durable name, so it never
advances the live durable consumers' sequence pointers and is automatically
cleaned up by the NATS server after inactivity.
The ephemeral consumer is created with AckPolicy.none and no durable name,
so it never advances the live durable consumers' sequence pointers and is
automatically cleaned up by the NATS server after inactivity. No config,
no deploy, no restart changes are made.
Bug fix (2026-07-04)
--------------------
The previous version called js.add_consumer(stream, cfg) with a hardcoded
stream name "CENTRAL" that does not exist Central partitions streams by
domain (CENTRAL_QUAKE, CENTRAL_SPACE, CENTRAL_WX, ). It then called
pull_subscribe_bind() without await, making it a no-op coroutine object
instead of an actual subscription, and the subsequent .fetch() raised
AttributeError / NotFoundError.
Fix: mirror the proven pattern from meshai/central/consumer.py use
js.subscribe(subject, cb=..., config=ConsumerConfig(...)) with no durable
name. The subject-based subscribe call auto-discovers the correct stream
server-side, identical to how the live CentralConsumer binds.
"""
from __future__ import annotations
@ -63,6 +80,11 @@ import time
# importable in unit-test environments without a running NATS server.
# --------------------------------------------------------------------------
# Seconds with no incoming message before the capture loop stops.
# Sufficient for both LAST_PER_SUBJECT (snapshot drains quickly) and ALL
# (history replay has no inter-message gaps larger than this in practice).
_IDLE_TIMEOUT = 4.0
def _output_dir(hazard: str) -> pathlib.Path:
"""Resolve tests/fixtures/<hazard>/ relative to the repo root."""
@ -75,14 +97,13 @@ def _output_dir(hazard: str) -> pathlib.Path:
async def _run(
*,
nats_url: str,
stream: str,
subject: str,
hazard: str,
mode: str,
max_msgs: int,
dry_run: bool,
) -> int:
"""Connect, create ephemeral consumer, pull messages, write fixtures.
"""Connect, create ephemeral push consumer, collect messages, write fixtures.
Returns the count of messages captured (or counted, for --dry-run).
"""
@ -93,87 +114,81 @@ async def _run(
try:
js = nc.jetstream()
# Build an ephemeral consumer config (no durable_name = ephemeral).
# AckPolicy.none avoids needing to ack — purely read-only.
# inactive_threshold of 30 s ensures the NATS server auto-deletes it.
deliver_policy = (
DeliverPolicy.LAST_PER_SUBJECT
if mode == "last"
else DeliverPolicy.ALL
)
cfg = ConsumerConfig(
# durable_name intentionally omitted → ephemeral consumer
filter_subject=subject,
deliver_policy=deliver_policy,
ack_policy=AckPolicy.NONE,
inactive_threshold=30.0, # seconds → server auto-deletes after idle
)
# Create ephemeral pull consumer (server-side, no local binding name).
consumer_info = await js.add_consumer(stream, cfg)
consumer_name = consumer_info.name
# Funnel incoming messages into an asyncio Queue so the main loop
# can apply the max-msgs cap and idle-timeout without threads.
msg_q: asyncio.Queue = asyncio.Queue()
async def _on_msg(msg):
await msg_q.put(msg)
# Ephemeral push subscribe — NO durable_name → server assigns a
# transient consumer name and auto-deletes it after inactivity.
# AckPolicy.NONE means we never ack, so no sequence cursor is
# advanced on any durable consumer. The subject-based call
# auto-discovers the correct NATS stream (CENTRAL_QUAKE,
# CENTRAL_SPACE, etc.) — identical to CentralConsumer.start().
sub = await js.subscribe(
subject,
cb=_on_msg,
config=ConsumerConfig(
deliver_policy=deliver_policy,
ack_policy=AckPolicy.NONE,
),
)
out_dir = _output_dir(hazard)
if not dry_run:
out_dir.mkdir(parents=True, exist_ok=True)
captured = 0
fetch_batch = min(max_msgs, 50) # pull in bounded batches
while captured < max_msgs:
batch = min(fetch_batch, max_msgs - captured)
try:
msgs = await js.pull_subscribe_bind(
stream, consumer_name
).fetch(batch, timeout=5.0)
except nats.errors.TimeoutError:
break # no more messages within timeout
if not msgs:
msg = await asyncio.wait_for(msg_q.get(), timeout=_IDLE_TIMEOUT)
except asyncio.TimeoutError:
# No new messages within idle window — snapshot is drained
# (LAST_PER_SUBJECT) or history is exhausted (ALL).
break
for msg in msgs:
try:
envelope = json.loads(msg.data)
except Exception:
continue # skip unparseable messages
try:
envelope = json.loads(msg.data)
except Exception:
continue # skip unparseable frames
if dry_run:
captured += 1
print(
f" [dry-run] #{captured} subject={msg.subject!r}",
file=sys.stderr,
)
else:
record = {
"envelope": envelope,
"subject": msg.subject,
"captured_epoch": int(time.time()),
}
out_path = out_dir / f"{captured:04d}.json"
out_path.write_text(
json.dumps(record, indent=2, ensure_ascii=False),
encoding="utf-8",
)
captured += 1
print(
f" wrote {out_path.relative_to(pathlib.Path.cwd())} "
f"subject={msg.subject!r}",
file=sys.stderr,
)
if dry_run:
captured += 1
print(
" [dry-run] #%d subject=%r" % (captured, msg.subject),
file=sys.stderr,
)
else:
record = {
"envelope": envelope,
"subject": msg.subject,
"captured_epoch": int(time.time()),
}
out_path = out_dir / ("%04d.json" % captured)
out_path.write_text(
json.dumps(record, indent=2, ensure_ascii=False),
encoding="utf-8",
)
captured += 1
print(
" wrote %s subject=%r" % (out_path, msg.subject),
file=sys.stderr,
)
if captured >= max_msgs:
break
# For last-per-subject: a single fetch is sufficient.
if mode == "last":
break
# Delete the ephemeral consumer explicitly (belt-and-suspenders).
# Unsubscribe: signals the server to clean up the ephemeral consumer.
try:
await js.delete_consumer(stream, consumer_name)
await sub.unsubscribe()
except Exception:
pass # server already cleaned up, or error is non-fatal
pass
return captured
@ -184,7 +199,6 @@ async def _run(
def _load_nats_url() -> str:
"""Read the NATS URL from meshai config or env override."""
# Allow an explicit env override for CI / ad-hoc use.
if "MESHAI_NATS_URL" in os.environ:
return os.environ["MESHAI_NATS_URL"]
try:
@ -202,9 +216,7 @@ def main(argv: list[str] | None = None) -> int:
parser.add_argument("--hazard", required=True,
help="Hazard category label (used as fixture sub-dir).")
parser.add_argument("--subject", required=True,
help="NATS subject filter, e.g. 'central.usgs_quake.>'.")
parser.add_argument("--stream", default="CENTRAL",
help="JetStream stream name (default: CENTRAL).")
help="NATS subject filter, e.g. 'central.quake.event.>'.")
parser.add_argument("--mode", choices=["last", "all"], default="all",
help="DeliverPolicy: last=LAST_PER_SUBJECT, all=ALL (default: all).")
parser.add_argument("--max", type=int, default=50, dest="max_msgs",
@ -217,16 +229,14 @@ def main(argv: list[str] | None = None) -> int:
nats_url = args.nats_url or _load_nats_url()
print(
f"capture_fixtures: url={nats_url!r} stream={args.stream!r} "
f"subject={args.subject!r} hazard={args.hazard!r} "
f"mode={args.mode!r} max={args.max_msgs} dry_run={args.dry_run}",
"capture_fixtures: url=%r subject=%r hazard=%r mode=%r max=%d dry_run=%s"
% (nats_url, args.subject, args.hazard, args.mode, args.max_msgs, args.dry_run),
file=sys.stderr,
)
count = asyncio.run(
_run(
nats_url=nats_url,
stream=args.stream,
subject=args.subject,
hazard=args.hazard,
mode=args.mode,
@ -236,7 +246,7 @@ def main(argv: list[str] | None = None) -> int:
)
verb = "counted" if args.dry_run else "captured"
print(f"{verb} {count} envelope(s) for hazard={args.hazard!r}", file=sys.stderr)
print("%s %d envelope(s) for hazard=%r" % (verb, count, args.hazard), file=sys.stderr)
return 0

82
work/tests/fixtures/quake/0000.json vendored Normal file
View file

@ -0,0 +1,82 @@
{
"envelope": {
"id": "uu80143601",
"source": "central.echo6.co",
"type": "central.quake.event.minor.v1",
"time": "2026-06-28T19:19:56.050000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "quake.event.minor",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "uu80143601",
"adapter": "usgs_quake",
"category": "quake.event.minor",
"time": "2026-06-28T19:19:56.050000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": [
-112.206666666667,
42.2111666666667
],
"bbox": [
-112.206666666667,
42.2111666666667,
-112.206666666667,
42.2111666666667
],
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"magnitude": 1.23,
"place": "4 km ENE of Malad City, Idaho",
"time_ms": 1782674396050,
"updated_ms": 1782742438530,
"tz": null,
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/uu80143601",
"detail": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/uu80143601.geojson",
"felt": null,
"cdi": null,
"mmi": null,
"alert": null,
"status": "reviewed",
"tsunami": 0,
"sig": 23,
"net": "uu",
"code": "80143601",
"ids": ",uu80143601,",
"sources": ",uu,",
"types": ",origin,phase-data,",
"nst": 10,
"dmin": 0.1939,
"rms": 0.1,
"gap": 160,
"magType": "md",
"type": "earthquake",
"title": "M 1.2 - 4 km ENE of Malad City, Idaho",
"longitude": -112.206666666667,
"latitude": 42.2111666666667,
"depth": 3.06,
"_enriched": {
"geocoder": {
"name": null,
"city": null,
"county": null,
"state": null,
"country": null,
"postal_code": null,
"timezone": "America/Boise",
"landclass": "Deep Creek Roadless Area",
"elevation_m": 1752.28515625
}
}
}
}
},
"subject": "central.quake.event.minor.unknown",
"captured_epoch": 1783196478
}

82
work/tests/fixtures/quake/0001.json vendored Normal file
View file

@ -0,0 +1,82 @@
{
"envelope": {
"id": "uu80143651",
"source": "central.echo6.co",
"type": "central.quake.event.minor.v1",
"time": "2026-06-29T12:09:25.630000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "quake.event.minor",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "uu80143651",
"adapter": "usgs_quake",
"category": "quake.event.minor",
"time": "2026-06-29T12:09:25.630000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": [
-111.2065,
42.7483333333333
],
"bbox": [
-111.2065,
42.7483333333333,
-111.2065,
42.7483333333333
],
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"magnitude": 2.37,
"place": "17 km WSW of Auburn, Wyoming",
"time_ms": 1782734965630,
"updated_ms": 1782764579010,
"tz": null,
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/uu80143651",
"detail": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/uu80143651.geojson",
"felt": null,
"cdi": null,
"mmi": null,
"alert": null,
"status": "reviewed",
"tsunami": 0,
"sig": 86,
"net": "uu",
"code": "80143651",
"ids": ",uu80143651,",
"sources": ",uu,",
"types": ",origin,phase-data,",
"nst": 21,
"dmin": 0.07998,
"rms": 0.18,
"gap": 100,
"magType": "ml",
"type": "earthquake",
"title": "M 2.4 - 17 km WSW of Auburn, Wyoming",
"longitude": -111.2065,
"latitude": 42.7483333333333,
"depth": 4.18,
"_enriched": {
"geocoder": {
"name": null,
"city": null,
"county": null,
"state": null,
"country": null,
"postal_code": null,
"timezone": "America/Boise",
"landclass": "Stump Creek Roadless Area",
"elevation_m": 2198.1875
}
}
}
}
},
"subject": "central.quake.event.minor.unknown",
"captured_epoch": 1783196478
}

82
work/tests/fixtures/quake/0002.json vendored Normal file
View file

@ -0,0 +1,82 @@
{
"envelope": {
"id": "us6000t9bn",
"source": "central.echo6.co",
"type": "central.quake.event.light.v1",
"time": "2026-07-01T00:35:15.247000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "quake.event.light",
"centralseverity": 1,
"specversion": "1.0",
"data": {
"id": "us6000t9bn",
"adapter": "usgs_quake",
"category": "quake.event.light",
"time": "2026-07-01T00:35:15.247000Z",
"expires": null,
"severity": 1,
"geo": {
"centroid": [
-112.6108,
44.46
],
"bbox": [
-112.6108,
44.46,
-112.6108,
44.46
],
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"magnitude": 3.3,
"place": "19 km S of Lima, Montana",
"time_ms": 1782866115247,
"updated_ms": 1782867341040,
"tz": null,
"url": "https://earthquake.usgs.gov/earthquakes/eventpage/us6000t9bn",
"detail": "https://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/us6000t9bn.geojson",
"felt": null,
"cdi": null,
"mmi": null,
"alert": null,
"status": "reviewed",
"tsunami": 0,
"sig": 168,
"net": "us",
"code": "6000t9bn",
"ids": ",us6000t9bn,",
"sources": ",us,",
"types": ",origin,phase-data,",
"nst": 52,
"dmin": 0.159,
"rms": 0.61,
"gap": 45,
"magType": "ml",
"type": "earthquake",
"title": "M 3.3 - 19 km S of Lima, Montana",
"longitude": -112.6108,
"latitude": 44.46,
"depth": 11.169,
"_enriched": {
"geocoder": {
"name": null,
"city": null,
"county": null,
"state": null,
"country": null,
"postal_code": null,
"timezone": "America/Boise",
"landclass": "Upper Snake Field Office",
"elevation_m": 2225.02734375
}
}
}
}
},
"subject": "central.quake.event.light.unknown",
"captured_epoch": 1783196478
}

36
work/tests/fixtures/swpc/0000.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=1 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=1 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 28.766672134399414,
"energy": ">=1 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0001.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=10 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=10 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.30123627185821533,
"energy": ">=10 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0002.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=100 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=100 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.1961589753627777,
"energy": ">=100 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0003.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=30 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=30 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.19939908385276794,
"energy": ">=30 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0004.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=5 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=5 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.3074222505092621,
"energy": ">=5 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0005.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=50 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=50 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.19789846241474152,
"energy": ">=50 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0006.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=500 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=500 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.19208531081676483,
"energy": ">=500 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0007.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:15:00Z|>=60 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:15:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:15:00Z|>=60 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:15:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:15:00Z",
"satellite": 18,
"flux": 0.19741536676883698,
"energy": ">=60 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0008.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=1 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=1 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 27.786531448364258,
"energy": ">=1 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0009.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=10 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=10 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.2485874593257904,
"energy": ">=10 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0010.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=100 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=100 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.1894887238740921,
"energy": ">=100 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0011.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=30 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=30 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.19734397530555725,
"energy": ">=30 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0012.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=5 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=5 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.2579914927482605,
"energy": ">=5 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0013.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=50 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=50 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.19125120341777802,
"energy": ">=50 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0014.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=500 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=500 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.18541516363620758,
"energy": ">=500 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0015.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:20:00Z|>=60 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:20:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:20:00Z|>=60 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:20:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:20:00Z",
"satellite": 18,
"flux": 0.19072958827018738,
"energy": ">=60 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0016.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=1 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=1 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 27.72285270690918,
"energy": ">=1 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0017.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=10 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=10 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.28919678926467896,
"energy": ">=10 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0018.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=100 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=100 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.1840660572052002,
"energy": ">=100 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0019.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=30 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=30 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.18692995607852936,
"energy": ">=30 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0020.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=5 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=5 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.43121543526649475,
"energy": ">=5 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0021.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=50 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=50 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.1857948750257492,
"energy": ">=50 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0022.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=500 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=500 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.17474256455898285,
"energy": ">=500 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0023.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:25:00Z|>=60 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:25:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:25:00Z|>=60 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:25:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:25:00Z",
"satellite": 18,
"flux": 0.18532411754131317,
"energy": ">=60 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0024.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=1 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=1 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 27.166194915771484,
"energy": ">=1 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0025.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=10 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=10 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.3429813086986542,
"energy": ">=10 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0026.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=100 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=100 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.23083794116973877,
"energy": ">=100 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0027.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=30 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=30 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.23371955752372742,
"energy": ">=30 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0028.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=5 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=5 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.39393070340156555,
"energy": ">=5 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0029.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=50 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=50 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.23256810009479523,
"energy": ">=50 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0030.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=500 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=500 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.226764515042305,
"energy": ">=500 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0031.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:30:00Z|>=60 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:30:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:30:00Z|>=60 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:30:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:30:00Z",
"satellite": 18,
"flux": 0.23209738731384277,
"energy": ">=60 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0032.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=1 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=1 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 27.50701141357422,
"energy": ">=1 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0033.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=10 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=10 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.22531083226203918,
"energy": ">=10 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0034.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=100 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=100 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.16947858035564423,
"energy": ">=100 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0035.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=30 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=30 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.17234553396701813,
"energy": ">=30 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0036.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=5 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=5 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.22996729612350464,
"energy": ">=5 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0037.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=50 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=50 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.1712087243795395,
"energy": ">=50 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0038.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=500 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=500 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.1654052734375,
"energy": ">=500 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

36
work/tests/fixtures/swpc/0039.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-06-27T20:35:00Z|>=60 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-06-27T20:35:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-06-27T20:35:00Z|>=60 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-06-27T20:35:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-06-27T20:35:00Z",
"satellite": 18,
"flux": 0.17073801159858704,
"energy": ">=60 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196490
}

35
work/tests/fixtures/swpc_last/0000.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "A20F|2026-06-28 10:41:25.723",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-28T10:41:25.723000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "A20F|2026-06-28 10:41:25.723",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-28T10:41:25.723000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "A20F",
"issue_datetime": "2026-06-28 10:41:25.723",
"message": "Space Weather Message Code: WATA20\r\nSerial Number: 1114\r\nIssue Time: 2026 Jun 28 1041 UTC\r\n\r\nWATCH: Geomagnetic Storm Category G1 Predicted \nHighest Storm Level Predicted by Day:\nJun 28: None (Below G1) Jun 29: G1 (Minor) Jun 30: G1 (Minor) \nTHIS SUPERSEDES ANY/ALL PRIOR WATCHES IN EFFECT\nComment: \r\n\n\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 60 degrees Geomagnetic Latitude.\r\nInduced Currents - Weak power grid fluctuations can occur.\r\nSpacecraft - Minor impact on satellite operations possible.\r\nAurora - Aurora may be visible at high latitudes, i.e., northern tier of the U.S. such as northern Michigan and Maine."
}
}
},
"subject": "central.space.alert.a20f",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0001.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "P11W|2026-06-30 16:36:36.953",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-30T16:36:36.953000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "P11W|2026-06-30 16:36:36.953",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-30T16:36:36.953000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "P11W",
"issue_datetime": "2026-06-30 16:36:36.953",
"message": "Space Weather Message Code: WARPX1\r\nSerial Number: 627\r\nIssue Time: 2026 Jun 30 1636 UTC\r\n\r\nCANCEL WARNING: Proton 10MeV Integral Flux above 10pfu expected \nCancel Serial Number: 626\nOriginal Issue Time: 2026 Jun 30 1600 UTC\nConditions no longer justify warning.\r\n\nConditions no longer justify warning.NOAA Scale: S1 - Minor"
}
}
},
"subject": "central.space.alert.p11w",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0002.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "TIVA|2026-06-03 01:43:20.793",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-03T01:43:20.793000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "TIVA|2026-06-03 01:43:20.793",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-03T01:43:20.793000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "TIVA",
"issue_datetime": "2026-06-03 01:43:20.793",
"message": "Space Weather Message Code: ALTTP4\r\nSerial Number: 710\r\nIssue Time: 2026 Jun 03 0143 UTC\r\n\r\nALERT: Type IV Radio Emission \nBegin Time: 2026 Jun 03 0122 UTC\nComment: \r\n\n"
}
}
},
"subject": "central.space.alert.tiva",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0003.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "XX0S|2026-06-03 11:59:48.137",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-03T11:59:48.137000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "XX0S|2026-06-03 11:59:48.137",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-03T11:59:48.137000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "XX0S",
"issue_datetime": "2026-06-03 11:59:48.137",
"message": "Space Weather Message Code: SUMX01\r\nSerial Number: 218\r\nIssue Time: 2026 Jun 03 1159 UTC\r\n\r\nSUMMARY: X-ray Event exceeded X1 \nBegin Time: 2026 Jun 03 1119 UTC\nMaximum Time: 2026 Jun 03 1128 UTC\nEnd Time: 2026 Jun 03 1135 UTC\nXray Class: X1.0\nOptical Class: \nLocation: N17W19\nNoaa Scale: R3 - Strong\nComment: GOES-18 outage so using GOES-19\n\r\n\nGOES-18 outage so using GOES-19NOAA Scale: R3 - Strong\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact consists of large portions of the sunlit side of Earth, strongest at the sub-solar point.\r\nRadio - Wide area blackout of HF (high frequency) radio communication for about an hour."
}
}
},
"subject": "central.space.alert.xx0s",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0004.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "A50F|2026-06-03 14:52:28.343",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-03T14:52:28.343000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "A50F|2026-06-03 14:52:28.343",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-03T14:52:28.343000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "A50F",
"issue_datetime": "2026-06-03 14:52:28.343",
"message": "Space Weather Message Code: WATA50\r\nSerial Number: 98\r\nIssue Time: 2026 Jun 03 1452 UTC\r\n\r\nWATCH: Geomagnetic Storm Category G3 Predicted \nHighest Storm Level Predicted by Day:\nJun 04: G3 (Strong) Jun 05: G3 (Strong) Jun 06: None (Below G1) \nTHIS SUPERSEDES ANY/ALL PRIOR WATCHES IN EFFECT\nComment: \r\n\n"
}
}
},
"subject": "central.space.alert.a50f",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0005.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "MSIS|2026-06-05 05:13:38.727",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-05T05:13:38.727000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "MSIS|2026-06-05 05:13:38.727",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-05T05:13:38.727000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "MSIS",
"issue_datetime": "2026-06-05 05:13:38.727",
"message": "Space Weather Message Code: SUMSUD\r\nSerial Number: 300\r\nIssue Time: 2026 Jun 05 0513 UTC\r\n\r\nSUMMARY: Geomagnetic Sudden Impulse \nObserved: 2026 Jun 05 0511 UTC\nDeviation: 70 nT\nStation: MEA\nComment: \r\n\n"
}
}
},
"subject": "central.space.alert.msis",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0006.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "SGIW|2026-07-03 11:38:06.157",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-03T11:38:06.157000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "SGIW|2026-07-03 11:38:06.157",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-03T11:38:06.157000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "SGIW",
"issue_datetime": "2026-07-03 11:38:06.157",
"message": "Space Weather Message Code: WARSUD\r\nSerial Number: 256\r\nIssue Time: 2026 Jul 03 1138 UTC\r\n\r\nWARNING: Geomagnetic Sudden Impulse expected \nValid From: 2026 Jul 03 1157 UTC\nValid To: 2026 Jul 03 1227 UTC\nIp Shock: 2026-07-03 11:20\nComment: \r\n\n"
}
}
},
"subject": "central.space.alert.sgiw",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0007.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "XM5A|2026-07-03 19:00:40.987",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-03T19:00:40.987000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "XM5A|2026-07-03 19:00:40.987",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-03T19:00:40.987000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "XM5A",
"issue_datetime": "2026-07-03 19:00:40.987",
"message": "Space Weather Message Code: ALTXMF\r\nSerial Number: 537\r\nIssue Time: 2026 Jul 03 1900 UTC\r\n\r\nALERT: X-Ray Flux exceeded M5 \nThreshold Reached: 2026 Jul 03 1856 UTC\nNoaa Scale: R2 - Moderate\nComment: \r\n\nNOAA Scale: R2 - Moderate\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact centered on sub-solar point on the sunlit side of Earth. Extent of blackout of HF (high frequency) radio communication dependent upon current X-ray Flux intensity. For real-time information on affected area and expected duration please see http://www.swpc.noaa.gov/products/d-region-absorption-predictions-d-rap."
}
}
},
"subject": "central.space.alert.xm5a",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0008.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "XM5S|2026-07-03 19:11:28.970",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-03T19:11:28.970000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "XM5S|2026-07-03 19:11:28.970",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-03T19:11:28.970000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "XM5S",
"issue_datetime": "2026-07-03 19:11:28.970",
"message": "Space Weather Message Code: SUMXM5\r\nSerial Number: 323\r\nIssue Time: 2026 Jul 03 1911 UTC\r\n\r\nSUMMARY: X-ray Event exceeded M5 \nBegin Time: 2026 Jul 03 1857 UTC\nMaximum Time: 2026 Jul 03 1859 UTC\nEnd Time: 2026 Jul 04 1903 UTC\nXray Class: M6.3\nOptical Class: \nLocation: S06W46\nNoaa Scale: R2 - Moderate\nComment: \r\n\nNOAA Scale: R2 - Moderate\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact centered primarily on sub-solar point on the sunlit side of Earth.\r\nRadio - Limited blackout of HF (high frequency) radio communication for tens of minutes."
}
}
},
"subject": "central.space.alert.xm5s",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0009.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "A30F|2026-06-05 18:52:32.167",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-05T18:52:32.167000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "A30F|2026-06-05 18:52:32.167",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-05T18:52:32.167000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "A30F",
"issue_datetime": "2026-06-05 18:52:32.167",
"message": "Space Weather Message Code: WATA30\r\nSerial Number: 274\r\nIssue Time: 2026 Jun 05 1852 UTC\r\n\r\nWATCH: Geomagnetic Storm Category G2 Predicted \nHighest Storm Level Predicted by Day:\nJun 06: G2 (Moderate) Jun 07: None (Below G1) Jun 08: None (Below G1) \nTHIS SUPERSEDES ANY/ALL PRIOR WATCHES IN EFFECT\nComment: \r\n\n\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 55 degrees Geomagnetic Latitude.\r\nInduced Currents - Power grid fluctuations can occur. High-latitude power systems may experience voltage alarms.\r\nSpacecraft - Satellite orientation irregularities may occur; increased drag on low Earth-orbit satellites is possible.\r\nRadio - HF (high frequency) radio propagation can fade at higher latitudes.\r\nAurora - Aurora may be seen as low as New York to Wisconsin to Washington state."
}
}
},
"subject": "central.space.alert.a30f",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0010.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K04A|2026-07-03 20:54:38.663",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-03T20:54:38.663000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "K04A|2026-07-03 20:54:38.663",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-03T20:54:38.663000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K04A",
"issue_datetime": "2026-07-03 20:54:38.663",
"message": "Space Weather Message Code: ALTK04\r\nSerial Number: 2670\r\nIssue Time: 2026 Jul 03 2054 UTC\r\n\r\nALERT: Geomagnetic K-index of 4 \nThreshold Reached: 2026 Jul 03 2049 UTC\nSynoptic Period: 1800-2100\nActive Warning: YES\nComment: \r\n\n\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 65 degrees Geomagnetic Latitude.\r\nInduced Currents - Weak power grid fluctuations can occur.\r\nAurora - Aurora may be visible at high latitudes such as Canada and Alaska."
}
}
},
"subject": "central.space.alert.k04a",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0011.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K07W|2026-07-04 05:01:32.633",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T05:01:32.633000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 3,
"specversion": "1.0",
"data": {
"id": "K07W|2026-07-04 05:01:32.633",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T05:01:32.633000Z",
"expires": null,
"severity": 3,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K07W",
"issue_datetime": "2026-07-04 05:01:32.633",
"message": "Space Weather Message Code: WARK07\r\nSerial Number: 151\r\nIssue Time: 2026 Jul 04 0501 UTC\r\n\r\nWARNING: Geomagnetic K-index of 7 or greater expected \nValid From: 2026 Jul 04 0500 UTC\nValid To: 2026 Jul 05 1200 UTC\nWarning Conditions: Onset\nNoaa Scale: G3 - Greater\nComment: \r\n\nNOAA Scale: G3 - Greater"
}
}
},
"subject": "central.space.alert.k07w",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0012.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K07A|2026-07-04 05:10:10.740",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T05:10:10.740000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 3,
"specversion": "1.0",
"data": {
"id": "K07A|2026-07-04 05:10:10.740",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T05:10:10.740000Z",
"expires": null,
"severity": 3,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K07A",
"issue_datetime": "2026-07-04 05:10:10.740",
"message": "Space Weather Message Code: ALTK07\r\nSerial Number: 218\r\nIssue Time: 2026 Jul 04 0509 UTC\r\n\r\nALERT: Geomagnetic K-index of 7 \nThreshold Reached: 2026 Jul 04 0509 UTC\nSynoptic Period: 0300-0600\nActive Warning: YES\nNoaa Scale: G3 - Strong\nComment: \r\n\nNOAA Scale: G3 - Strong"
}
}
},
"subject": "central.space.alert.k07a",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0013.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K06W|2026-07-04 13:57:38.983",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T13:57:38.983000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 2,
"specversion": "1.0",
"data": {
"id": "K06W|2026-07-04 13:57:38.983",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T13:57:38.983000Z",
"expires": null,
"severity": 2,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K06W",
"issue_datetime": "2026-07-04 13:57:38.983",
"message": "Space Weather Message Code: WARK06\r\nSerial Number: 665\r\nIssue Time: 2026 Jul 04 1357 UTC\r\n\r\nWARNING: Geomagnetic K-index of 6 expected \nValid From: 2026 Jul 04 1356 UTC\nValid To: 2026 Jul 05 2100 UTC\nWarning Conditions: Onset\nNoaa Scale: G2 - Moderate\nComment: \r\n\nNOAA Scale: G2 - Moderate\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 55 degrees Geomagnetic Latitude.\r\nInduced Currents - Power grid fluctuations can occur. High-latitude power systems may experience voltage alarms.\r\nSpacecraft - Satellite orientation irregularities may occur; increased drag on low Earth-orbit satellites is possible.\r\nRadio - HF (high frequency) radio propagation can fade at higher latitudes.\r\nAurora - Aurora may be seen as low as New York to Wisconsin to Washington state."
}
}
},
"subject": "central.space.alert.k06w",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0014.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K05W|2026-07-04 14:12:48.350",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T14:12:48.350000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 1,
"specversion": "1.0",
"data": {
"id": "K05W|2026-07-04 14:12:48.350",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T14:12:48.350000Z",
"expires": null,
"severity": 1,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K05W",
"issue_datetime": "2026-07-04 14:12:48.350",
"message": "Space Weather Message Code: WARK05\r\nSerial Number: 2248\r\nIssue Time: 2026 Jul 04 1412 UTC\r\n\r\nEXTENDED WARNING: Geomagnetic K-index of 5 expected\nExtension to Serial Number: 2247\nValid From: 2026 Jul 04 0100 UTC\nNow Valid Until: 2026 Jul 04 2359 UTC\nWarning Condition: Persistence\n\r\n\nNOAA Scale: G1 - Minor\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 60 degrees Geomagnetic Latitude.\r\nInduced Currents - Weak power grid fluctuations can occur.\r\nSpacecraft - Minor impact on satellite operations possible.\r\nAurora - Aurora may be visible at high latitudes, i.e., northern tier of the U.S. such as northern Michigan and Maine."
}
}
},
"subject": "central.space.alert.k05w",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0015.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K04W|2026-07-04 14:21:41.873",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T14:21:41.873000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "K04W|2026-07-04 14:21:41.873",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T14:21:41.873000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K04W",
"issue_datetime": "2026-07-04 14:21:41.873",
"message": "Space Weather Message Code: WARK04\r\nSerial Number: 5377\r\nIssue Time: 2026 Jul 04 1421 UTC\r\n\r\nEXTENDED WARNING: Geomagnetic K-index of 4 expected\nExtension to Serial Number: 5376\nValid From: 2026 Jul 03 1209 UTC\nNow Valid Until: 2026 Jul 05 0300 UTC\nWarning Condition: Persistence\n\r\n\n\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 65 degrees Geomagnetic Latitude.\r\nInduced Currents - Weak power grid fluctuations can occur.\r\nAurora - Aurora may be visible at high latitudes such as Canada and Alaska."
}
}
},
"subject": "central.space.alert.k04w",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0016.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "BHIS|2026-06-06 14:14:05.560",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-06T14:14:05.560000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "BHIS|2026-06-06 14:14:05.560",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-06T14:14:05.560000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "BHIS",
"issue_datetime": "2026-06-06 14:14:05.560",
"message": "Space Weather Message Code: SUM10R\r\nSerial Number: 918\r\nIssue Time: 2026 Jun 06 1414 UTC\r\n\r\nSUMMARY: 10cm Radio Burst \nBegin Time: 2026 Jun 06 1344 UTC\nMaximum Time: 2026 Jun 06 1344 UTC\nEnd Time: 2026 Jun 06 1359 UTC\nPeak Flux: 190 sfu\nDuration: 5 minutes\nLatest Penticton Noon Flux: 141 sfu\nComment: \r\n\n"
}
}
},
"subject": "central.space.alert.bhis",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0017.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "TIIA|2026-06-06 14:15:12.373",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-06T14:15:12.373000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "TIIA|2026-06-06 14:15:12.373",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-06T14:15:12.373000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "TIIA",
"issue_datetime": "2026-06-06 14:15:12.373",
"message": "Space Weather Message Code: ALTTP2\r\nSerial Number: 1498\r\nIssue Time: 2026 Jun 06 1415 UTC\r\n\r\nALERT: Type II Radio Emission \nBegin Time: 2026 Jun 06 1347 UTC\nEstimate Velocity: 838 km/s\nComment: \r\n\n"
}
}
},
"subject": "central.space.alert.tiia",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0018.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K05A|2026-07-04 16:14:30.417",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T16:14:30.417000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 1,
"specversion": "1.0",
"data": {
"id": "K05A|2026-07-04 16:14:30.417",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T16:14:30.417000Z",
"expires": null,
"severity": 1,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K05A",
"issue_datetime": "2026-07-04 16:14:30.417",
"message": "Space Weather Message Code: ALTK05\r\nSerial Number: 2036\r\nIssue Time: 2026 Jul 04 1614 UTC\r\n\r\nALERT: Geomagnetic K-index of 5 \nThreshold Reached: 2026 Jul 04 1610 UTC\nSynoptic Period: 1500-1800\nActive Warning: YES\nNoaa Scale: G1 - Minor\nComment: \r\n\nNOAA Scale: G1 - Minor\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 60 degrees Geomagnetic Latitude.\r\nInduced Currents - Weak power grid fluctuations can occur.\r\nSpacecraft - Minor impact on satellite operations possible.\r\nAurora - Aurora may be visible at high latitudes, i.e., northern tier of the U.S. such as northern Michigan and Maine."
}
}
},
"subject": "central.space.alert.k05a",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0019.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "K06A|2026-07-04 17:00:15.597",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-07-04T17:00:15.597000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 2,
"specversion": "1.0",
"data": {
"id": "K06A|2026-07-04 17:00:15.597",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-07-04T17:00:15.597000Z",
"expires": null,
"severity": 2,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "K06A",
"issue_datetime": "2026-07-04 17:00:15.597",
"message": "Space Weather Message Code: ALTK06\r\nSerial Number: 723\r\nIssue Time: 2026 Jul 04 1700 UTC\r\n\r\nALERT: Geomagnetic K-index of 6 \nThreshold Reached: 2026 Jul 04 1655 UTC\nSynoptic Period: 1500-1800\nActive Warning: YES\nNoaa Scale: G2 - Moderate\nComment: \r\n\nNOAA Scale: G2 - Moderate\r\n\r\nNOAA Space Weather Scale descriptions can be found at\r\nwww.swpc.noaa.gov/noaa-scales-explanation\r\n\r\nPotential Impacts: Area of impact primarily poleward of 55 degrees Geomagnetic Latitude.\r\nInduced Currents - Power grid fluctuations can occur. High-latitude power systems may experience voltage alarms.\r\nSpacecraft - Satellite orientation irregularities may occur; increased drag on low Earth-orbit satellites is possible.\r\nRadio - HF (high frequency) radio propagation can fade at higher latitudes.\r\nAurora - Aurora may be seen as low as New York to Wisconsin to Washington state."
}
}
},
"subject": "central.space.alert.k06a",
"captured_epoch": 1783196500
}

35
work/tests/fixtures/swpc_last/0020.json vendored Normal file
View file

@ -0,0 +1,35 @@
{
"envelope": {
"id": "EF3A|2026-06-06 16:55:22.263",
"source": "central.echo6.co",
"type": "central.space.alert.v1",
"time": "2026-06-06T16:55:22.263000+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.alert",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "EF3A|2026-06-06 16:55:22.263",
"adapter": "swpc_alerts",
"category": "space.alert",
"time": "2026-06-06T16:55:22.263000Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"product_id": "EF3A",
"issue_datetime": "2026-06-06 16:55:22.263",
"message": "Space Weather Message Code: ALTEF3\r\nSerial Number: 3695\r\nIssue Time: 2026 Jun 06 1655 UTC\r\n\r\nALERT: Electron 2MeV Integral Flux exceeded 1000pfu \nThreshold Reached: 2026 Jun 06 1640 UTC\nStation: GOES-19\nComment: Yesterday's max: 536 pfu\n\r\n\nYesterday's max: 536 pfu"
}
}
},
"subject": "central.space.alert.ef3a",
"captured_epoch": 1783196500
}

36
work/tests/fixtures/swpc_last/0021.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-07-04T15:00:00",
"source": "central.echo6.co",
"type": "central.space.kindex.v1",
"time": "2026-07-04T15:00:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.kindex",
"centralseverity": 1,
"specversion": "1.0",
"data": {
"id": "2026-07-04T15:00:00",
"adapter": "swpc_kindex",
"category": "space.kindex",
"time": "2026-07-04T15:00:00Z",
"expires": null,
"severity": 1,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-07-04T15:00:00",
"Kp": 5.67,
"a_running": 67,
"station_count": 7
}
}
},
"subject": "central.space.kindex",
"captured_epoch": 1783196500
}

36
work/tests/fixtures/swpc_last/0022.json vendored Normal file
View file

@ -0,0 +1,36 @@
{
"envelope": {
"id": "2026-07-04T20:10:00Z|>=60 MeV",
"source": "central.echo6.co",
"type": "central.space.proton_flux.v1",
"time": "2026-07-04T20:10:00+00:00",
"datacontenttype": "application/json",
"centralschemaversion": "1.0",
"centralcategory": "space.proton_flux",
"centralseverity": 0,
"specversion": "1.0",
"data": {
"id": "2026-07-04T20:10:00Z|>=60 MeV",
"adapter": "swpc_protons",
"category": "space.proton_flux",
"time": "2026-07-04T20:10:00Z",
"expires": null,
"severity": 0,
"geo": {
"centroid": null,
"bbox": null,
"regions": [],
"primary_region": null,
"geometry": null
},
"data": {
"time_tag": "2026-07-04T20:10:00Z",
"satellite": 18,
"flux": 0.16377367079257965,
"energy": ">=60 MeV"
}
}
},
"subject": "central.space.proton_flux",
"captured_epoch": 1783196500
}