---
name: nasa-power-ingestion
description: "How to get NASA POWER (Prediction Of Worldwide Energy Resources) API data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load NASA POWER daily weather into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/nasa-power
Provider: https://power.larc.nasa.gov/docs/
Checked against the provider's documentation: 2026-10-30

## Access
- No account or API key parameter is documented for this public endpoint.
- Observed 2026-10-30: the daily point request completed without credentials.

## Request
```bash
curl 'https://power.larc.nasa.gov/api/temporal/daily/point?parameters=T2M%2CPRECTOTCORR&community=AG&longitude=-87.63&latitude=41.88&start=20261001&end=20261007&format=JSON'
```

## Format
JSON feature with properties.parameter keyed by parameter and YYYYMMDD, plus units, source and header metadata. The fill_value header is -999.0.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""NASA POWER daily temperature and precipitation for Chicago -> pandas -> Parquet. No key."""
import requests
import pandas as pd

URL = "https://power.larc.nasa.gov/api/temporal/daily/point"
params = {"parameters": "T2M,PRECTOTCORR", "community": "AG", "longitude": -87.63,
          "latitude": 41.88, "start": "20261001", "end": "20261007", "format": "JSON"}
r = requests.get(URL, params=params, timeout=60)
r.raise_for_status()
values = r.json()["properties"]["parameter"]
df = pd.DataFrame(values).rename_axis("date").reset_index()
df["date"] = pd.to_datetime(df["date"], format="%Y%m%d", utc=True)
df[["T2M", "PRECTOTCORR"]] = df[["T2M", "PRECTOTCORR"]].replace(-999, pd.NA)
df.to_parquet("nasa_power_chicago_daily.parquet", index=False)
print(len(df), "daily rows", df["date"].min().date(), "to", df["date"].max().date(),
      "missing values", int(df[["T2M", "PRECTOTCORR"]].isna().sum().sum()))
```
Run by us on 2026-10-30 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 7 daily rows 2026-10-01 to 2026-10-07 missing values 0

## Limits
- Rate limit: Not stated.
- A daily single-point request accepts at most 20 parameters; a regional request accepts one.
- Repeated requests for the same relative grid location can be blocked.

## Quirks
- Replace the API fill value -999 with a missing value before calculations.
- Daily data default to local solar time; add time-standard=UTC when civil-day alignment matters.
- Parameter resolution, source and near-real-time latency vary; retain response metadata and units.

## Terms and attribution
- NASA Earthdata says NASA-sponsored data and information are available to all users and encourages citation and acknowledgment.
- For a publication, include the POWER reference, data reference, service name, version and access date.
- Terms page: https://www.earthdata.nasa.gov/engage/open-data-services-software-policies

## Sources
- https://power.larc.nasa.gov/docs/services/api/temporal/daily/: "The Daily microservice API returns time series analysis-ready data responses for solar and meteorological data to be used directly by applications."
- https://power.larc.nasa.gov/docs/services/api/temporal/daily/: "A maximum of 20 parameters can currently be requested in one submission for a single point. Regional requests are limited to one parameter."
- https://www.earthdata.nasa.gov/engage/open-data-services-software-policies: "NASA's free and open data use guidance states that data and information generated under NASA sponsorship are available to all users."
- https://power.larc.nasa.gov/docs/referencing/: "When POWER data products are used in a publication include both POWER 's Reference and POWER 's Data Reference in any work product or publication"

## 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.
