flood-detection
Classifies flood severity and aggregates water level data.
Install
mkdir -p .claude/skills/flood-detection && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2941" && unzip -o skill.zip -d .claude/skills/flood-detection && rm skill.zipInstalls to .claude/skills/flood-detection
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Detect flood events by comparing water levels to thresholds. Use when determining if flooding occurred, counting flood days, aggregating instantaneous data to daily values, or classifying flood severity.Key capabilities
- →Aggregate instantaneous water level data
- →Detect flood events based on thresholds
- →Classify flood severity levels
- →Generate flood reports in CSV or JSON
How it works
It resamples instantaneous sensor data to daily maximums and compares these values against defined flood stage thresholds.
Inputs & outputs
When to use flood-detection
- →Detecting flood event timing
- →Aggregating sensor data into daily reports
- →Classifying flood severity levels
About this skill
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 = <threshold_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
When not to use it
- →Low flow analysis
- →Long-term trend analysis without peak detection
Limitations
- →Requires accurate threshold values
- →Units must be consistent between data and thresholds
How it compares
It provides a structured approach to peak-based flood detection rather than simple mean-based aggregation.
Compared to similar skills
flood-detection side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| flood-detection (this skill) | 1 | 6mo | No flags | Intermediate |
| quant-analyst | 103 | 2mo | No flags | Advanced |
| umap-learn | 6 | 2mo | Review | Intermediate |
| embedding-strategies | 8 | 2mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by benchflow-ai
View all by benchflow-ai →You might also like
quant-analyst
zenobi-us
Expert quantitative analyst specializing in financial modeling, algorithmic trading, and risk analytics. Masters statistical methods, derivatives pricing, and high-frequency trading with focus on mathematical rigor, performance optimization, and profitable strategy development.
umap-learn
K-Dense-AI
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
embedding-strategies
wshobson
Select and optimize embedding models for semantic search and RAG applications. Use when choosing embedding models, implementing chunking strategies, or optimizing embedding quality for specific domains.
building-automl-pipelines
jeremylongshore
Build automated machine learning pipelines, including feature engineering, model selection, and performance evaluation.
model-compare
rawwerks
Compare 3D CAD models using boolean operations (IoU, Dice, precision/recall). Use when evaluating generated models against gold references, diffing CAD revisions, or computing similarity metrics for ML training. Triggers on: model diff, compare models, IoU, intersection over union, model similarity, CAD comparison, STEP diff, 3D evaluation, gold reference, generated model, precision recall 3D.
matchms
davila7
Mass spectrometry analysis. Process mzML/MGF/MSP, spectral similarity (cosine, modified cosine), metadata harmonization, compound ID, for metabolomics and MS data processing.