Find NHD Waterways (Flowlines)
hydro_find_waterwaysFind streams, rivers, canals, and other waterways intersecting a point or geometry, with flow attributes like stream order and drainage area.
Instructions
Find NHD flowlines (streams, rivers, canals, artificial paths) intersecting a geometry.
Uses NHDPlus HR NetworkNHDFlowline (layer 3), which carries stream order, total drainage area (totdasqkm), slope, smoothed elevation, and EROM mean-annual flow (qama, cfs) / velocity (vama, fps) estimates.
Use lat+lon when: "What river runs through 45.5, -122.6?" Use geometry when: "What streams cross this project polygon / pipeline corridor?" Set include_non_network=True to also capture isolated (non-routed) flowlines. Set verbose=True for the full attribute set (network IDs + full EROM suite).
Returns: { "finding": str, # plain-language summary "count": int, "truncated": bool, # true if capped at max_records "features": [...], # flowline attributes (+ ftype_label / fcode_label) "non_network": {...}, # present only when include_non_network=True "provenance": {...}, "query_geometry": {"type": str, "crs_epsg": int} }
ftype/fcode are integer codes; ftype_label/fcode_label give readable names.
Error responses:
"Error: supply either lat+lon or geometry, not both (or neither)"
"Error: unsupported geometry type ..."
"Error: NHDPlus HR request failed: ..."
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees (WGS84). Use with 'lon' for a quick point query. Omit when supplying 'geometry'. | |
| lon | No | Longitude in decimal degrees (WGS84). Use with 'lat' for a quick point query. Omit when supplying 'geometry'. | |
| verbose | No | Return ALL flowline attributes (~80 fields incl. full EROM modeled-flow suite and network-navigation IDs) instead of the curated core set. Only applies to the network flowline layer. Default False. | |
| geometry | No | GeoJSON geometry object as a JSON string. Supported types: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon. Also accepts a BoundingBox shorthand: {"type": "BoundingBox", "bbox": [minLon, minLat, maxLon, maxLat]}. All coordinates must be WGS84 decimal degrees. Supply either this OR lat+lon, not both. | |
| include_non_network | No | Also query the NonNetworkNHDFlowline layer (isolated flowlines with identity attributes only, no stream order / drainage area / flow). Default False. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||