Create an raster from a logical based attribute query of an input GeoDataset.
[C#]
/// <summary>
/// Create an raster from a logical based attribute query of an input GeoDataset.
/// </summary>
/// <param name="geoDataset">An IGeoDataset interface that has cell values that will be selected based upon an attribute query.</param>
/// <param name="string_WhereClause">A System.String that is the where clause portion of the attribute query. Example: "Value = 3".</param>
/// <param name="string_FieldName">A System.String that is the Field name in the input geoDataset.</param>
/// <returns>An IGeoDataset interface that contains generalization values of the input raster.</returns>
/// <remarks>
/// Note: the input geoDataset must be of Type IRaster, IRasterDataset, IRasterBand, or IRasterDescriptor.
///
/// For information about the IExtractionOp.Attribute Method see:
/// http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriSpatialAnalyst/IExtractionOp_Attribute.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 CreateExtractionOpAttributeRaster(ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset, System.String string_WhereClause, System.String string_FieldName)
{
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 RasterExtractionOp object
ESRI.ArcGIS.SpatialAnalyst.IExtractionOp extractionOp = new ESRI.ArcGIS.SpatialAnalyst.RasterExtractionOpClass();
// Declare the input object
ESRI.ArcGIS.Geodatabase.IRaster raster = (ESRI.ArcGIS.Geodatabase.IRaster)geoDataset;
// Declare a RasterDescriptor
ESRI.ArcGIS.GeoAnalyst.IRasterDescriptor rasterDescriptor = new ESRI.ArcGIS.GeoAnalyst.RasterDescriptorClass();
// Select the field used for extraction
ESRI.ArcGIS.Geodatabase.IQueryFilter queryFilter = new ESRI.ArcGIS.Geodatabase.QueryFilterClass();
queryFilter.WhereClause = string_WhereClause;
rasterDescriptor.Create(raster, queryFilter, string_FieldName);
// Call the method
// Note: the input rasterDescriptor that is created by a logical expression based on the attributes in a Raster.
// Those cells for which the logical expression evaluated to True in the RasterDescriptor are selected.
// Those cells that are not selected will be set to NoData.
ESRI.ArcGIS.Geodatabase.IGeoDataset geoDataset_output = extractionOp.Attribute(rasterDescriptor);
return geoDataset_output;
}
else
{
//Invalid type of GeoDataset for this process
return null;
}
}
[Visual Basic .NET]
''' <summary>
''' Create an raster from a logical based attribute query of an input GeoDataset.
''' </summary>
''' <param name="geoDataset">An IGeoDataset interface that has cell values that will be selected based upon an attribute query.</param>
''' <param name="string_WhereClause">A System.String that is the where clause portion of the attribute query. Example: "Value = 3".</param>
''' <param name="string_FieldName">A System.String that is the Field name in the input geoDataset.</param>
''' <returns>An IGeoDataset interface that contains generalization values of the input raster.</returns>
''' <remarks>
''' Note: the input geoDataset must be of Type IRaster, IRasterDataset, IRasterBand, or IRasterDescriptor.
'''
''' For information about the IExtractionOp.Attribute Method see:
''' http://edndoc.esri.com/arcobjects/9.2/ComponentHelp/esriSpatialAnalyst/IExtractionOp_Attribute.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 CreateExtractionOpAttributeRaster(ByVal geoDataset As ESRI.ArcGIS.Geodatabase.IGeoDataset, ByVal string_WhereClause As System.String, ByVal string_FieldName As System.String) 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 RasterExtractionOp object
Dim extractionOp As ESRI.ArcGIS.SpatialAnalyst.IExtractionOp = New ESRI.ArcGIS.SpatialAnalyst.RasterExtractionOpClass
' Declare the input object
Dim raster As ESRI.ArcGIS.Geodatabase.IRaster = CType(geoDataset, ESRI.ArcGIS.Geodatabase.IRaster)
' Declare a RasterDescriptor
Dim rasterDescriptor As ESRI.ArcGIS.GeoAnalyst.IRasterDescriptor = New ESRI.ArcGIS.GeoAnalyst.RasterDescriptorClass
' Select the field used for extraction
Dim queryFilter As ESRI.ArcGIS.Geodatabase.IQueryFilter = New ESRI.ArcGIS.Geodatabase.QueryFilterClass
queryFilter.WhereClause = string_WhereClause
rasterDescriptor.Create(raster, queryFilter, string_FieldName)
' Call the method
' Note: the input rasterDescriptor that is created by a logical expression based on the attributes in a Raster.
' Those cells for which the logical expression evaluated to True in the RasterDescriptor are selected.
' Those cells that are not selected will be set to NoData.
Dim geoDataset_output As ESRI.ArcGIS.Geodatabase.IGeoDataset = extractionOp.Attribute(rasterDescriptor)
Return geoDataset_output
Else
'Invalid type of GeoDataset for this process
Return Nothing
End If
End Function