Quick Start Guide
What does the future of HEC-RAS look like? Take a brief look at HEC-RAS 2025 Alpha.
Introduction
HEC-RAS 2025 Alpha is now available! Please be mindful that this is a preview release of the future of RAS - there are many unfinished and unstable corners of the software. (Images below are likely to change throughout the alpha period.) Our goal is to rapidly improve the software over the next year of development, pushing updated alpha builds every few weeks with new features and bug fixes. Please check back often, and hit that update button!
Installation
The latest portable version can be found at https://www.hec.usace.army.mil/fwlink/?linkid=ras-2025 (x64, Windows 10/11).
Download, extract, and run ras.exe.
Note: Some IT services prevent running code from within your user profile. For maximum compatibility, extract to a directory outside of your user profile (e.g. "C:\Programs\HECRAS_2025").
Launch Screen
The RAS launch screen prominently features your most recent project, which you can click to launch. You can also scroll down from there for a chronological history of other projects you've worked on recently. The left side of the launch screen gives you options to create new or open existing projects, as well as a GIS-centric Scratch Project mode. The right side of the screen gives you more general information about RAS, settings and software updates.
New Project
Need a model?
If you're just looking to jump in and test new RAS features on an existing model, scroll down to our Example Projects section.
When you click the New Project button on the launch screen, you need to provide a Project Name and decide on a spatial reference system. RAS now prioritizes geospatial data wherever possible, which means you have to specify your projection up front when creating the model. This helps us re-project incoming raster and vector data, set the model unit system, and add base maps.
Where is my model stored?
New models are stored in the user's default project folder, shown under the model's Project Name in the New Project page. This location can be changed in the global settings menu. For more information, scroll down to the Settings and File System sections.
Setting your Projection
Spatial projections are foundational to many functions in RAS 2025, so we've added several new ways to set your model projection. Because projections are implicitly embedded in your model files (terrain re-projection, imported layer clipping, etc.), you cannot currently change your projection after the model has been created.
Copy from existing file | The easiest way to get a projection is to extract one from an existing file. RAS can read projections out of many known file formats, including .prj, .tif, .ras project files, and many others. If you have a raster file with an existing projection, you can drag and drop it on the button to extract it. | |
Find projection on map | We want to support map search for common projections (UTM, State Plane, etc.). This option is still a work-in-progress, and will be arriving in a future build. | |
Enter EPSG/Proj/WKT | If you have the source text for your projection, paste it in the box. Any integer will be interpreted as an EPSG code. Check the Projection Summary to make sure RAS recognizes the projection you entered. | |
Search | You can also search for a projection by name. We're utilizing a database from PROJ (see https://proj.org) to search for well-known projections. This must be mapped to an EPSG code, so not all projections are available with this option. We're working to expand and improve the search option to include other common well-known projections. |
Projection Summary
When you select a projection, you should confirm that the summary information makes sense for your data source. Note that our current alpha builds still have some issues identifying EPSG/UTM codes.
For some projections we are able to determine an appropriate "area of use", displayed below in latitude/longitude. This metadata is shown to the user to help confirm the projection is correct, and has no effect on the created model.
Using a Local Projection
RAS can still run in tabletop mode (without a projection), but you have to assert this is the mode you will be working in when you're first setting up the model. This helps RAS set spatial tolerances appropriately, and controls certain behavior around mapping and terrain generation. You also have to specify whether the units system is US Customary or Metric, which is normally determined from the associated model projection.
Open Project
Opening a project file is supported for RAS 2025 projects (*.ras), but there is also an experimental RAS version 6 (*.prj) importer. This is a 'best effort' importer, which tries to convert geometry/boundary-condition/terrain inputs to their 2025 counterparts. The v6 importer will be expanded and improved over the coming years, and we'll highlight new feature support as it arrives. Note that v6 geometries cannot be run with the new solver, so their principle use is for visualization and vanilla GIS operations (copy river centerline as mesh arc, etc.). Any file that can be opened from the Open Project page can instead be dragged and dropped onto the interface.
Example Projects
RAS can now search and download example projects directly from the UI! When you click Example Projects from the launch screen, you see this page:
The Example Projects page can search for projects by name, and future releases will support tagged searches for hydraulic features like 'sediment' and 'precipitation'. When you select a model, you can see more specific information about it (purpose, modeling features, date modified). When you open the model, it is downloaded from HEC servers and extracted to your default project directory. Models are routinely added/updated on HEC servers, so check back frequently.
Synthetic Datasets
In addition to a growing list of example projects, we also have a collection of synthetic projects. Synthetic datasets are defined in-memory, and do not load or store to disk. They typically use functional terrain surfaces, and are simplified models designed to validate a specific feature of the solver. As such, they have certain limitations, e.g. you can't add new raster-based terrains to them. These can be powerful learning tools that are very easy to spin up and experiment with. Synthetic datasets are principally for internal testing and validation, but we're exposing them in the hopes that they can be useful to you as learning tools. Synthetic datasets are currently experiencing some instability, so look for them in a near-term build.
In-Memory Datasets
One of the principal goals of the RAS rewrite was to make sure our code was more easily testable. To this end, we put a lot of work into making sure as many RAS features as possible could be defined in-memory, using functional values. For example, our simple Normal Depth test-case defines a planar terrain with f(x,y) = slope*y. Think of these as terrain modifications on steroids - we didn't need to go to another GIS, build & rasterize a TIN, then import the imperfect result into RAS. This functionality extends to terrains, precipitation, n-values, observed data, and most other surface layers. We're still working on a good way to expose this functionality in the UI, but we're excited at the new possibilities that this type of data enables.
Settings
Global and project settings are available from the main launch screen by clicking the settings gear icon next to the Bug Report button. This menu is where any application-wide settings will persist.
Bug Reports
Bug reporting is now available directly from within the software. Use the Help → Report A Bug menu to report any bugs you come across. When filing a bug, you need to answer a few questions (video).
- Tags: Check any of these categories that seem relevant to your issue. This helps us organize and review bugs, but doesn't otherwise affect the bug report.
- Email: Providing an optional email address will allow us to reach out to you if needed. We expect to receive a large volume of similar bug reports, and won't be reaching out to everyone. We will only email if we feel like we need more detailed steps, or if we need your model to reproduce a specific issue. We're still working on improved feedback mechanisms to let you know when we believe the issue has been fixed.
- Title: Please provide a concise summary of the issue.
- Description: Please answer the provided questions if they make sense for your issue. Add any relevant details that might help us reproduce or diagnose the bug.
- Screenshots: Attach up to 4 images that demonstrate the issue, if relevant.
- Geometry: If you select the 'Geometry' tag for the bug report, RAS enables an additional drop-down that allows you to upload 1 Geometry file that reproduces the issue. RAS saves and uploads a backup of this geometry file, which just contains the wireframe Conceptual Mesh. This is very helpful for us to reproduce mesh generation issues, so thanks in advance for including these!
Updater
The right panel of the launch screen shows recent patch notes and an updater button. If an update is available, you can click the Update Available button to go to the RAS Updater page. The Update To Latest button will download, update, and relaunch itself. Future builds will have the ability to swap between alpha/beta/release channels, support multiple side-by-side installations, etc.
Updater Errors
We've noticed a few crashes that occur deep in the Windows UI stack that can cause zombie processes to hang around. If the updater fails, check for Ras.Interface.WinUI.exe in task manager, and try to kill the process. If you can't kill (or can't see) the zombie process, it's likely that an aggressive anti-virus software is locking this file after such a crash. Unfortunately, the only fix at the moment seems to be restarting the computer. We will continue to look for better mitigations and workarounds.
The Main Window
Welcome to the new RAS main window! Anyone familiar with RAS Mapper in version 6 should feel right at home. Our goal is to provide a map-centric, GIS view of the model that is tailored towards hydraulic needs. The main window is now composed of multiple tabs which you can detach, dock, full-screen, or hide as your workflow demands.
The Model Tab
The model tab is your primary layer list for enabling and disabling layers in the map window. Many other elements in the UI react to the selected item in this list. Layers are grouped by category and file type. The root 'Project' element also has menu options for project-wide actions.
Primary Action Bar
In the upper-left corner of the main window, we have a set of context-sensitive buttons called the Primary Action Bar. These items react to your selected layer in the model tab, giving you the most important or relevant actions for the currently selected layer. Any actions that appear here are also available under the relevant layer context menu.
Control Bar
The control bar is in the upper-right corner of the main window. In this area, you have access to...
Tasks: The Tasks button gives you a summary of any ongoing, long-running tasks, with options to pause or cancel them. Hydraulic solvers, terrain imports, and map generation all emit tasks to this area.
Notifications: The notification bell will show you a chronological summary of system notifications, with possible actions associated with each. Example notifications include task summaries (file written to location X in Y seconds) and loading errors (file not found).
Dark/Light theme switcher: We're still working on full system theme switching, so some operations may be difficult to accomplish in dark/light mode. Use this button to switch themes back and forth. Currently, RAS boots up with dark or light mode matching your OS theme.
The Map
The map is the center-piece of the redesigned main window. We want RAS to be the best (and most convenient) GIS you have access to. We're not there yet, but please test out what we have so far! If you have a raster or vector layer you think RAS should be able to read, drag + drop the file on the map window, and we'll do what we can to read it. Look for expanded file support as we go further into the alpha. Map controls should be fairly intuitive to anyone familiar with RAS Mapper (or any other GIS) (video).
In the upper-left corner of the map window, we have our primary cursor tools. From left to right:
Pan Tool: Allows you to pan and zoom in the map window. This will be your default tool most of the time.
Selection Tool: Allows you to select features from the currently selected layer in the model tab.
The selection tool drop-down gives you alternate selection modes.
Edit Tool: Allows you to edit features from the currently selected layer in the model tab. This will only show up if your selected layer is editable.
Measure Tool: Allows you to digitize a polyline or polygon, getting relevant information about the line.
The measure tool drop-down allows you to switch between polyline and polygon modes.
End/dismiss the measure tool with the 'Escape' key.
OSM has a handful of style options to choose from, which vary symbology and feature visibility by zoom-level.
The Components and the Layer Tabs
The Components and Layer tabs react to the selected layer in the Model tab. This area is still a work-in-progress, but our general organizational philosophy is that model elements (affecting hydraulic results) go on the Components tab, while visualization properties and layer metadata go on the Layer tab.
The View Tab
The View tab is docked behind the Model tab in the default configuration. If you're zoomed into an area of interest, you can save a 'View' (extent + zoom level) of that region. Views can be mapped to different hotkeys to enable rapidly switching between them. Views are saved to the mapping/visualization file (*.vis). Views can be renamed by selecting the text in the table, and the buttons on the right will zoom-to or delete the view.
Editors
Many core RAS layers have dedicated editors for more complicated modifications and interactions. The Components tab is intended to be a 'mini editor', where we prioritize the most important or relevant interactions, while the full editor is reserved for more complicated or less frequent interactions. To open any layer's primary editor, you can double-click the layer, or right-click and hit Open Editor.
Editing Tools
The new RAS editing tools are similar to the existing ones in RAS Mapper, but have been slightly reworked around a mono-tool for adding and editing features. All vector editing features are locked behind the Edit Tool, so make sure you have the pencil selected in the tool list when you want to start editing a layer. When you have the edit tool selected, we generally refer to this as being in Edit Mode.
Edit Mode
While in edit mode, a green dot appears below your cursor to indicate that you can start drawing. All new features begin with a double-click. Once you start digitizing a feature, we show a preview of the next segment with a dashed line that follows your cursor.
To close a feature, you can double-click or press escape. To open an existing feature, hover over it with your mouse and double-click. Editing an existing feature allows you to move existing points or insert new ones on a segment. All of these give you preview images showing you what the next click will do.
Undo/Redo
All vector editing tools work with undo (ctrl+z) and redo (ctrl+y). We are still working on getting this system working with feature metadata (like cell spacing).
Hotkeys
While in edit mode, some keys change mouse interactions.
Shift: Enable temporary panning while pressed.
Control: Insert a Node into an existing Arc (only valid when editing a mesh)
Delete: Delete the selection.
This will delete selected points within an open feature.
Adding Map Layers
You can visualize any raster or vector layer by dragging and dropping them on the map. This will open up a preview dialog that renders the data and gives you an opportunity to import or cancel. The importer dialog is fully interactive (pan/zoom) and shows file metadata on the right panel.
To import this file, click Import as Reference. Importing a reference to a file will allow RAS to read that file wherever it currently exists on your disk. RAS does not create a separate copy of the file.
Importing Vector Data
We're still working on improved vector import tools, including display/editing of feature table attributes. Look for this in a future update!
Copying Vector Data
If you have a vector layer in your model (like a Shapefile), you can copy features from that layer to paste into another layer.
To copy all features, you right-click the layer name in the Model tab, and select Copy from the drop-down menu.
To copy a subset of features, use the Selection Tool to select the desired features, then right-click any of the selected features and click Copy Selection in the drop-down menu.
To paste copied features, right-click the desired layer. If that layer is a valid paste target for the copied vector type, you'll see the Paste Features menu item.
Creating a Terrain
Creating a terrain layer in RAS 2025 has been substantially improved from the process in RAS Mapper. Terrains are now fully editable - you can add new terrain tiles any time after the terrain has been created, tiles can be imported in parallel, and layers are now fully sortable after import. To create a terrain, right click the Terrains group in the model tab (video).
The new terrain layer is an empty container - it needs data. Select the terrain layer in the Model tab, and navigate to the Components tab to add terrain tiles. You can click the button, or drag/drop files into the Layers section (shown below).
When adding new tiles to the terrain, the terrain importer page shows you summary information, an interactive preview, and prompts you with a few questions.
Tiles being imported can be selected in the Terrain Layers list (upper right). The preview image shows the importing tile in color, while existing or unselected tiles are cast in a grayscale hillshade. Visually confirm the importing tiles are correct (and reprojecting as-needed), then hit the Import button to bring them into your model. Imported terrain files are copied from their source data into the Terrains directory, where they are internally rounded, tiled, pyramided and compressed for fast visualization. The interface remains fully usable while the layers are importing, so feel free to continue building your model while you wait.
If you accidentally import the layers in the wrong order, you can easily drag and drop to rearrange them in the Components tab. The map will detect the update and redraw immediately, so you can visually confirm the correct order.
Creating a Geometry
The RAS geometry layer determines how water is measured and modeled in your system. All geometry data is event agnostic. It also defines static land surface properties (elevation, friction, etc.) via layer associations. Current alpha builds only supports 2D hydraulics, with basic hydraulic structures coming in a future release.
Geometry Associations
Geometries must be associated with a Terrain and an N Value layer. Associations are defined in the Components tab.
Associations
When one layer relies on another for some fundamental interaction, we call that a layer association. Associations are typically single-directional; a geometry "has a" terrain association, but the terrain doesn't need a reverse-association back to the geometry file. Associations are typically many-to-one (i.e. many geometries can have an association to the same terrain layer). Associations are stored in the project file, which holds the pair of associated layer names. This means that any disk manipulation (renaming files, creating clones/backups, etc.) can break the layer associations.
Meshing
The RAS 2025 meshing system has been fully rewritten and redesigned. The central tenant of the new system is that users will build a conceptual mesh, which is used to emit a computational mesh. A conceptual mesh is a blueprint - it has the coarse wire-frame detailing features of interest (high-ground, channelized flow, etc.) and a set of properties describing final cell properties like size, shape, and orthogonality (intro meshing video).
Mesh Terminology
Conceptual Mesh: A conceptual mesh is the set of arcs, regions, and nodes in your model. This is an instruction set for creating a computational mesh.
Computational Mesh: A computational mesh is the final set of cells and faces that are sent to the compute engine for the hydraulic solver.
Arc: An arc is a multi-point line in the conceptual mesh. Arcs set cell spacing and enforce faces (like breaklines). Arcs may be 'floating' (not part of a complete ring), and will act like regular breaklines.
Node: Nodes are used to separate and join arcs. Nodes do not contain any mesh generation metadata.
Region: A mesh region is formed by a ring of arcs and nodes in the conceptual mesh. Regions enforce cell shape (triangle, quad, etc.), and some sizing information.
Changing an Arc/Region
While in edit mode, you can interact with any region on the map by hovering it with your mouse. This will reveal the edit picker (the orange icon). Select this icon to reveal a set of options on this region. From left to right, the cell shape options are: Quadrilateral, Triangular, Cartesian, and None. Click the edit picker once more to dismiss the interface.
Creating a Computational Mesh
When you're ready to preview the computational mesh, click the Full Regenerate Mesh button in the Primary Action Bar. This process can take some time depending on your mesh complexity and cell count. This happens in the background, so you can keep digitizing your conceptual mesh until it completes. The computational mesh will display automatically once it has finished computing. The mesh is stored and visualized under the geometry layer node, in the Mesh layer.
Triangular Meshes
Triangles are the most basic computational cell shape. They can scale size up and down rapidly, and can conform to tight breakline contours. You can change a region to use triangles with the edit picker. The 2nd image is demonstrating that you can set an arc to have different spacing than the region, and cells will organically scale between them.
Quadrilateral Meshes
Quadrilateral meshes are ideal for following highly channelized regions. For quadrilateral meshes, cell spacing is defined along arcs, not regions. The quick-edit picker presents an abstraction on the region, allowing you to force-write cell-size metadata to the neighboring arcs. Note that you can have more than 4 Arcs on a quadrilateral mesh, which allows for more flexible cell spacing. In the following image, there is a node splitting the northern edge into two arcs. In this case, RAS chooses the 4 best interior angles to get virtual arcs for the quadrilateral channel.
In the following image, the highlighted Arc was increased to 200ft cells (from neighboring 100ft) to demonstrate how cell sizes can transition down a quadrilateral channel.
When you use the quick-edit picker on quad channels, you need to 'confirm' the change by pressing the orange button. This will push that metadata out to the relevant arcs. Note the 3 highlighted Arcs will be updated when we accept the change.
Multi-resolution meshes
With the same conceptual mesh, varying cell-size parameters can emit computational meshes with different resolutions.
Splitting an Arc
To split an arc into two, hold the control key while hovering the arc in edit mode. While inserting a node like this, you get a preview visualization of which Arc you will be splitting. The original arc's metadata will be copied to each of the two new arcs post-split.
Exporting Mesh to RAS v6
You can export your computational mesh for use in RAS version 6.6. Because of the difference in mesh generators, the exported mesh will not be editable in RAS 6.6. For more information, see the relevant v6 documentation.
Advanced Meshing
For a more detailed breakdown of our new mesh generation, see Advanced Meshing.
Creating a Boundary Condition
Boundary condition files store all of the hydraulic, sediment, and water-quality data about a specific event, and require a time-window to be set up front. RAS considers this to be a minimum bounding window; individual boundary conditions on this layer must cover this time-window (but may cover more). Begin by adding a new boundary condition layer to the Boundary Conditions bucket (video).
Why do Boundary Condition Layers need a time-window?
In prior versions of RAS, boundary condition files had temporal data (flow/stage/precipitation) without having a specific time-window. This meant that most boundary condition data could not be validated until run-time, which led to some confusion and performance issues. It made other operations more difficult too - when a DSS file has 60 years of record, RAS can't efficiently sample and render larger data sources like precipitation and wind. Cumulative data sources also become incomprehensible to visualize - cumulative starting from when? Visualizing cumulative precipitation makes sense for a single event, not for all recorded history. For all of these reasons, we're moving towards defining a time-window on the boundary condition file. Plans now use the time-window from their boundary condition layer association. For more information, see the Creating a Plan section.
Boundary Condition Lines
Boundary condition lines must be applied at the edge of your domain, either adding or removing water from the system. (Internal BC lines are not yet supported). You can add a new boundary condition line to the edge of your mesh by selecting the Boundary Condition Lines layer and enabling Edit Mode.
After drawing a new boundary condition line, you should see a ? appear on the map, hovering over the line. Click this button to select a type of hydraulic boundary condition. Currently, the only supported hydraulic types are Stage, Flow, and Normal Depth.
Alternatively, the Components tab will highlight data for the currently selected boundary condition line, and can be used to assign hydraulic data.
Adding Boundary Condition Data
To add data to a boundary condition line, select the drop-down menu in the Components pane.
Constant
If you need to represent data as constant through time, we now have a dedicated option for this. This option allows the user to be more expressive about their intent (as opposed to using a 2-point time-series bounding your time-window), and allows RAS to draw charts and maps accordingly. This option is helpful for synthetic and tabletop studies, or for simplifying your model while debugging.
Tabular
Tabular data allows you to represent your time-series with a table you can type or paste into. Tabular data has several options for defining time.
Regular time-series (RTS) data requires a fixed time interval (dT) between values. This is expressed as an integer and a time unit, e.g. '15' and 'Minutes'.
Absolute starting time allows the user to define the first step of their time-series manually.
Relative starting time inherits the first timestep from the boundary condition layer starting time. This is useful for synthetic events, where the goal is to run a hydrograph without caring about when it occurred.
Irregular time-series (IRTS) data doesn't have a fixed time interval, so the user must include every discrete timestep accordingly. IRTS data is always absolute.
What is Time?
RAS is used on an incredibly wide range of study types, from period-of-record studies to live forecasts to planning studies to tabletop models. To support all of these uses, we want a flexible system for defining temporal data. This system will be reused throughout the interface where applicable.
We're still working on improving our tabular data entry, so you may notice some deficiencies around selection, copy/pasting, etc. Look for these improvements in a future update!
File
There are a variety of external file sources for time-series data, including DSS. We generally refer to these data sources as External Connections. Support for this will be coming in a later build.
Functional
We're working on easier ways to specify boundary conditions for synthetic datasets that don't involve spreadsheets and coarse discretization. Functional boundary conditions allow the user to specify a sinusoidal or polynomial data stream, and RAS will discretize and integrate it at the appropriate resolution for the solver. Look for this feature in a future build.
Initial Conditions
We are working on bringing initial conditions to the new UI, but that isn't ready to show yet. Currently the only way to initialize water surfaces in your domain is to assign a stage boundary condition, which will project that water horizontally into the domain until it is stopped by terrain. In the meantime, we recommend ramping up the early timesteps of your flow boundary conditions to "warm up" the system for best results.
Spatial Boundary Conditions
Spatial boundary conditions are temporal or event-specific data sources that are expressed over a region. Like the name implies, spatial boundary conditions are stored in the boundary condition layer. Some examples of spatial boundary conditions are...
- Meteorological forces like wind, precipitation, and atmospheric pressure
- Water-quality data like air temperature
- Groundwater and infiltration data
We're still in the process of adding meteorological forces to the RAS boundary condition layer, so you may see hints of these around the UI that we're not ready to demonstrate yet. Check back for those soon!
Adding Data
Spatial boundary condition data is added to the Boundary Conditions Editor, on the Spatial Boundary Conditions tab. Each spatial boundary condition generally has three ways to enter data - Constant, Gridded, and Point/Gauge interpolation. All spatial boundary conditions have a Ratio option, which scales the values up and down. Ratios are typically used for sensitivity analysis or unit conversion.
Constant Data
Just like boundary condition lines support constant flow, all spatial boundary conditions support constant values. Constant values must be expressed in native units (e.g. in/hr precipitation for USC or mm/hr for metric units). An inline calculator is provided for your convenience for unit conversion.
Gridded Data
Most real spatial data sources come in a gridded (rasterized) file format.
Imported vs Just-In-Time
When spatial data is imported, RAS holds it in an internal format in our HDF5 file that is compressed and pyramided for rapid visualization. All supported inputs can be imported into our file format. Imported data sources are generally faster and easier to work with - RAS can be confident that no other software is changing the data, and we store metadata like no-data values, timestamps, and units.
By contrast, some data sources can be ingested just-in-time, when the model is run. This feature is generally used to support real-time forecasting scenarios and is not recommended for typical usage. Because of inconsistent metadata and unit standards, only some file formats are supported for just-in-time usage. Just-in-time data ingestion is not yet available, and will be coming in a future build.
Visualizing Data
All spatial boundary layers can be viewed by enabling them in the Model pane, under their respective boundary condition layer. Temporal data can be manipulated with the Profile Slider at the top of the map window.
Precipitation
Precipitation in RAS is still in the very early development stage, but the basics are working and available to use.
Precipitation Data Issues
We're aware of multiple popular precipitation file formats that RAS doesn't read yet. Currently the only format that we're actively testing with is GRIB2. Expanded format support will be coming shortly.
Wind
Check for this in a future update.
Atmospheric Pressure
Check for this in a future update.
Infiltration
Check for this in a future update.
Setting N Values
In prior versions of RAS, we had a complicated mixture of legacy modes for setting and overriding n values. In RAS 25, n values are exclusively set from a single surface layer (which can be derived from multiple input files). A relationship flow chart is shown below.
What is a surface layer?
When we refer to a surface layer, we're talking about a layer where every (X,Y) spatial coordinate has a single value. A surface layer can be comprised of any number of raster or vector inputs, but these input layers have priority. If two data sources cover the same (X,Y) coordinate, then the higher-priority value takes precedence. Examples of surface layers in RAS include terrains, n value layers, and classification layers. Spatial boundary conditions (precipitation, wind, etc.) are temporal surface layers.
Adding an N Value layer
An n value surface can use one of several different inputs. You can select either a constant value or an existing n value (float) raster or a land-cover Classification based approach. Regardless of which set of inputs you use, you get a single n value surface as a result, which can be manipulated with calibration regions. N values are added to the Map Layers bucket.
Like the terrain layer, adding an n value layer creates an empty bucket that can be modified in the Components tab. You must select between the 3 different modes provided.
Constant N Values
You can set the layer to use a global-constant n value. This is a helpful simplification for tabletop models and synthetic datasets.
N Values from Classification Layer
The most common way of defining n values is to map land cover Classifications (e.g. National Land Cover Database, NLCD, https://www.mrlc.gov/data) to n values using an Interpretation Table. We provide a button to Auto-Set NLCD, which recognizes known land cover names like 'Open Water' (that are based on a modified Anderson Level II classification system - https://www.mrlc.gov/data/legends/national-land-cover-database-class-legend-and-description), and seeds them with reasonable default n values. Please note that these are only defaults, and the user is responsible for doing direct calibration on their model.
N Values from Imported Raster
If you have a pre-built raster of n values from other GIS software, RAS will support importing and using it directly. This option is still a work-in-progress and will be coming to a future build.
Classification Layers
Classification layers emit a surface of discrete values. Depending on what surface you're evaluating, discrete values might represent concepts like "Open Water", "Silty Loam", or "Paved Surface". Collectively, we call these values Classifiers, because they're classifying the land surface in some way. Classifiers are mapped to physical properties (infiltration rates, n values, etc.) via an Interpretation Table.
Discrete vs Contiguous Surface
When we refer to a discrete surface, we're describing a surface with a fixed, finite number of states. This surface can be represented by raster or vector inputs. For example, a cell that is "medium-density urban" can be adjacent to a "high-density urban" cell, but we cannot interpolate between these values to get "pretty-high-density urban". This is in contrast with contiguous surfaces, where we can infinitely interpolate between adjacent points (like terrain elevations).
To begin, add a new classification layer to the Map Layers group.
The most common way to set n values is to start with the NLCD (National Land Cover Database), setting an Interpretation Table to map NLCD codes (e.g. 'Low-Density Urban') to n values. HEC-RAS now includes the ability to directly import NLCD (2021) data!
Importing the NLCD will clip out enough data to bound your current model area. If you extend the model in the future, you can delete the imported NLCD .tif and re-import.
If you want to use this classification layer as the basis for defining your n values, you can click Create N Value Layer in the Components pane to generate an n value surface for you with default NLCD interpretations. This is identical to the steps outlined in the N Values from Classification Layer section, but provided here as a convenient shortcut.
Creating a Plan
At its core, a Plan is an instruction set to run a model with a specific set of inputs. A plan marries a geometry and a boundary condition layer while adding additional computation and output options.
Plan Time Window
Plans use the time window from their associated boundary condition layer. In rare circumstances, it may be helpful to run a subset of the full boundary condition time window, i.e. 2 days of a 14-day event. If you need this for your model, you can swap the plan Time Window Mode to a Custom Time Window (shown in the figure below). The plan time window must be a subset of the full boundary condition layer time window, since this is the range for which you have asserted temporal data. If you change associated boundary condition layers, this may become invalid.
Plan Associations
A plan must be associated with a geometry and boundary condition. This cannot currently be changed after the plan has been created.
River Radar (Plan Errors)
Any internal inconsistencies with a plan/geometry/boundary condition are routinely checked as you modify your model. These static errors are displayed in the Components pane, under the River Radar section. The most typical errors here are time window mistakes and missing data layers. Any data checking that requires external data sources (DSS flow data, terrain fully covers mesh, etc.) are checked at run-time after you click Compute.
Compute a Plan
Explicit Solver
RAS 2025 uses a brand-new explicit solver, developed in C#. Explicit solvers scale to more cores and modern architectures, and we're looking forward to the promise of the future of performance gains.
Explicit vs Implicit, what's the difference?
An implicit solver uses a matrix per timestep to set water levels in the model. Because implicit solvers 'balance' water across multiple consecutive cells, they are not strictly bound by the courant condition for model stability. By contrast, explicit solvers compute water fluxes between adjacent cells every timestep, transferring that volume out of cell A and into cell B. Because you cannot take more water of a cell than it has to begin with, explicit solvers are strictly limited to the courant condition. This limit is so foundational that we don't allow you to set a strict timestep that can violate it.
To deal with this, we have introduced a local timestep (LTS) to the explicit solver. This allows very small cells (or cells with rapidly moving water) to use multiple local timesteps per global timestep, which allows us to balance speed and computation time, spending it in the areas of the model that matter most. For more information, see the Local Time Stepping section below.
Compute Options
Common compute options are placed in the Components pane when you have the plan selected.
Mapping Interval
The mapping interval controls how often model state (depth, velocity) is stored to disk, which in turn controls how fine-grained your mapping visualization can be. Mapping interval is expressed as an integer frequency on the compute interval, i.e. 'save every 10 compute steps'.
Why is Mapping Interval expressed as an integer?
The compute interval represents a sync-up point for model elements in the solver. We only get consistent state at this fixed interval, so we need our mapping frequency to land on one of these steps. RAS v6 has an awkward co-dependency here; a 1-minute compute interval and 5-minute mapping interval is perfectly valid, but dropping to a 50-second compute timestep suddenly invalidates your mapping selection. In an attempt to avoid these kinds of issues, we chose to express the mapping interval as an integer multiplier. This may change in the future.
Core Count
The solver currently has a fairly simple multi-threading scheme that uses a fixed number of cores for internal tasks. Please note that smaller models will actually slow down with more cores as the domain is split too finely and cross-core communication costs rise. In the future we will attempt a more dynamic scheme to add and remove cores during the simulation to optimize this automatically. As a very coarse estimate, you can start with 1 core per 1-5 thousand cells. This will change based on many factors, including your CPU speed, compute options, and the fraction of your domain that is inundated. As always, experiment with this value for best results.
Advanced Compute Options
Advanced compute options are available by opening the Plan Editor and selecting the Advanced Compute Options tab.
Local Time Stepping
Local Time Stepping (LTS) is a technique to run constraining cells (smaller or faster-moving water) at a sub-timestep. If enabled, the selection of # time levels controls the ratio of the slowest to fastest cell in your domain. In our LTS scheme, adjacent cells can only change 1 LTS level from any neighbor, which represents a 2x or 1/2x sub-timestep change. If the most constraining cell in your domain needs a 1-second timestep, then a ratio of 3 time-levels (default) means that no cell in your domain can exceed a 4-second timestep (1, 2, 4 seconds). Increasing this value may speed up models with highly variable courant conditions, at the cost of extra solver book-keeping and some stability. (Note that 'variable' here means 'spatially variable', where different cells have starkly different courant conditions at the same model timestep.)
Maximum CFL
This is the courant limiter. It defaults to a value of .8, and can never exceed 1. Decreasing this value may speed up models with high acceleration, to avoid the solver having to continuously fail and retry timesteps.
Use FBF
FBF ('Forward Backward Forward') is a (predictor-corrector?) scheme to attempt to take longer time-steps by predicting the (acceleration of flow?). (TODO)
Use Advection
(Documentation Pending)
Advection Scheme
(Documentation Pending)
Use Diffusion
(Documentation Pending)
Base Eddy Viscosity
(Documentation Pending)
Latitude for Coriolis
(Documentation Pending)
Longitudinal Mixing Coefficient
(Documentation Pending)
Transverse Mixing Coefficient
(Documentation Pending)
Smagorinsky Coefficient
(Documentation Pending)
Compute
To compute the plan, make sure you have it selected in the tree. The Primary Action Bar and Components pane will both have a Compute button. Click this button to start a run. The software is fully usable while the model is running. When you click Compute, the Compute Log docks in front of the map window.
Solver Error Reporting
When the solver goes unstable or encounters an error, we're not currently able to give you good feedback on why this happened, or how to fix it. Look for improved tooling in a future build.
Results
A RAS result is a record of a computed plan. Results store all inputs that go into the solver, including geometry, boundary condition, and plan information. Expanding a result in the model
Live Results
Model returns are now rendered live, during the run! One of the best benefits of rewriting the software using one language is that we have more opportunities to integrate the solver with the user interface. We're only getting started, so look for more awesome features that were previously not possible.
Result Mapping
Result mapping should be familiar to anyone who has used the animation tools in RAS Mapper in version 6. To visualize results, enable and select the desired map-type under the result. The animation bar at the top of the window reacts to your selected layer. To change mapping timesteps, click and drag.
Time-Series
(Documentation Pending)
Profile Lines
(Documentation Pending)
File System
We've redesigned how models are stored to disk. We wanted to simplify file management, enabling users to control their own backups and share models easily. Here is an example RAS project directory:
In the root project folder, we have these files:
.lock signals that this model is currently open in RAS, so we can guard against duplicate instances of the software loading the same model. This file can be left behind if the software crashes without shutting down gracefully.
*.ras is the new RAS project file. It is principally responsible for storing the projection, plan/geometry associations, and some small model metadata.
*.thumbnail.png is the thumbnail image for the project, which is saved on shut-down.
*.vis is the 'Mapper' visualization file, storing transient state like color-ramps and layers that are on/off.
One model per folder
RAS has always had an unwritten rule that there should only be one model per directory, but we haven't strictly enforced it. We've tried our best to deal with multiple projects in a common directory, but there were always bugs and edge-cases that we couldn't account for effectively. We are now enforcing that there must ONLY be one RAS project per directory. This small constraint allows us to statically discover more of a model via the file-system, and enables some interesting features that were previously impossible.
Model files are sorted into relevant sub-folders (Geometries, Boundary Conditions, Plans, Results, Terrains, Surface Layers). During the model boot-up process, we search each of these directories to load relevant model files. This means that a geometry belongs to a model because it exists in the /Geometries directory - we don't need to save this to a hidden project file. You can send files out-of-band, save backups, and clone them using the file system, and RAS will automatically discover and include those files in the model. No more hand-editing text files!
Our model-discovery process looks for specific files in specific folders, so the root directory is necessarily rigid. We're working on some better model organization features, which we'll be sharing in the future.
Auto Saving
RAS now automatically saves most files periodically while the software is running, and all model files are saved when the software is closed. As models have exploded in complexity, we found too many situations where people could put their model into irreconcilable states by electing to save some files but not others. There were also hidden "soft save" states where model files needed to be saved for memory constraints (importing precipitation data, computing property tables, etc.) We understand that many users have relied on "don't save on close" as a way to experiment on their models non-destructively, but we're hoping that a suite of other features cover this use-case more effectively going forward.
Backups
Model file backups are stored in a folder next to that model file. For example, "Base Geometry.h5" will have an adjacent folder called "Base Geometry Backups".
RAS is continuously taking small geometry snapshots while you're editing your mesh. Note the dramatic file size difference between the 'real' geometry (5MB) and the backups (10KB). This is one of the great strengths of the new conceptual mesh system; because the conceptual mesh deterministically defines the full computational mesh, we only have to save a relatively small set of information to be able to recover and rebuild your geometry. We can save and load a time-history of your mesh building, allowing you to make changes to your model with confidence.
In the future, look for an improved UI around backup management and recovery. Right now, you can simply copy one of the backup files to the main /Geometries directory, and RAS will automatically discover it.
This enables us to do model file discovery on bootup, which makes file sharing dramatically easier.