Help: Using the heat network editor


The heat network editor is the part of THERMOS which lets you design and optimise heat networks. To get into the heat network editor, you need to have created an account, a project, and a map - if these are new ideas to you, have a look at the quick start guide first.

This document walks through the different bits of the interface, and then describes how to do some common tasks.

1 Parts of the interface

The editor is divided into several pages which you can switch between using the buttons at the top of the window.

1.1 Map page

The map page shows the candidates (bits of roads and buildings) which are available to put into a network. It looks like this - you can point at some of the main things in the picture to show quick descriptions.

Sorry, your browser does not support SVG.

1.1.1 Candidates layer

The candidates layer of the map shows all of the buildings and roads that are available to put into a heat network.

Several different drawing styles are used to show different kinds of information visually on the candidates layer


the colour of each candidate is used to show information about whether the candidate will be used in a network.


  • Grey candidates are forbidden, which means they can't be included in a network
  • Blue candidates are optional, which means they can be included in a network, but the optimiser can leave them out if they make things worse.

    If the optimiser has been run and there is a solution then blue candidates are those which were included in the network.

  • Green candidates are optional candidates which were not included in the network, if there is a solution
  • Red candidates are required, which means that the optimiser has to put them in the network.
  • Magenta candidates are infeasible, which means that they cannot be used in a solution, for example because
    • They are buildings or roads that cannot be reached from any supply point
    • They are roads that do not join any pairs of buildings so would not be worth using
buildings which are supply locations are filled in with a striped pattern. If the optimiser has been run, and the supply is used, the stripes will be coloured in blue.
Line thickness

The line thickness is used to show whether a candidate is selected. Selected candidates are drawn with a thicker line. They are also shown with a tick mark in the candidate list, and summarised in the selection info box.


Figure 3: A required and forbidden building and some forbidden roads are all selected

If the candidate list at the bottom has been filtered, the candidates which do not pass the filter will be made mostly transparent, to emphasise the things shown in the candidate list.

1.1.2 Density layer

The heat density layer shows a smoothed version of where there is heat demand in a map. It may be a useful way to get an overview of the distribution of demand when you are zoomed out too far to see the individual buildings and roads

1.1.3 Candidates list

The candidates list is at the bottom of the window.

Each candidate building or road that is not forbidden (so is coloured in) is shown as a row in the candidates list.

You can sort the candidates list by any of the columns by clicking on the column header. Each column header also has a filter button - this is the grey icon on the right which looks a bit like a funnel

In the leftmost column there is a checkbox for each row, and a checkbox in the column header. These checkboxes control whether candidates are selected.

If you tick the checkbox in the header, all the candidates in the table will be selected.

Together with the filtering controls you can use this to focus on particular candidates

Figure 4: Filtering and selecting from the candidates list. When a column has been filtered, its filter button turns blue. Filtered candidates become transparent on the map. Checking the selection box selects the filtered candidates only.

1.1.4 Selection panel

On the right hand side of the map page is the selection info panel. This shows summary information about whatever candidates are selected on the map.

Here is a picture illustrating most of what you might see in the selection info panel:


From the top:

  • The white area at the top says how many candidates are selected in total, in this case 5.
  • The Type row shows the breakdown of the selected candidates by their type. In this case, there are 4 selected buildings and 1 selected path (giving the total of 5).

    Each of the grey boxes (chips) will let you modify the selection. If you click on the word in the chip (e.g. On building or path), anything which is not of that type will be deselected.

    If you click on the the cross at the end of the chip, everything which is of that type will be deselected.

  • The Classification row gives a breakdown by the candidates' classification. In this example there are four different classifications selected: Service, Connector, Residential, and Industrial. Note that this breakdown is not related to the Type breakdown.
  • The Constraint row gives a breakdown by the constraint status (colour) of the candidates. Here all 5 candidates are Optional
  • The Length row gives the total length of all selected paths
  • The Base cost row gives a lower bound on the total cost of including all the selected candidates. For paths, this is the cost of installing a 10mm diameter pipe. For buildings it is the building connection cost.
  • The Demand is the summed demand for all the selected buildings
  • The Peak is the summed peak for all the selected buildings
  • In solution is a breakdown of which candidates the optimiser chose to include in the solution
  • Coincidence is the mean coincidence (aka diversity) factor applied to all the selected paths and supply points. This is probably most useful when selecting a single path or supply.
  • Capacity is the maximum capacity required for all the selected paths and supply points which are in the solution.
  • Diameter is the maximum diameter selected for all the selected paths which are in the solution.
  • Principal is the total capital cost the optimiser has associated with all selected candidates, including the cost of pipes, the capital cost of supply, and the connection cost for buildings.
  • Losses gives the summed heat losses associated with all selected paths that were used in the solution.

