---
name: usda-nass-cropland-data-layer-ingestion
description: "How to get USDA NASS Cropland Data Layer data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Inventory a keyless USDA Hawaii CDL archive in Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/usda-nass-cropland-data-layer
Provider: https://www.nass.usda.gov/Research_and_Science/Cropland/Release/
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key is required for the national-download files.
- The checked Hawaii ZIP contains 2023, 2024 and 2025 10-meter GeoTIFFs plus metadata and documentation.

## Request
```bash
curl -O 'https://www.nass.usda.gov/Research_and_Science/Cropland/Release/datasets/Hawaii_CDL_2023_2024_2025.zip'
```

## Format
ZIP archive containing three 10-meter Hawaii GeoTIFF rasters, auxiliary files, FGDC and ISO XML metadata, documentation and a readme.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""USDA NASS Hawaii CDL archive inventory -> pandas -> Parquet. No key."""
import io
import zipfile
import requests
import pandas as pd

URL = "https://www.nass.usda.gov/Research_and_Science/Cropland/Release/datasets/Hawaii_CDL_2023_2024_2025.zip"
headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) SignalLabCheck/1.0"}
r = requests.get(URL, headers=headers, timeout=120)
r.raise_for_status()
with zipfile.ZipFile(io.BytesIO(r.content)) as zf:
    rows = [{"name": x.filename, "bytes": x.file_size, "compressed_bytes": x.compress_size}
            for x in zf.infolist() if not x.is_dir()]
df = pd.DataFrame(rows)
df.to_parquet("usda_nass_hawaii_cdl_archive.parquet", index=False)
print(len(df), "archive members", int(df["bytes"].sum()), "uncompressed bytes",
      int(df["name"].str.endswith(".tif").sum()), "GeoTIFF files")
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 18 archive members 187453219 uncompressed bytes 3 GeoTIFF files

## Limits
- Rate limit: Not stated.
- National archives range into gigabytes; the checked Hawaii ZIP was 28,133,175 bytes compressed.
- The current 10-meter confidence layer is not offered as a direct download because of file size.

## Quirks
- The sample code inventories archive contents; reading raster pixels requires a GeoTIFF library such as rasterio or GDAL.
- Do not compare raw pixel totals with official NASS acreage without accounting for classification and counting bias.
- Resolution, classifier, training inputs and class codes change across vintages; retain year-specific metadata.

## Terms and attribution
- NASS calls the CDL public domain and free to redistribute.
- The data are provided as is, without a warranty for conclusions or results.
- Terms page: https://www.nass.usda.gov/Research_and_Science/Cropland/sarsfaqs2.php#getacopy.0

## Sources
- https://www.nass.usda.gov/Research_and_Science/Cropland/sarsfaqs2.php: "The USDA NASS Cropland Data Layer and the data offered on the CroplandCROS website is provided to the public as is and is considered public domain and free to redistribute."
- https://www.nass.usda.gov/Research_and_Science/Cropland/sarsfaqs2.php: "Continental US coverage (2008 to current), partial US coverage (1997-2007)"
- https://www.nass.usda.gov/Research_and_Science/Cropland/sarsfaqs2.php: "The CDL data can be downloaded in a raster-based GeoTIFF file format and used in most common GIS software."
- https://www.nass.usda.gov/Research_and_Science/Cropland/Release/: "Download the national 2025 10-Meter CDL zipped file"

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