Understanding Ingrid

Ingrid's power comes from being able to directly manipulate two complex objects: variables ("streams") and datasets.

variable - gridded data and ancillary information
dataset - a collection of variables and datasets with ancillary information.
Example: Levitus

Most operations are implemented as filters which take a number of variables as input and return variables as output. For example, the full monthly Levitus Temperature is converted to Winter monthly Levitus Temperature by applying the filter 'T Jan Mar RANGE' (notice that the time grid T has changed).

Because the user is directly specifying what is wanted (i.e. the filtered stream), rather than creating a list of instructions to be executed, there is tremendous potential for optimally calculating the desired result. In particular, a great number of calculations can be described, but if the results are not used, it is not necessary to calculate them. Ingrid's current compute engine does not take full advantage of this potential.