1.1.5 Editing buildings

You can change most of the information the model uses about buildings within a network problem.

When you change a building in this way, the change only applies to the network you are designing - changes like this are not applied to the underlying map. If you start a new network in the same map it will not contain the changes.

To edit some buildings (or a single building), first you need to select them. Once you have them selected, you can right click on them on the map and choose Edit buildings or press e on your keyboard.

This will show the editor window:


This window lets you simultaneously edit the properties of all the selected buildings. To make editing a bit easier, the buildings are divided into groups according to the menu at the top. In the picture above, the buildings are grouped according to their Classification.

Each different classification in the selection is shown as a row underneath, so in the example there are three classifications, Unclassified, Residential and Place of worship. The count column shows how many buildings belong to each class.

The rest of the window allows you to change the important parameters for each row. To say you want to change a parameter, you must tick the checkbox next to it. Then you can type a value in the corresponding box. This value will be applied to every building in that row.

If we made the following changes in the example and pressed OK, the effect would be:

  • To set the connection cost for 41 unclassified buildings to 8 currency / kWp
  • To set the demand for the 41 unclassified buildings to 20 MWh/yr
  • To set the CO2 factor for these buildings to 0.6 kg/kWh
  • To set the peak demand for 1 place of worship to 100 kW
  • To set the heat price there to 1 cent per kWh


At the moment, there is a bit of subtlety around heat price, nox, pm25 and co2. The starting values are not stored in the map, but instead are configured in the Options page for the whole network. If you change a building's heat price or emissions factors, then the defaults in the Options page will no longer apply to that building.

There is currently not an easy way to tell whether a building is using the default values or has special values of its own. You can remove any changes made to these parameters, clearing them so that the defaults are used, by right-clicking and choosing Set defaults.

1.1.6 Editing paths

You can edit the cost parameters for paths in a similar way: select some paths, and right click on them or press e to open the editor window:


Changes to these parameters belong to the network problem and do not affect the underlying map, so if you create a new problem in the same map it will not contain changes made in this way.

The meaning of these parameters is described here.

1.1.7 Editing supply parameters

You can convert a building into a supply location, or edit an existing supply location, by right clicking on it and choosing Make supply point or pressing the s key:


These parameters are described here.

1.1.8 Keyboard shortcuts

You can do some common operations with the keyboard using these shortcuts:

Key Effect
c Change the constraint for the selection
s Change the supply parameters for the selection
z Move the map to show the selection or the network
a Select everything in the candidate list
A Invert the selection (so a A clears the selection)
e Edit the parameters for the selection
i Show some debugging information

1.2 Options page

This page contains settings that apply to the whole network problem; their meanings are described in more detail in the parameters section.

Finance and NPV

Costs and revenues are combined to give an NPV, which is what the optimiser tries to maximise. Capital expenditure can also be annutized using a constant-repayment fixed-term loan. The loan repayments are then subject to NPV like other costs.

If you do not want to include a loan for your capital costs, enter 1 for the financing period at 0% interest.

