The GeoDMS calculates with data items. A data item is implemented as a memory array of elements, for technical reasons these arrays can be tiled or segmented.

A data item represents a mapping between a domain set and a value set. These sets are represented in the GeoDMS by unit items and for each configured data item, the domain unit (attributes only) and values unit need to be configured explicitly. These units are used to check consistenties in calculation specifications. Unit consistency checks are an important feature of the GeoDMS to improve the quality of models, as modelling errors are often related with incorrect use of units and related conversion factors. See also http://en.wikipedia.org/wiki/Units_conversion_by_factor-label.

Units for data items need to be configured explicitly, allowing the GeoDMS to check for inconsistencies in calculations.

For each operator/function is defined if data of different units can be combined in a meaningfull way. The plus operator can e.g. not meaningfully combine values expressed in meters with values expressed in seconds. These values can however be meaningfully combined with the divide operator, resulting in a velocity attribute with values expressed in meter per second. More information on this topic can be found in the article dimensional analysis.

Each unit is configured with the key word: unit. The value type is indicated between the less than (<) and greater than (>) characters, followed by the name of the unit.


A GeoDMS unit can have two roles: as domain and as values unit. This is similar to links forming a network by having an origin node and a destination node.

The Domain unit specifies the source of the mapping (entity) represented by a data item. The domain unit must be countable with a defined range (i.e. integer or a 2D rectangular integer rasterpointset or Void). 

The Values unit indicates in which value type and metric the values of a data items are expressed. 2D values (points, lines, polygons) can be a Projection, i.e. two affine translation of a basic Coordiante System.

Element Types

Elements can be 1D, 2D, a single value or a sequence of values, unsigned or signed integer or float, or text-string (implemented as a sequence of characters). Each element has a value type that detemines how its value(s) is/are represented in memory and which determines its minimum and maximim value and its grannularity. Operators and functions are implemented to operate on data items of (combinations of) value types. Usually, different combinations are delt with by different instantiations of an operator/function, to avoid time on processing value type conversion or larger than required memory-footprints. With conversion functions, data items can be converted to other values units and value types.

Vrije Universiteit
De Boelelaan 1085
1081 HV Amsterdam
The Netherlands

tel: +31 (0)20 598 9083
fax:+31 (0)20 598 9904