Skip to content

FME and Multi-Criteria Analysis at Skogskyrkogården

FME's Custom Transformers and looping are used to generate what-if scenarios and design tree planting plans for the preservation of the Skogskyrkogården cemetery in Stockholm, a UNESCO World Heritage Site.

We often picture cemeteries as pastoral scenes with tree-lined avenues, manicured expanses of grass, and tidy rows of markers – and the maintenance of them largely involving a great deal of lawn mowing. But back in 1914, the Stockholm City Council in Sweden decided to do something different, and launched an international architecture competition that led to the creation of Skogskyrkogården – The Woodland Cemetery.

treesThe difference was this: the design was to retain the essentially untouched Nordic forest and landscape as the dominant experience, blending nature and architecture into a seamless whole – a radical departure for the time. The result had a profound effect on cemetery design worldwide, as recognized by its inclusion in 1994 on UNESCO’s World Heritage List of sites. Which is where FME enters the picture.

Being a World Heritage site, Skogskyrkogården must be preserved in a condition as true to the original as possible. With an aging, predominantly pine forest, this meant the planting of around 3,000 trees in 2012 over the 102-hectare grounds. Preservation even extends to the genetic lineage of the replacement trees – they are grown from pinecones from the forest itself.  Positioning the new plantings involves a series of decisions based on weighted variables – a process that Certified FME Professional Anton Sandstrom of Sweco decided to tackle with FME.

Source Data & Criteria

The tree care plan shows desired tree density for each block.

Anton started with a selection of standard (and not-so-standard) data formats. The tree care plan, shown here, was digitized from a hand-colored original into SHP format, and contains polygons attributed with the desired tree density for each block within the cemetery. Ranging from less than 200 trees per hectare to more than 260 per hectare, this provides the targets for the analysis.

Both a detailed cemetery map and tree database are kept in Oracle, and the last piece is the burial registry, which required a bit more work to read. It was stored in an unusual database format, and so, with some ODBC connectivity, Anton built a web service to bring the data into the workspace as JSON.

With the source data in place, the next step is to handle the conditions – the rules, as it were – for where planting can and cannot be done, and what preference is given to certain locations. By handling the variables as parameters, they can be adjusted on each run of the workspace for  “what-if” scenarios. The criteria are:

  • variablesDesired tree density
  • Minimum distance from existing trees
  • Minimum distance from unused burial plots
  • Minimum distance from occupied burial plots
  • Minimum distance from roads
  • Minimum distance from newly planted trees
  • Position of removed trees (preferred location)

Prepping the Data

Using the 2DGridAccumulator, a grid is generated with cell sizes determined by the user-defined parameter. Non-negotiable no-planting areas such as occupied plots are clipped out, as well as buffered zones (again calculated from parameters) around features including existing trees and roads.


The remaining cells are candidates for planting locations. Each cell is evaluated by multiplying criteria values to calculate a weighting – high, medium, and low – for the site’s preferability. Sites of removed trees have the highest ranking, in line with preserving the original state of the site.Process2

Selecting Sites – Looping a Custom Transformer

Now that the possibilities are ready, tree placing commences by selecting the highest-weighted location first. In a case where multiple choices exist with the same weighting, random numbers are used to disperse the choices. A tree is placed at the chosen location, and then treated as an existing tree – it is buffered, and that zone clipped from the available planting sites grid.

After a tree is placed, the workspace checks to see if the desired tree density for the area has been reached. If it has, it proceeds to output. If it hasn’t, it loops back, selects the next best location, and places another. This process, encapsulated in a custom transformer, repeats until the target density is reached or no further planting sites remain.  You might think that just selecting a certain number of the best sites would be a simpler way of approaching this problem – but each new tree placement alters the conditions of adjacent sites, hence the iterative approach.

The Final Product

Suggested planting locations, shown here in light green, are output to AutoCAD.

The final AutoCAD map provides suggested locations for planting, which are also attributed by priority – for example, removed tree replacement is preferred. This approach is huge leap forward for them – as Anton tells us, “Before, trees were being planted essentially randomly – without even knowing how many were needed to reach the density targets. Now, we know exactly what’s going on – and with the process in place, we are actually planning for 100 years into the future, when these trees will be full size.”

Though Anton’s solution is tailored for a very specific scenario, his methodology isn’t. The principles and approach could be applied to numerous problems in which one needs to weigh alternative locations.

You can learn more about looping and custom transformers on FMEpedia.

littletreeHeritage is our legacy from the past, what we live with today, and what we pass on to future generations. Our cultural and natural heritage are both irreplaceable sources of life and inspiration. Places as unique and diverse as the wilds of East Africa’s Serengeti, the Pyramids of Egypt, the Great Barrier Reef in Australia and the Baroque cathedrals of Latin America make up our world’s heritage.
UNESCO World Heritage Centre




Safe product icons
Reach out and get started with FME today

Real change is just a platform away.