Home / Insights / When to automate

Automation

When to automate a GIS workflow — and when not to

Automation is not a virtue in itself. It is an investment, and like any investment it can be made at the wrong time, in the wrong thing.

Every GIS team has both failure modes. One clicks through the same forty-step routine every month for three years. The other spends two weeks building a general-purpose tool for a job that ran once and will never run again.

Three questions separate them.

A grid of eighteen small maps produced automatically in one run
Eighteen sub-basin map sheets from a single script run. The argument for automating this is not the hours saved — it is that all eighteen were produced with identical parameters.

Question 1 — How many times will this actually run?

The naive calculation is time to script versus time saved per run × number of runs. It is a reasonable starting point and it systematically undercounts, because it ignores the runs you do not plan: the rerun after the client sends corrected data, the rerun after a projection error is found, the rerun for the second study area, the rerun eighteen months later when the report is updated.

In practice, anything that will run more than three or four times — including reruns — is usually worth scripting, even when the first estimate says otherwise. Anything genuinely single-use, on a dataset that will not change, usually is not.

Question 2 — Does the result need to be reproducible?

This one overrides the arithmetic. If the output will support a published paper, a regulatory submission, a funding decision or a contested planning process, the workflow needs to be repeatable by someone else, months later, from the inputs alone.

A script is documentation that cannot drift from what was actually done. A written method statement describes what someone believes they did. When a reviewer asks why the value in table 4 differs from the value in figure 7, only one of those two answers the question.

Automate for reproducibility even when it costs more time than it saves. The payback is not efficiency; it is the ability to defend and repeat the result.

Question 3 — How badly does a silent error hurt?

Manual geoprocessing fails quietly. A layer clipped to the wrong extent, one sub-basin processed with last week's parameters, a field calculated before a join finished — none of these throw an error. They produce a plausible map that is wrong.

Where a step is repeated across many features, and where an inconsistency between them would not be visually obvious, scripting is worth it almost regardless of the time saved. The script does not merely go faster; it does the same thing every time, and it can assert that it did — checking counts, extents, projections and null values as it goes.

When not to automate

  • Genuinely one-off exploratory work. When you do not yet know what the analysis should be, clicking is faster thinking.
  • Tasks requiring judgement at every step. Interpretive digitising, cartographic label placement, and deciding whether an odd polygon is real or an artefact do not automate well. Automate the preparation around them instead.
  • Where the input format is unstable. If every delivery arrives with different column names and no schema, the script becomes a maintenance burden. Fix the intake first.
  • When nobody will maintain it. An undocumented script that only its author can run is a liability disguised as an asset.

Automate in layers, not in one leap

There is a middle ground between clicking and building a full application:

  1. Batch parameters. Many desktop tools accept multiple inputs at once. Free, immediate, no code.
  2. Visual models. ModelBuilder or the QGIS graphical modeller capture a chain and expose it as a reusable tool. Good for stable, moderate-complexity chains, and readable by colleagues who do not write code.
  3. Scripts. Python with ArcPy, PyQGIS or the open geospatial stack, driven by a parameter file rather than hard-coded paths. This is where conditional logic, error handling and QA checks become possible.
  4. Tools and pipelines. A packaged geoprocessing tool with a user interface, or a scheduled pipeline, when other people need to run it without reading the code.

Most projects should stop at level 3. Level 4 is justified when the audience for the workflow is wider than the person who wrote it.

The goal is not a fully automated GIS department. It is that no one spends their judgement on work that does not need it.

What a maintainable script looks like

  • Paths, thresholds and parameters at the top or in a config file — never buried in the middle.
  • Every intermediate written to a predictable location with a predictable name.
  • Explicit checks: does the projection match, is the feature count what was expected, are there nulls where there should not be.
  • A log file recording inputs, parameters, timestamps and outputs for each run.
  • A short README describing what it does, what it needs, and how to run it.

That last item is what determines whether the automation survives the person who wrote it — which is, in the end, the whole point.

Have a routine that keeps eating your week? GISPromo builds documented, re-runnable geoprocessing tools in Python, ArcPy and PyQGIS — and hands them over so your team can maintain them. Describe the workflow.

All insights