This document is archived and information here might be outdated.  Recommended version.


Create LogicalOp Boolean NOT Raster Snippet (ArcObjects .NET 10.5 SDK)
ArcObjects Library Reference

Create LogicalOp Boolean NOT Raster Snippet

Create a boolean 'NOT" raster from an input GeoDataset.

[C#]
/// <summary>
/// Create a logical boolean 'NOT" raster from an input GeoDataset.
/// </summary>
/// <param name="geoDataset">An IGeoDataset interface that has cell values that need to have a boolean 'NOT' (or compliment) values computed.</param>
/// <returns>An IGeoDataset interface that contains compliment values of the input raster.</returns>
/// <remarks>
/// Note: the input geoDataset must be of Type IRaster, IRasterDataset, IRasterBand, or IRasterDescriptor.
/// 
/// For information about the ILogicalOp.BooleanNot Method see:
/// http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriSpatialAnalyst/ILogicalOp_BooleanNot.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 CreateLogicalOpBooleanNOTRaster(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 MathOps object
        ESRI.ArcGIS.SpatialAnalyst.ILogicalOp logicalOp=new ESRI.ArcGIS.SpatialAnalyst.RasterMathOpsClass();

        // Declare the output raster object
        ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset_output=logicalOp.BooleanNot(geoDataset);

        return geoDataset_output;

    }
    else
    {

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

    }

}
[Visual Basic .NET]
''' <summary>
''' Create a logical boolean 'NOT" raster from an input GeoDataset.
''' </summary>
''' <param name="geoDataset">An IGeoDataset interface that has cell values that need to have a boolean 'NOT' (or compliment) values computed.</param>
''' <returns>An IGeoDataset interface that contains compliment values of the input raster.</returns>
''' <remarks>
''' Note: the input geoDataset must be of Type IRaster, IRasterDataset, IRasterBand, or IRasterDescriptor.
''' 
''' For information about the ILogicalOp.BooleanNot Method see:
''' http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriSpatialAnalyst/ILogicalOp_BooleanNot.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 CreateLogicalOpBooleanNOTRaster(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 MathOps object
    Dim logicalOp As ESRI.ArcGIS.SpatialAnalyst.ILogicalOp=New ESRI.ArcGIS.SpatialAnalyst.RasterMathOpsClass

    ' Declare the output raster object
    Dim geoDataset_output As ESRI.ArcGIS.Geodatabase.IGeoDataset=logicalOp.BooleanNot(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