ArcObjects Library Reference

Create HydrologyOp Basin Raster Snippet

Create a hydrology basin raster from an input direction of flow GeoDataset.

[C#]
/// <summary>
/// Create a hydrology basin raster from an input direction of flow GeoDataset.
/// </summary>
/// <param name="geoDataset">An IGeoDataset interface that has direction of flow cell values that will be computed.</param>
/// <returns>An IGeoDataset interface that contains new drainage basin values.</returns>
/// <remarks>
/// Note: the input geoDataset must be of Type IRaster, IRasterDataset, IRasterBand, or IRasterDescriptor.
/// 
/// The input GeoDataset shows the direction of flow out of each cell. This Raster can be created using 
/// the IHydrologyOp.FlowDirection method.
/// 
/// For information about the IHydrologyOp.Basin Method see:
/// http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriSpatialAnalyst/IHydrologyOp_Basin.htm
/// 
/// For more information on working with the ArcGIS Spatial Anaylst objects see:
/// http://edndoc.esri.com/arcobjects/9.2/CPP_VB6_VBA_VCPP_Doc/COM/VB6/working/work_rasters/sptl_analyst_objs.htm
/// </remarks>
public ESRI.ArcGIS.Geodatabase.IGeoDataset CreateHydrologyOpBasinRaster(ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset)
{

    if (geoDataset is ESRI.ArcGIS.Geodatabase.IRaster | geoDataset is ESRI.ArcGIS.Geodatabase.IRasterDataset | geoDataset is ESRI.ArcGIS.DataSourcesRaster.IRasterBand | geoDataset is ESRI.ArcGIS.GeoAnalyst.IRasterDescriptor)
    {

        // Create the RasterHydrologyOp object			
        ESRI.ArcGIS.SpatialAnalyst.IHydrologyOp hydrologyOp = new ESRI.ArcGIS.SpatialAnalyst.RasterHydrologyOpClass();

        // Declare the output raster				
        ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset_output = hydrologyOp.Basin(geoDataset);

        return geoDataset_output;

    }
    else
    {

        //Invalid type of GeoDataset for this process
        return null;

    }

}
[Visual Basic .NET]
''' <summary>
''' Create a hydrology basin raster from an input direction of flow GeoDataset.
''' </summary>
''' <param name="geoDataset">An IGeoDataset interface that has direction of flow cell values that will be computed.</param>
''' <returns>An IGeoDataset interface that contains new drainage basin values.</returns>
''' <remarks>
''' Note: the input geoDataset must be of Type IRaster, IRasterDataset, IRasterBand, or IRasterDescriptor.
''' 
''' The input GeoDataset shows the direction of flow out of each cell. This Raster can be created using 
''' the IHydrologyOp.FlowDirection method.
''' 
''' For information about the IHydrologyOp.Basin Method see:
''' http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriSpatialAnalyst/IHydrologyOp_Basin.htm
''' 
''' For more information on working with the ArcGIS Spatial Anaylst objects see:
''' http://edndoc.esri.com/arcobjects/9.2/CPP_VB6_VBA_VCPP_Doc/COM/VB6/working/work_rasters/sptl_analyst_objs.htm
''' </remarks>
Public Function CreateHydrologyOpBasinRaster(ByVal geoDataset As ESRI.ArcGIS.Geodatabase.IGeoDataset) As ESRI.ArcGIS.Geodatabase.IGeoDataset

  If (TypeOf geoDataset Is ESRI.ArcGIS.Geodatabase.IRaster _
  Or TypeOf geoDataset Is ESRI.ArcGIS.Geodatabase.IRasterDataset _
  Or TypeOf geoDataset Is ESRI.ArcGIS.DataSourcesRaster.IRasterBand _
  Or TypeOf geoDataset Is ESRI.ArcGIS.GeoAnalyst.IRasterDescriptor) Then

    ' Create the RasterHydrologyOp object			
    Dim hydrologyOp As ESRI.ArcGIS.SpatialAnalyst.IHydrologyOp = New ESRI.ArcGIS.SpatialAnalyst.RasterHydrologyOpClass

    ' Declare the output raster				
    Dim geoDataset_output As ESRI.ArcGIS.Geodatabase.IGeoDataset = hydrologyOp.Basin(geoDataset)

    Return geoDataset_output

  Else

    'Invalid type of GeoDataset for this process
    Return Nothing

  End If

End Function


Additional Requirements
  • The code in this document requires the following References added to the Visual Studio project:
  • ESRI.ArcGIS.DataSourcesRaster
  • ESRI.ArcGIS.GeoAnalyst
  • ESRI.ArcGIS.Geodatabase
  • ESRI.ArcGIS.SpatialAnalyst
  • ESRI.ArcGIS.System