The *Circular Hierarchy* algorithm produces a circular visualizat=
ion of the output produced by a multi-level aggregation method. It is used =
to visualize the community detection done by the aggregation algorithm.

The algorithm aims to create a circular visualization when provided with= hierarchy information for each node. Different communities information can= also be provided using the levels. The algorithm is as follows,

=20- =20
- Collect information about the nodes including their ids, labels, streng= ths & color values. =20
- Then strengths of the nodes are normalized. =20
- Edge information is collected next. =20
- Hierarchy information is collected from the appropriate columns in the = nwb file. Appropriate mapping of Node ID to Level ID are collected. =20
- After this angles for each node are calculated using the nodes & le= vel information. =20
- The calculated angles are then converted into Cartesian system. =20
- These node positions are then reconfigured/normalized based on the radi= us of the proposed circular visualization. =20
- Next level angles are computed followed by its position. =20
- Next computations are performed on edges. After normalizing the edge we= ights, the edge control points are computed. To do this, the ancestor hiera= rchy is computed & then normalized. =20
- Afterwards the edges are sorted so that in-community edges are drawn fi= rst. =20
- Next edges are sorted from thickest to thinnest & then drawn in tha= t order. =20
- Next dividers - separating different communities are calculated for the= ir angles, position. =20
- Color values in the form of RGB are computed for each node. If no color= information is provided then the default color of Grey (203, 203, 203) is = assumed. =20

All this data is then output into a ps file in appropriate format.

= =20The algorithm requires a file storing the information about the network.= This file should have information about at least one hierarchy level. This= contains the information about community to which a particular node belong= s to. The hierarchy can have at most 4 levels. The ordering of these hierar= chies is also important and can be specified at the time of input.

=20The other optional information like node color attribute values, node st= rengths, edge weights can also be provided. In its absence the default valu= es of 1.0 are considered for all of these parameters.

=20Hierarchical edge bundling is based on the principle of visually bundlin= g adjacency edges together analogous to the way electrical wires and networ= k cables are merged into bundles along their joint paths and fanned out aga= in at the end, in order to make an otherwise tangled web of wires and cable= s more manageable. This value can also be provided. It must be between 0.0 = and 1.0. It's default value is 0.75.

=20Once these parameters are provided the system performs the computations = and a PostScript (.ps) file is generated.

=20- =20
- Source Code: Link =20

The original Round Russell algorithm was authored and later implemented = in Python by Russell Duhon. This circular visualization algorithm was then = implemented in Java, integrated and documented by Chintan Tank. Also thanks= to Russell Duhon for providing the original python source code and helping= throughout the implementation. Many thanks to Micah Linnemeier as well for= providing guidance during implementation.

=20- =20
- Holten, Danny. Hierarchical Edge Bundles: Visualization of Adjacency Re= lations in Hierarchical Data. Link =20