Aggregate

An aggregate is a collection of geometries of any type that is treated as a single unit. Aggregates may or may not be homogenous and/or hierarchical.

Hierarchical Geometries

A hierarchical geometry is a collection of geometries that may, in turn, contain other collections (aggregates or multis) to an arbitrary depth. A typical case of a hierarchical geometry is an aggregate that contains aggregates. This nested behavior allows for the representation of hierarchical relationships between geometries.

For example, a hierarchical aggregate named House may contain other aggregates named Roof and Walls, where Walls is an aggregate that contains four faces. Properties associated with the house as a whole may be stored as traits at the top level, but properties that only pertain to a sub-group, such as shingle type, may be stored as traits on aggregate Roof.

Optionally, aggregates may possess a transformation matrix. Aggregates may also have front or back appearances, and may be single or double sided.

Homogeneous Aggregates

A homogeneous aggregate is made up of features of the same fme_type.

Note  

Aggregates that contain other collections (aggregates or multis) do not preclude them from being homogeneous. Only the "leaf" nodes of an aggregate must share the same type.

For example, a collection of only surface geometries within an aggregate would be considered a homogeneous aggregate (fme_type = fme_surface).

Some types of homogeneous aggregates may also be represented as multi geometries. For example, a collection of only Points could equally be represented as a MultiPoint Geometry.

Homogeneous Aggregate Attributes

  • fme_geometry = fme_aggregate
  • fme_type = <type of contained geometries>

Non-Homogeneous Aggregates

A non-homogeneous aggregate is made up of features of differing geometry types.

For example, a collection of point, line, and polygon geometries within an aggregate would be considered a non-homogeneous aggregate, (fme_type = fme_collection).

Non-Homogeneous Aggregate Attributes

  • fme_geometry = fme_aggregate
  • fme_type = fme_collection