Skip to content
Jip Claassens edited this page Jul 6, 2026 · 57 revisions

GeoDMS is an open-source platform for building large, fast and transparent spatial models. It combines a declarative modelling language, a high-performance calculation engine and an interactive map-and-table viewer, and it has been the engine behind national and European policy models since the late 1990s.

image

Why GeoDMS?

A GeoDMS model is not a script that you run. It is a specification of results: every map, table and indicator is declared as an expression over source data and other results, and the engine determines how, when and in what order to calculate. That one design choice is what makes GeoDMS models fast, reproducible and auditable:

  • Built for scale: GeoDMS calculates interactively with country- to continent-sized grids, such as the Netherlands at 10 meter or Europe at 100 meter resolution (hundreds of millions of cells), on an ordinary Windows machine. Automatic tiling processes grids segment by segment, so models work with far more data than fits in memory.
  • Calculate only what is needed: all results form a dependency tree that the engine evaluates lazily. Only the items you actually request are calculated, and within a session nothing is computed twice. Stable intermediates can be decoupled to disk, declared in the configuration itself, so iterating on the part of the model you are working on takes minutes, not hours.
  • Transparent to the core: every result can be traced in the GUI through its expression down to the source data. Configurations are plain text files that can be versioned, diffed and reviewed in git. No black boxes, no undocumented run orders.
  • Fewer silent errors: data items carry units with a metric, and the engine checks their consistency: meters cannot be added to seconds, and euros per m2 multiplied by m2 yields euros. Whole classes of mistakes that pass silently in a script fail at configuration time in GeoDMS.
  • See everything, instantly: any intermediate result can be shown as a map or table with one click, without writing export or plotting code. Reviewing a model means browsing it.
  • Scenarios side by side: model variants are configured as substitutions on a shared tree, so alternatives can be calculated and compared while everything they have in common is computed only once.

The page Why GeoDMS makes this case in more detail.

Coming from Python?

Most modellers who consider GeoDMS already know Python, and the real question is not which language is finer but where the model itself should live. Our advice, after 25 years of national-scale models: build the model in GeoDMS and use Python around it, not the other way around. The model core is where correctness, speed and traceability are earned, and that is exactly what the engine provides: units checked, dependencies managed, every result inspectable. An external script in the middle of a calculation chain is a black box to the engine; it breaks the dependency tree and the audit trail for everything downstream (see Expression). At the edges, Python shines: estimating parameters, machine learning, figures and reports. GeoDMS through Python describes three supported ways to connect the two, from driving the engine out of Python to embedding it via the Python bindings. And the language barrier is lower than it looks: for pandas users the concepts map one to one, see the translation table.

Getting started

  1. Download the latest release and follow the Installation Instructions.
  2. Learn hands-on with the tutorials of the GeoDMS Academy.
  3. Explore the Configuration examples and the User Guide.
  4. Go deeper with How To Model and the reference of operators and functions.

Applications

The GeoDMS is a software framework for (spatial) modelling, used for:

Tools to process the BAG (the Dutch register of buildings and addresses) can be downloaded and are documented in the BAG-Tools wiki.

Users

The GeoDMS is extensively used in policy applications; some major users/applications are:

Clone this wiki locally