Hydrology Modeling

Last Modified:1/21/2003

The purpose of this hydrology modeling tool is to expose some of hydrology modeling methods available through Spatial Analyst Objects and demonstrate how to develop a complex application using Spatial Analyst objects. This dll provides interfaces for creating flow directions, flow accumulation, filling sinks, creating watersheds and stream networks. It also has two buttons to calculate watersheds and rain drops interactively by clicking a location on the screen.

This Hydrology application does not support selection, changing output spatial reference.

How to use:
  1. Register DLL: Click Tool/Customize, click Add from file button in the Customize dialog, navigate to the file esrihydrology.dll, and click OK button. Click Toolbars tab in Customize dialog, check Hydrology Modeling, then the Hydrology modeling toolbar appears.
  2. Using VB Project: To use VB project, make three folders: class, form, module. Copy all class file (*.cls) into folder class, copy all form files into folder form, copy resource file hydro.res and module file utilmodule.bas into folder module, leave the VB project file in the same level as the three folders.
  3. To active the watershed and rain drop buttons, set up flow accumulation and flow direction from the Properties dialog in the Hydrology toolbar.
  4. The working directory for Hydrology Modeling is implemented through Spatial Analyst. To set up working directory (include other environment settings except output spatial reference), click Options dialog in Spatial Analyst, type the path in the working directory combo box.
  5. The results are temporary rasters by default. To save the results, using Make Permanent in the Context Menu.
  6. Please refer to HydrologyAnalysis.doc for additional information.


Requires: Spatial Analyst Extension License

Difficulty: Advanced

Visual Basic
File Description
HDButtonR.cls The class module calculating rain drops interactively.
HDButtonW.cls The class module calculating watersheds interactively.
HDComFillSink.cls The class module filling sinks.
HDComFlowAccumulation.cls The class module calculating flow accumulations.
HDComFlowDirection.cls The class module calculating flow directions.
HDComIdentifySink.cls The class module identifying sinks.
HDComProperties.cls The class module setting properties for watershed and rain drop buttons.
HDComStreamNetAsFeature.cls The class module calculating stream networks.
HDComWatershed.cls The class module calculating watersheds.
HDMenu.cls The class module defining the menu.
HDToolbar.cls The class moduledefining the toolbar.
frmFillSink.frm The form filling sinks.
frmFlowAccumulation.frm The form calculating flow accumulations.
frmFlowDirection.frm The form calculating flow directions.
frmIdentifySink.frm The form identifying sinks.
frmMakeShapefile.frm The form for creating pour point shapefile.
frmProperties.frm The form setting properties for watershed and rain drop buttons.
frmStreamNetwork.frm The form calculating stream networks.
frmWatershed.frm The form calculating watersheds.

Key CoClasses: RasterHydrologyOp, RasterMakerOp, RasterExtractionOp, RasterDescriptor, RasterDistanceOp
Key Interfaces: IHydrologyOp, IExtractionOp, IRasterDescriptor, IDistanceOp
Key Members: IHydrologyOp::SnapPourPoint, IHydrologyOp::Watershed, IHydrologyOp::FlowDirection, IDistanceOp::CostPathAsPolyline, IRasterDescriptor::Create, IExtractionOp::Points