Why H3 --- Use cases --- Analysis of data sets of locations, such as locations of cars in a city, may be done by bucketing locations. ([Sahr et al., 2003](http://webpages.sou.edu/~sahrk/sqspc/pubs/gdggs03.pdf)) There are several options for partitioning an area into buckets, such as manually drawing regions using human knowledge, or to partition the surface using a regular grid. Manually drawn partitions can better incorporate human knowledge, but have a number of drawbacks, such as: * The center of a partition may not represent the center of the data points. * Edges of partitions may exhibit undesirable boundary effects. * Manually defined partitions may require updating if our understanding of the system changes. * Manually defining a large number of partitions may be very costly and time consuming. Using a regular grid can avoid these drawbacks by providing smooth gradients and the ability to measure differences between cells. One defining characteristic of a grid system is the cell shape. There are only three polygons that tile regularly: the triangle, the square, and the hexagon. Of these, triangles and squares have neighbors with different distances. Triangles have three different distances, and squares have two different distances. For hexagons, all neighbors are equidistant. This property allows for simpler analysis of movement. | Triangle | Square | Hexagon | -------- | ------ | ------- | | | | Triangles have 12 neighbors | Squares have 8 neighbors | Hexagons have 6 neighbors In addition to indexing locations to cells, **H3** provides a number of algorithms operating on indexes. Hexagons have the property of expanding rings of neighbors (`kRing`) approximating circles: