xiaohongshu
xiaohongshu
extracting-hecras-results
Extract HEC-RAS hydraulic results from HDF files including water surface elevations (WSE), depths, velocities, and flows for both steady and unsteady simulations. Handles cross section time series, 2D mesh results, maximum envelopes, and dam breach results. Use when you need to extract, analyze, ...
Full skill instructions
Purpose: Lightweight skill index that navigates you to primary documentation sources. This skill does NOT duplicate content - it points you to where complete, authoritative information lives.
Primary Sources:
C:\GH\ras-commander\ras_commander\hdf\AGENTS.md (215 lines) - Complete class hierarchy, lazy loading patterns, decoratorsC:\GH\ras-commander\ras_commander\CLAUDE.md - HDF architecture overview, subpackage organizationC:\GH\ras-commander\examples\10_1d_hdf_data_extraction.ipynb - 1D cross section results (unsteady)C:\GH\ras-commander\examples\11_2d_hdf_data_extraction.ipynb - 2D mesh results (comprehensive)C:\GH\ras-commander\examples\19_steady_flow_analysis.ipynb - Steady state results (complete workflow)C:\GH\ras-commander\examples\18_breach_results_extraction.ipynb - Dam breach resultsfrom ras_commander import init_ras_project, HdfResultsPlan, HdfResultsMesh
# Initialize project
init_ras_project("C:/Projects/MyModel", "6.6")
# Check simulation type
is_steady = HdfResultsPlan.is_steady_plan("01")
# Extract results based on type
if is_steady:
profiles = HdfResultsPlan.get_steady_profile_names("01")
wse = HdfResultsPlan.get_steady_wse("01", profile_name="100 year")
else:
max_wse = HdfResultsMesh.get_mesh_maximum("01", variable="Water Surface")
Read First: C:\GH\ras-commander\ras_commander\hdf\AGENTS.md
This is the definitive reference for:
@staticmethod, @log_call, @standardize_input)Key Sections:
1D Unsteady Results: C:\GH\ras-commander\examples\10_1d_hdf_data_extraction.ipynb
Navigate to this notebook for:
HdfResultsXsec)2D Unsteady Results: C:\GH\ras-commander\examples\11_2d_hdf_data_extraction.ipynb
Navigate to this notebook for:
HdfResultsMesh.get_mesh_maximum)Steady Flow Results: C:\GH\ras-commander\examples\19_steady_flow_analysis.ipynb
Navigate to this notebook for:
get_steady_profile_names)list_steady_variables)Dam Breach Results: C:\GH\ras-commander\examples\18_breach_results_extraction.ipynb
Navigate to this notebook for:
HdfStruc.list_sa2d_connections)HdfResultsBreach.get_breach_timeseries)Core HDF Classes (all in ras_commander/hdf/):
| Class | Purpose | Primary Use |
|---|---|---|
| HdfResultsPlan | Plan-level results | Steady profiles, metadata, plan info, output times, computation messages |
| HdfResultsMesh | 2D mesh results | Maximum envelopes, time series, spatial grids |
| HdfResultsXsec | Cross section results | 1D time series, longitudinal profiles |
| HdfResultsBreach | Breach results | Dam breach time series, summary statistics, geometry evolution |
| HdfMesh | Mesh geometry | Cell polygons, face points, perimeter extraction |
| HdfXsec | XS geometry | Cross section coordinates, attributes |
| HdfStruc | Structure geometry | SA/2D connections, breach capability info |
| HdfHydraulicTables | HTAB extraction | Rating curves, property tables |
Read: C:\GH\ras-commander\ras_commander\hdf\AGENTS.md lines 5-45 for complete class list and organization.
Instead of duplicating API documentation here, use these strategies:
from ras_commander import HdfResultsPlan
help(HdfResultsPlan.get_steady_wse) # Complete parameter docs
Navigate to class files in C:\GH\ras-commander\ras_commander\hdf\:
HdfResultsPlan.py - Lines 1-500 contain all steady/unsteady methodsHdfResultsMesh.py - Lines 1-400 contain mesh extraction methodsHdfResultsXsec.py - Lines 1-300 contain cross section methodsHdfResultsBreach.py - Lines 1-400 contain breach methodsExample notebooks show actual usage with real HEC-RAS projects:
is_steady = HdfResultsPlan.is_steady_plan("02")
plan_info = HdfResultsPlan.get_plan_info("02")
Return: Boolean for is_steady_plan(), DataFrame with program version, run type, etc. for get_plan_info()
# List profiles
profiles = HdfResultsPlan.get_steady_profile_names("02")
# Extract specific profile
wse = HdfResultsPlan.get_steady_wse("02", profile_name="100 year")
# Extract all profiles
wse_all = HdfResultsPlan.get_steady_wse("02")
# Discover variables
vars_dict = HdfResultsPlan.list_steady_variables("02")
Returns: List of profile names, DataFrame with River/Reach/Station/WSE columns
Full Details: C:\GH\ras-commander\examples\19_steady_flow_analysis.ipynb
# Get all variables as xarray Dataset
xsec_data = HdfResultsXsec.get_xsec_timeseries("01")
# Access specific variable
wse_ts = xsec_data["Water_Surface"] # (time, cross_section)
velocity_ts = xsec_data["Velocity_Total"]
# Select specific cross section
target_xs = "River Reach 12345.6"
wse_at_xs = wse_ts.sel(cross_section=target_xs)
Returns: xarray Dataset with dimensions (time, cross_section), coordinates for River/Reach/Station
Full Details: C:\GH\ras-commander\examples\10_1d_hdf_data_extraction.ipynb
# Get maximum water surface
max_wse = HdfResultsMesh.get_mesh_maximum("01", variable="Water Surface")
# Get maximum depth
max_depth = HdfResultsMesh.get_mesh_maximum("01", variable="Depth")
# Get maximum velocity
max_vel = HdfResultsMesh.get_mesh_maximum("01", variable="Velocity")
Returns: GeoDataFrame with columns: cell_id, max_value, max_time, geometry (Polygon)
Full Details: C:\GH\ras-commander\examples\11_2d_hdf_data_extraction.ipynb
from ras_commander import HdfStruc, HdfResultsBreach
# List structures
structures = HdfStruc.list_sa2d_connections("02")
# Get breach info
breach_info = HdfStruc.get_sa2d_breach_info("02")
# Extract time series
breach_ts = HdfResultsBreach.get_breach_timeseries("02", "Dam")
# Get summary statistics
summary = HdfResultsBreach.get_breach_summary("02", "Dam")
Returns: DataFrames with structure names, breach timing, flows, geometry evolution
Full Details: C:\GH\ras-commander\examples\18_breach_results_extraction.ipynb
Division of Responsibility:
Example Handoff:
# You handle standard extraction
max_wse = HdfResultsMesh.get_mesh_maximum("01", variable="Water Surface")
# Delegate to hdf-analyst for:
# - Custom HDF group navigation
# - Non-standard path queries
# - Advanced xarray transformations
# - Memory optimization for large files
Issue: Structure names differ between plan files and HDF
Solution: Always use HdfStruc.list_sa2d_connections() to get HDF names
Example: Plan file "Dam" might be "BaldEagleCr Dam" in HDF
Issue: Fewer timesteps than expected in results
Solution: Check if simulation completed with HdfResultsPlan.get_compute_messages()
Details: Partial runs will have truncated output
Issue: Mesh time series extraction uses too much RAM
Solution: Extract specific timesteps, not all
Example: Use timestep_indices=[0, 50, 100] instead of timestep_indices="all"
Issue: Cannot find expected variable in HDF
Solution: Use HdfResultsPlan.list_steady_variables() or inspect HDF structure directly
Note: Variable names differ between HEC-RAS versions
When a user asks about HEC-RAS result extraction:
hdf/AGENTS.mdhelp() or read source filesPrimary Sources Are Always More Current: This skill is a navigation aid. When in doubt, trust the example notebooks and code docstrings over this file.
Total Lines: ~350 (lightweight index) Purpose: Navigate to primary sources, not duplicate them When to Use: User needs HEC-RAS result extraction guidance Primary Sources:
ras_commander/hdf/AGENTS.mdexamples/400_1d_hdf_data_extraction.ipynb, examples/410_2d_hdf_data_extraction.ipynb, examples/401_steady_flow_analysis.ipynb, examples/420_breach_results_extraction.ipynbras_commander/hdf/*.pyKey Principle: Point to authoritative sources, don't replicate them.
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience