Table of Contents

Map Type

A Map represents a grid of cells — with a fixed number of lines and columns — associated with a map projection, datum, and registration coordinates that anchor the grid in real-world space, along with a cell size defining the grid resolution. A Map can optionally define a null value, and can optionally hold more than one named layer, each layer being its own independent raster sharing the same dimensions and geographic format (see Create Cube Map and Extract Map Layer).

There are two basic kinds of maps:

Categorical Maps

Maps whose cells represent classes or categories — vegetation type, soil type, sub-regions, and similar. A map becomes a Categorical Map when a Categorization is attached to it, associating its integer cell values with category names and colors.

Categorical map example: a map depicting land use

Non-Categorical Maps

Maps whose cells represent values — temperature, probabilities, distances, and similar. A Non-Categorical Map carries no Categorization.

Non-categorical map example: a map depicting probabilities

GUI Editor

Input ports of type Map are non-editable, so a map cannot be defined using an editor in the graphical interface. A Map value must always come from connecting an output produced by another functor — a loader such as Load Map, or a calculator such as Calculate Map — supplied by wiring that output to the input.

EGO Script

For the same reason, input ports of type Map cannot receive a constant in EGO Script — see Constants. A Map is always obtained by calling a functor that produces one, and reused by referencing the variable bound to its output:

// Loads a map, computes its slope, and saves the result.
elevation := LoadMap "c:/data/elevation.tif";
slope := CalcSlopeMap elevation;
SaveMap slope "c:/data/slope.tif";

The generic Map carrier functor exists purely to pass a Map connection through — for example, as a placeholder while wiring a model — but its own input is likewise non-editable; it must itself be connected to another functor's Map output.

Storage

How a map's cells are actually kept — fully in memory, as a sparse mapping of only non-null cells, or paged from disk on demand — is a storage detail separate from the map's content, and never changes the map's values. Depending on the functor producing the map, this can be controlled explicitly or left for the runtime to decide:

Automatic Conversions

See Type System for the complete conversion reference across all types, including which conversions are subtyping versus registered converters.