usgs-data-download
Download water level data from USGS using the dataretrieval package
Install / Use
npx skills add benchflow-ai/skillsbench --skill usgs-data-downloadInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of usgs-data-download
usgs-data-download scores 86/100 on our quality scale, 1578th of 3,997 Development & Engineering skills we index (top 40%).
Its SKILL.md is 3.5 KB long, well organised into 15 sections with 4 code examples: a solid amount of guidance for an agent.
With 1,813 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated about 2 months ago, so usgs-data-download is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
usgs-data-download compared with similar skills
All 4 of these similar skills score higher than usgs-data-download; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| usgs-data-download (this skill)by benchflow-ai | 86 | 1.8k | 2mo ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 86.4k | 15d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.2k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 44.6k | today | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | today | CLAUDE.md |
Frequently asked questions
- How do I install usgs-data-download?
- Run
npx skills add benchflow-ai/skillsbench --skill usgs-data-download. The install tabs above show the steps for each supported agent. - Which AI agents does usgs-data-download work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is usgs-data-download safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is usgs-data-download still maintained?
- The repository was last updated about 2 months ago, so usgs-data-download is actively maintained.
Skill content
View source on GitHubname: usgs-data-download description: Download water level data from USGS using the dataretrieval package. Use when accessing real-time or historical streamflow data, downloading gage height or discharge measurements, or working with USGS station IDs. license: MIT
USGS Data Download Guide
Overview
This guide covers downloading water level data from USGS using the dataretrieval Python package. USGS maintains thousands of stream gages across the United States that record water levels at 15-minute intervals.
Installation
pip install dataretrieval
nwis Module (Recommended)
The NWIS module is reliable and straightforward for accessing gage height data.
from dataretrieval import nwis
# Get instantaneous values (15-min intervals)
df, meta = nwis.get_iv(
sites='<station_id>',
start='<start_date>',
end='<end_date>',
parameterCd='00065'
)
# Get daily values
df, meta = nwis.get_dv(
sites='<station_id>',
start='<start_date>',
end='<end_date>',
parameterCd='00060'
)
# Get site information
info, meta = nwis.get_info(sites='<station_id>')
Parameter Codes
| Code | Parameter | Unit | Description |
|------|-----------|------|-------------|
| 00065 | Gage height | feet | Water level above datum |
| 00060 | Discharge | cfs | Streamflow volume |
nwis Module Functions
| Function | Description | Data Frequency |
|----------|-------------|----------------|
| nwis.get_iv() | Instantaneous values | ~15 minutes |
| nwis.get_dv() | Daily values | Daily |
| nwis.get_info() | Site information | N/A |
| nwis.get_stats() | Statistical summaries | N/A |
| nwis.get_peaks() | Annual peak discharge | Annual |
Returned DataFrame Structure
The DataFrame has a datetime index and these columns:
| Column | Description |
|--------|-------------|
| site_no | Station ID |
| 00065 | Water level value |
| 00065_cd | Quality code (can ignore) |
Downloading Multiple Stations
from dataretrieval import nwis
station_ids = ['<id_1>', '<id_2>', '<id_3>']
all_data = {}
for site_id in station_ids:
try:
df, meta = nwis.get_iv(
sites=site_id,
start='<start_date>',
end='<end_date>',
parameterCd='00065'
)
if len(df) > 0:
all_data[site_id] = df
except Exception as e:
print(f"Failed to download {site_id}: {e}")
print(f"Successfully downloaded: {len(all_data)} stations")
Extracting the Value Column
# Find the gage height column (excludes quality code column)
gage_col = [c for c in df.columns if '00065' in str(c) and '_cd' not in str(c)]
if gage_col:
water_levels = df[gage_col[0]]
print(water_levels.head())
Common Issues
| Issue | Cause | Solution |
|-------|-------|----------|
| Empty DataFrame | Station has no data for date range | Try different dates or use get_iv() |
| get_dv() returns empty | No daily gage height data | Use get_iv() and aggregate |
| Connection error | Network issue | Wrap in try/except, retry |
| Rate limited | Too many requests | Add delays between requests |
Best Practices
- Always wrap API calls in try/except for failed downloads
- Check
len(df) > 0before processing - Station IDs are 8-digit strings with leading zeros (e.g., '04119000')
- Use
get_iv()for gage height, as daily data is often unavailable - Filter columns to exclude quality code columns (
_cd) - Break up large requests into smaller time periods to avoid timeouts
Related Skills
Agent-Reach
86.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.2kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
44.6kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
