```{index} single: Filters; Compute Average C-Axis Orientations
```
# Compute Average C-Axis Orientations

## Group (Subgroup)

Statistics (Crystallographic)

## Description

This **Filter** determines the average C-axis location of each **Feature** by the following algorithm:

1. Gather all **Elements** that belong to the **Feature**
2. Determine the location of the c-axis in the sample *reference frame* for the rotated quaternions for all **Elements**. This is achieved by converting the input quaternion to
an orientation matrix (which represents a passive transform matrix), taking the transpose of the matrix to convert it from passive to active, and then multiplying the
transposed matrix by the crystallographic C-Axis direction vector <001>.
3. Average the locations and store the average for the **Feature**

*Note:* This **Filter** will only work properly for *Hexagonal* materials.  The **Filter** does not apply any symmetry 
operators because there is only one c-axis (<001>) in *Hexagonal* materials and thus all symmetry operators will leave 
the c-axis in the same position in the sample *reference frame*.  However, in *Cubic* materials, for example, the {100} 
family of directions are all equivalent and the <001> direction will change location in the sample *reference frame* when 
symmetry operators are applied.

This filter will error out if **ALL** phases are non-hexagonal. Any non-hexagonal phases will have their computed values set to NaN value.

The output is a direction vector for each feature.


### Input Cell Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Cell Quaternions | Array Selection | Allowed Types: float32 Comp. Shape: 4 | Input quaternion array |
| Cell Feature Ids | Array Selection | Allowed Types: int32 Comp. Shape: 1 | Data Array that specifies to which Feature each Element belongs |
| Cell Phases | Array Selection | Allowed Types: int32 Comp. Shape: 1 | Specifies to which Ensemble each Cell belongs |

### Input Feature Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Feature Attribute Matrix | AttributeMatrixSelection |  | The path to the cell feature attribute matrix |

### Input Ensemble Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Crystal Structures | Array Selection | Allowed Types: uint32 Comp. Shape: 1 | Enumeration representing the crystal structure for each Ensemble |

### Output Feature Data

| Parameter Name | Parameter Type | Parameter Notes | Description |
|----------------|----------------|-----------------|-------------|
| Average C-Axes | DataObjectName |  | The output average C-Axis values for each feature |

## Example Pipelines

EBSD_Hexagonal_Data_Analysis

## License & Copyright

Please see the description file distributed with this **Plugin**

## DREAM3D-NX Help

If you need help, need to file a bug report or want to request a new feature, please head over to the [DREAM3DNX-Issues](https://github.com/BlueQuartzSoftware/DREAM3DNX-Issues/discussions) GitHub site where the community of DREAM3D-NX users can help answer your questions.