These parameters set the cost and optionally a limit for total net emissions due to the network. The network's net emissions are the emissions due to the supply minus the avoided emissions from connecting demands. Supply emissions factors are set as part of the supply parameters, and avoided emissions using either the default factors on the options page, or any building-specific factors you have set.
These parameters affect the cost of pipes. You can set limit for pipe capacity; the model will never try and install a pipe that can carry more than this amount of heat. The mechanical cost parameters are set here, because they are the same for every pipe. For the civil cost parameters, you can change the exponent here, but not \(A\) and \(B\); these values are set for each path.
These parameters control the pipe cost and heat loss models.
Optimisation parameters
These parameters limit the behaviour of the optimiser; increasing the allowable distance from best possible answer will make the model run faster, but decreasing it may give a better solution. The maximum runtime determines how long the model will spend trying to find a solution before it gives up.
Building defaults
These parameters are applied to any buildings which you have not edited, and control the revenue from connecting the building (via the price) and the effect on emissions (via the avoided emissions factors).

1.3 Result page

This page only appears after the model has been run, and contains information about the solution that was found (if any). The information is split into four subsections, which you can switch between using the buttons below the page header.

1.3.1 Result summary

The result summary shows a high level breakdown of the network. On the left is a table explaining the financial model, and on the right some summary figures about the solution and its net emissions.

Financial model:

Capital costs
This subsection shows the cost terms associated with all the capital costs
This column gives the up-front capital cost associated with its row.
This column gives the total cost of finance, in addition to the capital cost. The total cost (without NPV) of the row is the principal plus the finance.
This is the NPV of the row's capital cost and its financing.
Operating costs
This subsection shows the cost terms associated with the functioning of the network
This is the annual real figure for the row
This is the annual figure summed over the accounting period
This is the NPV of the annual figure for the accounting period
This is the yearly cost associated with supply capacity. This value is controlled by annual cost in the supply parameters.
This is the yearly cost associated with heat production. This value is controlled by the supply cost in the supply parameters.
This subsection shows the monetised costs (or benefits) of the system's net emissions. These values are controlled by emissions factors in the supply parameters, building parameters, and network options.
This subsection shows the revenues from selling heat and the final net revenue for the system. Heat sales prices and quantities are governed by building parameters and network options.

Key quantities:

Model runtime
The time taken by the optimiser to find this solution
Objective value
The numerical value of the optimum; this should be similar to the net cost in the financial model
Number of supplies
The number of supply points that were used in the network
Supply capacity
The total capacity of all the supply points used in the network
Supply output
The total annual heat put into the network by all supply points
Number of demands
The number of demands connected to the network
Total demand
The total annual heat delivered to demands by the network
Total peak
The combined peak of all the demands met by the network, without diversity
Length of network
The total length of all paths selected for heat pipes
Heat losses
The total heat loss from pipes per year
Capacity of network
The sum-product of pipe peak capacity with pipe length over all the pipes. This might not be a useful number to know…

1.3.2 Demand, supply and network information

The demand information page lists all of the demands that were included in the network. The supply information page lists all of the supply locations that are supplying the network, and gives their size and cost. The network information page gives information about each segment of pipe that is included in the network.

2 How to…

2.1 Select things efficiently

A lot of the work in using the network editor is about selecting the right things so that you can edit them or change their constraint status. There are many ways to select things by putting together the basic tools the program gives you; here are some examples.

Figure 10: Selecting large demands in an area: (1) select everything in the area (2) change the constraint to optional, so they appear in the table (3) filter the table and (4) use the table selection checkbox to select what is in the table.

Figure 11: Selecting all the connectors in an area (paths added by THERMOS to join up buildings): (1) select everything in the area (2) click the path type to select only paths (3) click the Connector classification to select only connectors.

Figure 12: Select a whole street: (1) select everything (2) click the path type to narrow down the names list (3) click the street's name to select only paths with that name. Zoom button to zoom in to it.

Figure 13: Select everything which the optimizer chose to use and make it required: (1) select everything in the table (2) click yes for in solution (3) change constraint status for these items

2.2 Export a network as a GIS file

You can save a network as a GIS file - this feature is currently only visible from the project page for the project containing the network. Each network will have a little downward-pointing arrow next to its name - click this to download the network as a geojson file.

Figure 14: Saving a network as a GIS file and opening it in qgis.