← Back to Skills Marketplace
wu-uk

usgs-data-download

by wu-uk · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
76
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install flood-risk-analysis-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 d...
README (SKILL.md)

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='\x3Cstation_id>',
    start='\x3Cstart_date>',
    end='\x3Cend_date>',
    parameterCd='00065'
)

# Get daily values
df, meta = nwis.get_dv(
    sites='\x3Cstation_id>',
    start='\x3Cstart_date>',
    end='\x3Cend_date>',
    parameterCd='00060'
)

# Get site information
info, meta = nwis.get_info(sites='\x3Cstation_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 = ['\x3Cid_1>', '\x3Cid_2>', '\x3Cid_3>']
all_data = {}

for site_id in station_ids:
    try:
        df, meta = nwis.get_iv(
            sites=site_id,
            start='\x3Cstart_date>',
            end='\x3Cend_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) > 0 before 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
Usage Guidance
This guide appears coherent and appropriate for downloading USGS data. Before using it: run pip install in an isolated virtualenv, pin or review the dataretrieval package/version you install, be aware that downloads can be large and USGS may rate-limit requests (add delays or split date ranges), and verify station IDs and date ranges to avoid empty downloads. No credentials are required by the guide.
Capability Analysis
Type: OpenClaw Skill Name: flood-risk-analysis-usgs-data-download Version: 0.1.0 The skill bundle provides legitimate instructions and code snippets for using the 'dataretrieval' Python library to access USGS water level data. All code examples in SKILL.md are aligned with the stated purpose, and there are no indicators of data exfiltration, malicious execution, or prompt injection.
Capability Assessment
Purpose & Capability
Name and description match the content: the SKILL.md explains how to use the dataretrieval package to fetch USGS gage data (instantaneous and daily), including code examples and parameter codes. Nothing requested is unrelated to downloading USGS data.
Instruction Scope
Runtime instructions are narrowly scoped to installing dataretrieval, calling nwis.get_iv/get_dv/get_info, handling empty results, and rate-limiting. The guide does not instruct reading unrelated files, accessing environment variables, or sending data to unexpected endpoints.
Install Mechanism
There is no platform install spec (instruction-only), but the guide tells the user to run `pip install dataretrieval`. This is expected for a Python-based HOWTO; be aware pip installs code from PyPI (unreviewed) — consider using a virtualenv, pinning a version, and reviewing the package source before installation.
Credentials
The skill declares no required environment variables, credentials, or config paths and the instructions do not reference any secrets. Network access to USGS endpoints is required, which is appropriate for the stated purpose.
Persistence & Privilege
Skill is instruction-only with no install-time persistence requested and always:false. It does not request permanent presence or modify other skills or system-wide configurations.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install flood-risk-analysis-usgs-data-download
  3. After installation, invoke the skill by name or use /flood-risk-analysis-usgs-data-download
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Bulk publish from all-task-skills-dedup
Metadata
Slug flood-risk-analysis-usgs-data-download
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is usgs-data-download?

Download water level data from USGS using the dataretrieval package. Use when accessing real-time or historical streamflow data, downloading gage height or d... It is an AI Agent Skill for Claude Code / OpenClaw, with 76 downloads so far.

How do I install usgs-data-download?

Run "/install flood-risk-analysis-usgs-data-download" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is usgs-data-download free?

Yes, usgs-data-download is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does usgs-data-download support?

usgs-data-download is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created usgs-data-download?

It is built and maintained by wu-uk (@wu-uk); the current version is v0.1.0.

💬 Comments