---
name: noaa-swpc-json-ingestion
description: "How to get NOAA SWPC JSON Services data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load NOAA SWPC solar-wind JSON into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/noaa-swpc-json
Provider: https://www.swpc.noaa.gov/products/real-time-solar-wind
Checked against the provider's documentation: 2026-11-02

## Access
- No account or key is needed for the static JSON files.
- The checked one-minute plasma file contains the latest 24 hours for all available spacecraft.

## Request
```bash
curl -O 'https://services.swpc.noaa.gov/json/rtsw/rtsw_wind_1m.json'
```

## Format
JSON array of one-minute records with UTC time, spacecraft source, active-source flag, proton and alpha plasma values, sample counts and quality-related fields.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""NOAA SWPC 1-minute solar-wind plasma JSON -> pandas -> Parquet. No key."""
import requests
import pandas as pd

URL = "https://services.swpc.noaa.gov/json/rtsw/rtsw_wind_1m.json"
r = requests.get(URL, timeout=120)
r.raise_for_status()
df = pd.DataFrame(r.json())
df["time_tag"] = pd.to_datetime(df["time_tag"], utc=True)
df.to_parquet("noaa_swpc_solar_wind_1m.parquet", index=False)
active = df.loc[df["active"]]
print(len(df), "rows", df["time_tag"].min().isoformat(), "to",
      df["time_tag"].max().isoformat(), "sources", ",".join(sorted(df["source"].dropna().unique())),
      "active rows", len(active))
```
Run by us on 2026-11-02 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 3264 rows 2026-11-01T21:05:00+00:00 to 2026-11-02T21:02:00+00:00 sources ACE,IMAP,SOLAR1 active rows 1087

## Limits
- Rate limit: Not stated.
- The real-time static JSON files cover the latest 24 hours.
- Use NOAA NCEI for a complete solar-wind archive.

## Quirks
- The file includes multiple spacecraft; active=true identifies the primary source selected by SWPC at that timestamp.
- A spacecraft being inactive does not indicate that its measurements are poor quality.
- Null measurement fields and interruptions occur, so preserve the source and quality-related columns and handle missing values.

## Terms and attribution
- NWS web information is public domain unless specifically noted.
- Do not claim NWS material as your own, imply endorsement or present modified material as official government information.
- Marked third-party information remains subject to the third-party provider's reuse terms.
- Terms page: https://www.weather.gov/disclaimer

## Sources
- https://www.swpc.noaa.gov/products/real-time-solar-wind: "The last 24 hours of in situ data is available via"
- https://www.swpc.noaa.gov/products/real-time-solar-wind: "All of the operational quality solar wind plasma and magnetometer data since January 1998 is available from this plot."
- https://www.swpc.noaa.gov/products/real-time-solar-wind: "The "active" tag, either true or false, indicates which spacecraft is selected as the active/primary spacecraft by the SWPC forecaster."
- https://www.weather.gov/disclaimer: "The information on National Weather Service (NWS) Web pages are in the public domain, unless specifically noted otherwise"

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
