|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.esri.arcgis.spatialanalyst.RasterNeighborhoodOp
public class RasterNeighborhoodOp
A mechanism for performing neighbourhood operations on rasters.
Constructor Summary | |
---|---|
RasterNeighborhoodOp()
Constructs a RasterNeighborhoodOp using ArcGIS Engine. |
|
RasterNeighborhoodOp(Object obj)
Deprecated. As of ArcGIS 9.2, replaced by normal Java casts. RasterNeighborhoodOp theRasterNeighborhoodOp = (RasterNeighborhoodOp) obj; |
Method Summary | |
---|---|
IGeoDataset |
blockStatistics(IGeoDataset geoDataset,
int type,
IRasterNeighborhood nbrhood,
boolean ignoreNoData)
Calculates statistics for a non-overlapping neighborhood. |
boolean |
equals(Object o)
Compare this object with another |
IGeoDataset |
filter(IGeoDataset geoDataset,
int type,
boolean ignoreNoData)
Performs a preset focal filter on the input. |
IGeoDataset |
focalFlow(IGeoDataset geoDataset,
Object thresholdValue)
Calculates the flow of the values in the surface within each cells immediate neighborhood. |
IGeoDataset |
focalStatistics(IGeoDataset geoDataset,
int type,
IRasterNeighborhood nbrhood,
boolean ignoreNoData)
Calculates statistics for an overlapping neighborhood. |
void |
getCellSize(int[] envType,
double[] cellSize)
Gets the type and value of cell size in the RasterAnalysis. |
static String |
getClsid()
getClsid. |
String |
getDefaultOutputRasterPrefix()
The default output raster prefix. |
String |
getDefaultOutputVectorPrefix()
The default output vector prefix. |
void |
getExtent(int[] envType,
IEnvelope[] extent)
Gets the type and values of extent in the RasterAnalysis. |
IGeoDataset |
getMask()
Mask allows processing to occur only for a selected set of cells. |
ISpatialReference |
getOutSpatialReference()
The output spatial reference of GeoAnalysis. |
IWorkspace |
getOutWorkspace()
The output workspace of GeoAnalysis. |
int |
getVerifyType()
The verify type of the RasterAnalysis. |
int |
hashCode()
the hashcode for this object |
void |
interfaceSupportsErrorInfo(GUID riid)
interfaceSupportsErrorInfo |
IGeoDataset |
lineStatistics(IGeoDataset lineDataset,
int type,
double radius)
Calculates a statistic on the attributes of lines in a circular neighborhood around each output cell. |
IGeoDataset |
pointStatistics(IGeoDataset pointDataset,
int type,
IRasterNeighborhood nbrhood)
Calculates a statistic on the points in a neighborhood around each output cell. |
void |
reset()
Remove all previously stored default rasteranalysis environments. |
void |
restoreToPreviousDefaultEnvironment()
Restores to the previous default raster analysis environment. |
void |
setAsNewDefaultEnvironment()
Sets the raster analysis environment of the object as new default environment. |
void |
setCellSize(int envType,
Object cellSizeProvider)
Sets the type and value of cell size in the RasterAnalysis. |
void |
setDefaultOutputRasterPrefix(String rasterPrefix)
The default output raster prefix. |
void |
setDefaultOutputVectorPrefix(String vectorPrefix)
The default output vector prefix. |
void |
setExtent(int envType,
Object extentProvider,
Object snapRasterData)
Sets the type and values of extent in the RasterAnalysis. |
void |
setMaskByRef(IGeoDataset mask)
Mask allows processing to occur only for a selected set of cells. |
void |
setOutSpatialReferenceByRef(ISpatialReference spatialReference)
The output spatial reference of GeoAnalysis. |
void |
setOutWorkspaceByRef(IWorkspace workspace)
The output workspace of GeoAnalysis. |
void |
setVerifyType(int verifyType)
The verify type of the RasterAnalysis. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef |
---|
getJintegraDispatch, release |
Constructor Detail |
---|
public RasterNeighborhoodOp() throws IOException, UnknownHostException
IOException
- if there are interop problems
UnknownHostException
- if there are interop problemspublic RasterNeighborhoodOp(Object obj) throws IOException
RasterNeighborhoodOp theRasterNeighborhoodOp = (RasterNeighborhoodOp) obj;
obj
to RasterNeighborhoodOp
.
obj
- an object returned from ArcGIS Engine or Server
IOException
- if there are interop problemsMethod Detail |
---|
public static String getClsid()
public boolean equals(Object o)
equals
in class Object
public int hashCode()
hashCode
in class Object
public void setCellSize(int envType, Object cellSizeProvider) throws IOException, AutomationException
envType |
An enumeration type specifying the raster cellsize environment settings for analysis. All subsequent results will be to the value specified. It can be of type esriRasterEnvMaxOf – The largest cell size of all input raster datasets that are specifed in the function. This is the default. This option is not suitable for methods such as IInterpolationOp::IDW, IDensityOp:KernalDensity etc. where features are the only inputs. Use esriRasterEnvValue instead. esriRasterEnvMinOf - Smallest cell size of all input raster datasets. This option is not suitable for methods such as IInterpolationOp::IDW, IDensityOp:KernalDensity etc. where features are the only inputs. Use esriRasterEnvValue instead esriRasterEnvValue - Any user specified value for the cell size. Use this option to specify a particular value for a cell size or for methods such as IInterpolationOp::IDW, IDensityOp:KernalDensity etc. where features are the only input. |
[cellSizeProvider] |
A specified value (double) or RasterDataset that is used to provide the cellsize environment value. |
setCellSize
in interface IRasterAnalysisEnvironment
envType
- A com.esri.arcgis.geoanalyst.esriRasterEnvSettingEnum constant (in)cellSizeProvider
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getCellSize(int[] envType, double[] cellSize) throws IOException, AutomationException
envType |
will return an enumeration type constant specifying the raster cellsize environment settings for analysis. It can be of type esriRasterEnvMaxOf - largest cell size of all input datasets. This is the default. esriRasterEnvMinOf - smallest cell size of all input datasets esriRasterEnvValue - User specified value. |
cellsize |
returns a value that specifying the current environment setting for cellsize |
getCellSize
in interface IRasterAnalysisEnvironment
envType
- A com.esri.arcgis.geoanalyst.esriRasterEnvSettingEnum constant (out: use single element array)cellSize
- The cellSize (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setExtent(int envType, Object extentProvider, Object snapRasterData) throws IOException, AutomationException
envType |
An enumeration type specifying the raster extent environment settings for analysis. All subsequent results will be to this extent. It can be of type esriRasterEnvMinOf – Intersection of Inputs - All input feature extents are intersected and the extent common to all is used as the extent values for the study area. This is the default. esriRasterEnvMaxOf - Union of Inputs - All input feature extents are combined and the outer extent of the union is used. esriRasterEnvValue - Value - User specified values for the Left, Right, Top and Bottom extent (x, y values) of the study area. |
[extentProvider] |
An envelope object supporting IEnvelope interface or RasterDataset that is used to provide the environment values of the analysis extent. |
[snapRasterData] |
A RasterDataset that can be used to snap all output raster datasets to the cell registration of the specified raster. All subsequent results will share the lower-left corner and cell size of the specified raster. |
setExtent
in interface IRasterAnalysisEnvironment
envType
- A com.esri.arcgis.geoanalyst.esriRasterEnvSettingEnum constant (in)extentProvider
- A Variant (in, optional, pass null if not required)snapRasterData
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void getExtent(int[] envType, IEnvelope[] extent) throws IOException, AutomationException
envType |
will return an enumeration constant specifying the raster extent environment settings for analysis. It can be of type, esriRasterEnvMinOf – Intersection of Inputs - All input feature extents are intersected and the extent common to all is used as the extent values for the study area. This is the default. esriRasterEnvMaxOf - Union of Inputs - All input feature extents are combined and the outer extent of the union is used. esriRasterEnvValue - Value - User specified values for the Left, Right, Top and Bottom extent (x, y values) of the study area. |
extent |
An envelope object supporting IEnvelope interface used to describe the values of the analysis extent. |
getExtent
in interface IRasterAnalysisEnvironment
envType
- A com.esri.arcgis.geoanalyst.esriRasterEnvSettingEnum constant (out: use single element array)extent
- A reference to a com.esri.arcgis.geometry.IEnvelope (out: use single element array)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setMaskByRef(IGeoDataset mask) throws IOException, AutomationException
setMaskByRef
in interface IRasterAnalysisEnvironment
mask
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset getMask() throws IOException, AutomationException
The mask can be a reference to a Raster, RasterDataset, RasterBand, or RasterDescriptor object or FeatureClass, FeatureClassDescriptor object.
The mask identifies only those cells within the analysis extent that will be considered when performing an action. Only the identified cells will be processed in subsequent output raster datasets. All other cells are characterized as nodata.
getMask
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setVerifyType(int verifyType) throws IOException, AutomationException
setVerifyType
in interface IRasterAnalysisEnvironment
verifyType
- A com.esri.arcgis.geoanalyst.esriRasterVerifyEnum constant (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public int getVerifyType() throws IOException, AutomationException
The value is an enumeration environment setting that contols the way that an output RasterDatasets are written to file when during analysis. The verify enumeration can be of type
esriRasterEnvVerifyOn - specifies that the user will be prompted to verify the output already exists and it is okay to overwrite it
esriRasterEnvVerifyOff - specifies that output data will be automatically overwritten if already exists. This is the default environment setting.
esriRasterEnvVerifyError - specifies that an error will be produced when the output already exists.
getVerifyType
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getDefaultOutputRasterPrefix() throws IOException, AutomationException
The user specified prefix which is included to all temporary output RasterDatasets during analysis.
getDefaultOutputRasterPrefix
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setDefaultOutputRasterPrefix(String rasterPrefix) throws IOException, AutomationException
setDefaultOutputRasterPrefix
in interface IRasterAnalysisEnvironment
rasterPrefix
- The rasterPrefix (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public String getDefaultOutputVectorPrefix() throws IOException, AutomationException
The user specified prefix which is included to all temporary output Shapefiles during analysis.
getDefaultOutputVectorPrefix
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setDefaultOutputVectorPrefix(String vectorPrefix) throws IOException, AutomationException
setDefaultOutputVectorPrefix
in interface IRasterAnalysisEnvironment
vectorPrefix
- The vectorPrefix (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setAsNewDefaultEnvironment() throws IOException, AutomationException
Will set all current environment settings of the RasterAnalysis object as the new default environment. All subsequent analysis will use the set object properties unless otherwise specified.
setAsNewDefaultEnvironment
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void restoreToPreviousDefaultEnvironment() throws IOException, AutomationException
This will restore the default environment to the settings of the "previous" RasterAnalysisEnvironment object used to set the default environement. Note: If multiple default environments have been set it will reference the past settings one at a time in order of sequence.
restoreToPreviousDefaultEnvironment
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void reset() throws IOException, AutomationException
This method can be used to restore the system default raster environment settings for extent, cell size, precision, spatial reference and/or current workspace for analysis. This will change all previously altered environment settings made to the RasterAnlaysis object back to the original settings.
reset
in interface IRasterAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setOutWorkspaceByRef(IWorkspace workspace) throws IOException, AutomationException
setOutWorkspaceByRef
in interface IGeoAnalysisEnvironment
workspace
- A reference to a com.esri.arcgis.geodatabase.IWorkspace (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IWorkspace getOutWorkspace() throws IOException, AutomationException
The variable is an object specifying the directory or subdirectory to contain the output rasterdataset
getOutWorkspace
in interface IGeoAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void setOutSpatialReferenceByRef(ISpatialReference spatialReference) throws IOException, AutomationException
setOutSpatialReferenceByRef
in interface IGeoAnalysisEnvironment
spatialReference
- A reference to a com.esri.arcgis.geometry.ISpatialReference (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public ISpatialReference getOutSpatialReference() throws IOException, AutomationException
The variable references an object that specifies the output features spatial reference. If not explicitly set the spatial reference of the input features will be used.
getOutSpatialReference
in interface IGeoAnalysisEnvironment
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset blockStatistics(IGeoDataset geoDataset, int type, IRasterNeighborhood nbrhood, boolean ignoreNoData) throws IOException, AutomationException
geoDataset | an input integer or floating-point
Raster, RasterDataset, RasterBand, or RasterDescriptor that
identifies the values of the cells in a specified neighborhood
If no neighborhood is specified, the default neighborhood is a 3-x 3-rectangle. |
type | an esriGeoAnalysisStatisticsEnum
defining the block statitistic to calculate within each block
The enumeration types are: esriGeoAnalysisStatsMajority for the majority value, esriGeoAnalysisStatsMaximum for the maximum value, esriGeoAnalysisStatsMean for the mean, esriGeoAnalysisStatsMedian for the median, esriGeoAnalysisStatsMinimum for the minimum value, esriGeoAnalysisStatsMinority for the minority value, esriGeoAnalysisStatsRange for the range of values, esriGeoAnalysisStatsStd for the standard deviation, esriGeoAnalysisStatsSum for the sum of the values, or esriGeoAnalysisStatsVariety for the variety of the values. |
nbrhood | an IRasterNeighborhood defining the
configuration of the blocks within which the block statistics will
be calculated
INeighborhood::BlockStatistics supports any neighborhood supported by IRasterNeighborhood. They include a rectangle, circle, annulus, wedge, and an irregular shaped neighborhood. The block will be defined by the minimum-bounding rectangle of the specified neighborhood. The minimum-bounding rectangle will include more cells then the specified neighborhood in certain cases such as with a circle, annulus, and wedge. |
ignoreNoData | a Boolean defining the manner in which
NoData values within a neighborhood will influence the output
results
If True, then if a NoData value exists within a neighborhood, then the NoData value will be ignored. Only cells within the neighborhood that have data values will be used in determining the statistics of the values. If False, then if any cell in a neighborhood has a value of NoData, then the output for each cell in the corresponding block will receive NoData. When the Boolean is False, the presence of a NoData value implies that there is insufficient information to determine the statistics of the values of the neighborhood. |
blockStatistics
in interface INeighborhoodOp
geoDataset
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)type
- A com.esri.arcgis.geoanalyst.esriGeoAnalysisStatisticsEnum constant (in)nbrhood
- A reference to a com.esri.arcgis.geoanalyst.IRasterNeighborhood (in)ignoreNoData
- The ignoreNoData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset filter(IGeoDataset geoDataset, int type, boolean ignoreNoData) throws IOException, AutomationException
geoDataset |
the input Raster, RasterDataset, RasterBand, or RasterDescriptor |
Type |
the esriGeoAnalysisFilterEnum constant whose value represents the filter type to perform. It can be of type esriGeoAnalysisFilter3x3LowPass - Traverses a low-pass filter over the raster. This option smoothes the entire input and reduces the significance of anomalous cells. This is the default option. estiGeoAnalysisFilter3x3HighPass - Traverses a high-pass filter over the raster. This option enhances the edges of subdued features in a raster. |
ignoreNoDatat |
a Boolean specifying where NODATA values are ignored by the filter calculation If TRUE, when a NoData value exists within the filter, then the NoData value will be ignored. Only cells within the filter that have data values will be used in determining the output. If FALSE, when a NoData value exists within the filter, then the output for the processing cell will be NoData. |
filter
in interface INeighborhoodOp
geoDataset
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)type
- A com.esri.arcgis.geoanalyst.esriGeoAnalysisFilterEnum constant (in)ignoreNoData
- The ignoreNoData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset focalStatistics(IGeoDataset geoDataset, int type, IRasterNeighborhood nbrhood, boolean ignoreNoData) throws IOException, AutomationException
geoDataset | an input Raster, RasterDataset, RasterBand, or RasterDescriptor that identifies the values of the focal or processing cell and the values of the cells in its specified neighborhood |
type | an esriGeoAnalysisStatisticsEnum
defining the focal statistic to calculate within each neighborhood
The enumeration types are:
|
nbrhood | an RasterNeighborhood defining the
configuration of the neighborhoods within which the focal
statistics will be calculated
INeighborhoodOp::FocalStatistics supports any neighborhood supported by IRasterNeighborhood. They include a rectangle, circle, annulus, wedge, and an irregular shaped neighborhood. The neighborhood will be defined by the minimum-bounding rectangle of the specified neighborhood. The minimum-bounding rectangle will include more cells than the specified neighborhood in certain cases such as with a circle, annulus, and wedge. |
ignoreNoData | a Boolean defining the manner in which
NoData values within a neighborhood will influence the output
results
If True, then if a NoData value exists within the neighborhood of the processing cell, then the NoData value will be ignored. Only cells within the neighborhood that have data values will be used in determining the statistic. If False, then if any cell in a neighborhood has a value of NoData, then the output for the processing cell of the neighborhood will be NoData. When False, the presence of a NoData value implies that there is insufficient information to determine the statistic of the values of the neighborhood. |
focalStatistics
in interface INeighborhoodOp
geoDataset
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)type
- A com.esri.arcgis.geoanalyst.esriGeoAnalysisStatisticsEnum constant (in)nbrhood
- A reference to a com.esri.arcgis.geoanalyst.IRasterNeighborhood (in)ignoreNoData
- The ignoreNoData (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset focalFlow(IGeoDataset geoDataset, Object thresholdValue) throws IOException, AutomationException
geoDataset |
an input integer or floating-point grid that identifies the values of the focal or processing cell and the values of the cells in its specified neighborhood INeighborhood::FocalFlow evaluates the eight immediate neighbors of a cell to determine flow. |
[thresholdValue] |
defines a value that constitutes the threshold, which must be equalled or exceeded before flow can occur If the difference between the value at a neighboring cell location and the value of the processing cell is less than or equal to the threshold value, the output will be ‘0’ (or no flow). The data type for thresholdValue can be either integer or floating point. |
focalFlow
in interface INeighborhoodOp
geoDataset
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)thresholdValue
- A Variant (in, optional, pass null if not required)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset pointStatistics(IGeoDataset pointDataset, int type, IRasterNeighborhood nbrhood) throws IOException, AutomationException
pointDataset |
input FeatureClass or FeatureClassDescriptor containing point features |
type |
an esriGeoAnalysisStatisticsEnum to determine which statistic will be calculated on the values of points in the neighborhood of each output Raster cell The enumeration types are: esriGeoAnalysisStatsMajority for the majority value, esriGeoAnalysisStatsMaximum for the maximum value, esriGeoAnalysisStatsMean for the mean, esriGeoAnalysisStatsMedian for the median, esriGeoAnalysisStatsMinimum for the minimum value, esriGeoAnalysisStatsMinority for the minority value, esriGeoAnalysisStatsRange for the range of values, esriGeoAnalysisStatsStd for the standard deviation, esriGeoAnalysisStatsSum for the sum of the values, or esriGeoAnalysisStatsVariety for the variety of the values. |
nbrhood |
an IRasterNeighborhood defining the configuration of the neighborhoods within which the point statistics will be calculated INeighborhood::PointStatistics supports any neighborhood supported by IRasterNeighborhood. They include a rectangle, circle, annulus, wedge, and an irregular shaped neighborhood. The neighborhood will be defined by the minimum-bounding rectangle of the specified neighborhood. The minimum-bounding rectangle will include more cells then the specified neighborhood in certain cases such as with a circle, annulus, and wedge. |
pointStatistics
in interface INeighborhoodOp
pointDataset
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)type
- A com.esri.arcgis.geoanalyst.esriGeoAnalysisStatisticsEnum constant (in)nbrhood
- A reference to a com.esri.arcgis.geoanalyst.IRasterNeighborhood (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public IGeoDataset lineStatistics(IGeoDataset lineDataset, int type, double radius) throws IOException, AutomationException
lineDataset |
input FeatureClass or FeatureClassDescriptor containing line features |
type |
an esriGeoAnalysisStatisticsEnum indicating which statistic will be calculated for all lines in the neighborhood Enumeration types are: esriGeoAnalysisStatsMajority for the majority value, esriGeoAnalysisStatsMaximum for the maximum value, esriGeoAnalysisStatsMean for the mean, esriGeoAnalysisStatsMedian for the median, esriGeoAnalysisStatsMinimum for the minimum value, esriGeoAnalysisStatsMinority for the minority value, esriGeoAnalysisStatsRange for the range of values, esriGeoAnalysisStatsStd for the standard deviation, esriGeoAnalysisStatsSum for the sum of the values, or esriGeoAnalysisStatsVariety for the variety of the values. |
radius |
the radius of the circular neighborhood around each output grid cell, expressed in map units A commonly used radius is 5 times the output cell size. |
lineStatistics
in interface INeighborhoodOp
lineDataset
- A reference to a com.esri.arcgis.geodatabase.IGeoDataset (in)type
- A com.esri.arcgis.geoanalyst.esriGeoAnalysisStatisticsEnum constant (in)radius
- The radius (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.public void interfaceSupportsErrorInfo(GUID riid) throws IOException, AutomationException
Indicates whether the interface supports IErrorInfo.
interfaceSupportsErrorInfo
in interface ISupportErrorInfo
riid
- A Structure: com.esri.arcgis.support.ms.stdole.GUID (in)
IOException
- If there are interop problems.
AutomationException
- If the ArcObject component throws an exception.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |