This is an old revision of the document!
Dinamica EGO Reference
This wiki documents Dinamica EGO's scripting language, execution model, and the functors most commonly needed when building a model — organized here by topic rather than alphabetically, so each section can be read in order as an introduction to that part of the system.
Language
- EGO Script Language — the primary text notation for writing a model: functor calls, constants, containers, the calculator shorthand family, properties, and submodels. Start here for the language itself.
- EGOML Script — the equivalent XML notation, generated by the GUI or written by hand, and its DTD.
- Submodels — packaging part of a model as a reusable functor with its own declared inputs and outputs, so it can be called from other models the same way a built-in functor is: local, user, store, and system submodels, expansion before execution, and the GUI workflow for creating, updating, and publishing them.
Execution Model
- Basic Data Flow — the execution model underneath both notations: how connections and containers determine execution order, independent of whether the model was written as EGO Script, EGOML, or built visually.
- Image Virtualization — how Dinamica reconciles maps of different extents, resolutions, or rotations at runtime: every map handed to a functor is wrapped in a virtual version at a shared resolution and extent first, so functors never see mismatched inputs; requirements (shared projection), the Not Allowed / Limited / Unrestricted control under “Tools ⇒ Options | Advanced | Virtualization”, and the functors that opt out of it entirely.
Type System
- Type System — the registry tying every type in the engine together: which conversions run automatically when a value is connected from one port to another, which relationships are subtyping instead, and which conversions can fail or lose information.
- Individual type pages, grouped the way the Type System page itself groups them (Table Type and Lookup Table Type are listed above rather than repeated here):
- Filename and text types: Folder Type, Generic Filename Type, Kmz Filename Type, Lookup Table Filename Type, Map Filename Type, Projection Type, Table Filename Type, Weights Filename Type
- Table and Lookup Table types: Base Table Type, Int Set Type, Lookup Table Group Type, Table Cell Type, Table Value Type, Tuple Type
- Calibration types: Weights Of Evidence Skeleton Type
- Region types: Region Manager Type
- Other types (no automatic conversions documented on the Type System page besides the standard sequencing conversion to None Type): Connection Info Type, Image Expression Type, Kml Type, Kml Timeline Type, Struct Type, Table Manager Type, Workdir Type
Calculator Functors
- Calculate Functors — Complete Operator Documentation — the full expression language available inside a calculator functor: operators, functions, and the shorthand family (
#,##,$,%,%%). - Calculate R Expression — embedding R code in a model, including how tables, maps, and values convert between Dinamica and R.
- Calculate Python Expression — embedding Python code in a model, including how tables, maps, and values convert between Dinamica and Python.
Tables and Lookup Tables
- Table Type — the general table format: key and value columns, naming, and type inference.
- Lookup Table Type — the single-key, single-value specialization of Table Type, and its own literal syntax and conversions.
- Manipulating Tables and Lookup Tables — functors and techniques for reading, iterating, restructuring, and computing statistics from tables and lookup tables, from a table with a known shape through to tables with an arbitrary number of columns or keys.
Regions
- Working with Subregions Using Region Manager — when and why to split a model's computation by region; defining regions from a categorical map with Region Manager; reading region metadata; visiting one region or looping over all of them; splitting a global map into regional pieces and merging them back; and the two supporting patterns — per-region functor parameters and per-region accumulation — a region-based model typically needs.
Command-Line Execution
- Dinamica Console — running a model script from the command line instead of the GUI: execution flags, worker and memory control, logging, accelerators, metadata, and converting a script to another format without running it.
Practical Guidance
- Useful Tips for Creating Models — practical tips that don't fit neatly under a single functor or language feature.
- Useful Tips for Using the Graphical Interface — practical tips for working with the graphical interface itself: panels, editors, model execution, and the issue panel.