← Back to Skills Marketplace
wu-uk

flood-detection

by wu-uk · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
77
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install flood-risk-analysis-flood-detection
Description
Detect flood events by comparing water levels to thresholds. Use when determining if flooding occurred, counting flood days, aggregating instantaneous data t...
README (SKILL.md)

Flood Detection Guide

Overview

Flood detection involves comparing observed water levels against established flood stage thresholds. This guide covers how to process water level data and identify flood events.

Flood Stage Definition

According to the National Weather Service, flood stage is the water level at which overflow of the natural banks begins to cause damage. A flood event occurs when:

water_level >= flood_stage_threshold

Aggregating Instantaneous Data to Daily

USGS instantaneous data is recorded at ~15-minute intervals. For flood detection, aggregate to daily maximum:

# df is DataFrame from nwis.get_iv() with datetime index
# gage_col is the column name containing water levels

daily_max = df[gage_col].resample('D').max()

Why Daily Maximum?

Aggregation Use Case
max() Flood detection - captures peak water level
mean() Long-term trends - may miss short flood peaks
min() Low flow analysis

Detecting Flood Days

Compare daily maximum water level against flood threshold:

flood_threshold = \x3Cthreshold_from_nws>  # feet

# Count days with flooding
flood_days = (daily_max >= flood_threshold).sum()

# Get specific dates with flooding
flood_dates = daily_max[daily_max >= flood_threshold].index.tolist()

Processing Multiple Stations

flood_results = []

for site_id, site_data in all_data.items():
    daily_max = site_data['water_levels'].resample('D').max()
    threshold = thresholds[site_id]['flood']

    days_above = int((daily_max >= threshold).sum())

    if days_above > 0:
        flood_results.append({
            'station_id': site_id,
            'flood_days': days_above
        })

# Sort by flood days descending
flood_results.sort(key=lambda x: x['flood_days'], reverse=True)

Flood Severity Classification

If multiple threshold levels are available:

def classify_flood(water_level, thresholds):
    if water_level >= thresholds['major']:
        return 'major'
    elif water_level >= thresholds['moderate']:
        return 'moderate'
    elif water_level >= thresholds['flood']:
        return 'minor'
    elif water_level >= thresholds['action']:
        return 'action'
    else:
        return 'normal'

Output Format Examples

Simple CSV Output

import csv

with open('flood_results.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['station_id', 'flood_days'])
    for result in flood_results:
        writer.writerow([result['station_id'], result['flood_days']])

JSON Output

import json

output = {
    'flood_events': flood_results,
    'total_stations_with_flooding': len(flood_results)
}

with open('flood_report.json', 'w') as f:
    json.dump(output, f, indent=2)

Common Issues

Issue Cause Solution
No floods detected Threshold too high or dry period Verify threshold values
All days show flooding Threshold too low or data error Check threshold units (feet vs meters)
NaN in daily_max Missing data for entire day Check data availability

Best Practices

  • Use daily maximum for flood detection to capture peaks
  • Ensure water level and threshold use same units (typically feet)
  • Only report stations with at least 1 flood day
  • Sort results by flood severity or duration for prioritization
Usage Guidance
This guide appears straightforward and coherent for flood detection. Before installing or running it, ensure your data source (e.g., NWIS) is trustworthy and you understand units and thresholds (feet vs meters). Confirm your runtime has the needed libraries (pandas/json/csv) and be mindful that outputs are written to local files—avoid processing sensitive data unless you control the storage and downstream sharing. If you need the skill to fetch data from remote APIs, verify what credentials (if any) are required and only provide them when necessary.
Capability Analysis
Type: OpenClaw Skill Name: flood-risk-analysis-flood-detection Version: 0.1.0 The skill bundle provides legitimate instructions and Python code snippets for analyzing water level data and detecting flood events using standard libraries like pandas. There are no indicators of malicious intent, data exfiltration, or prompt injection in SKILL.md or _meta.json.
Capability Assessment
Purpose & Capability
Name and description match the SKILL.md content: the document explains aggregating instantaneous water-level data, comparing daily maxima to thresholds, counting flood days, and classifying severity. There are no unrelated required env vars, binaries, or config paths.
Instruction Scope
Instructions focus on data processing (resampling, threshold comparison, classification, CSV/JSON output). They reference typical data sources (e.g., NWIS) and standard operations (pandas-style resample) and do not instruct reading unrelated files, system credentials, or sending data to external endpoints.
Install Mechanism
This is an instruction-only skill with no install spec and no code files, so nothing is written to disk by an installer. Risk from installation is minimal.
Credentials
The skill requests no environment variables, credentials, or config paths. The operations described (local data processing and file output) are proportionate to the stated purpose.
Persistence & Privilege
always is false (default), the skill is user-invocable and may be invoked autonomously per platform defaults—this is expected and not excessive. The skill does not request persistent system privileges or modifications to other skills.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install flood-risk-analysis-flood-detection
  3. After installation, invoke the skill by name or use /flood-risk-analysis-flood-detection
  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-flood-detection
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is flood-detection?

Detect flood events by comparing water levels to thresholds. Use when determining if flooding occurred, counting flood days, aggregating instantaneous data t... It is an AI Agent Skill for Claude Code / OpenClaw, with 77 downloads so far.

How do I install flood-detection?

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

Is flood-detection free?

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

Which platforms does flood-detection support?

flood-detection is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created flood-detection?

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

💬 Comments