Setting Up a Scenario

After creating a project and adding data to it, we are ready to define the constraints which affect the location or route of our infrastructure. These constraints are encapsulated in the concept of Scenario.


Users with an administrator or editor rol can define new scenarios or modify their existing ones. However, viewer users can only access shared scenarios. They can’t create new ones or modify any of them.

In this section, you can follow one of our tutorial videos:

Scenario Variables

A scenario includes the following variable elements:

  • Layer-driven constraints:

    • Resistance values assigned to layers. They define the relative importance of each data element in determining the cost/benefit of the infrastructure being located or passing through or near each location, even preventing that possibility.

    • Weights assigned to each category. These values multiply the resistances of the layers in each category. They are used to quickly change the relative importance of layer groups sharing a common theme.

      For instance, in one scenario, the environmental constraints may be considered more important, so the weight of the “Environment” category can be increased without changing the resistance of each of its layers.

  • Key points:

    • As an option, each scenario may have its own Start and End points which, if defined, are used instead of the project points. A possible application is to create scenarios considering different connection points.

    • Optional intermediate points. The user can define an ordered list of intermediate points to force the infrastructure path to pass through specific locations in a given order.

  • Path/pylon options:

    • Routing algorithm and its options. There are different algorithms to calculate the route, each one with its own options.

    • Cost calculation parameters. A monetary cost calculation will be performed for the output paths, and each scenario can use different cost factors.

    • Pylon type and pylon distance range. The user can choose the pylon model to be used in each scenario, as well as the minimum and maximum separation between pylons.

These elements are described in more detail below.


Separate scenarios are automatically created for each user, so the values set by one user are not automatically shared by others. If you want to share scenarios with other users, check managing scenarios.

Layer-Driven Constraints

Pathfinder’s optimization method calculates a cost or resistance value for each spatial location. The primary source for this cost is the information provided by the layers in the project. Each layer has one or more (one per ring) resistance values. Depending on the selected MCDA formula, each layer value will be multiplied by its category weight.


Layer resistances have a default value 0, and all category weights have an initial value of 1, so the default cost is uniformly zero and the infrastructure location or path is not constrained. It is necessary to set resistance values to get meaningful analysis results.

Assigning Simple Resistances

The simplest way to introduce data-based constraints is to assign an integer resistance value. By default, this value is limited to the (-3, +3) range, +3 being the highest resistance. We will see later how to change this range.


When a vector layer is in the default Assigned Value (AV) mode, the resistance value can be assigned with the input field next to the layer’s name:


For convenience, we may want to quickly set the same resistance value for all layers in a category. We can do so by using the category’s side panel:



In addition to an integer value, we can use two special resistance values:

  • Forbidden (FB): this value forces the area defined by the layer to be excluded from the infrastructure location. In other words, the infrastructure is not allowed to be in or intersect this area. See more details in the algorithm section.

  • Not Considered (NC): this setting disables the layer in the analysis without removing it (maybe because it is considered in a different scenario).

The same options, plus the Per Ring (PR) option for vector layers (see next section), can be set individually for each layer in its side panel.


Forbidden values (FB) are not recommmended for long linear elements like highways or rivers, because this may constrain too much the optimal path we are seeking. Use a large resistance value instead. It’s okay to use FB for localized areas or elements like water bodies, populated areas, etc..


Not Considered (NC) values are used when including reference data in the project, like administrative boundaries, which do not intervene in the optimization but are useful for visualization.

Vector Layers: Ring Resistances

In vector layers, we can use rings to define the influence of objects beyond their original boundaries. For instance, we probably don’t want the infrastructure to pass through a protected area, but we also want to discourage construction in the surroundings.

On the other hand, while we want to avoid building too close to a highway, it may be good to build near it, because of easier access and reduced transportation cost.

We have already seen how to define the number and width of rings when we add project layers or change their configuration, but how are resistances assigned to each ring?

First, we must select the Per Ring (PR) option (available if the layer has more than one ring). Then the user can set to each ring a resistance value or the Forbidden value.


When more than three rings are defined, a separate dialog is be used. Click on the “Set Resistances” button to open it.



Raster Layers: Resistance Modes

Raster layers provide an integer or floating point value for each pixel. We have different options to decide which resistance corresponds to each of those values. As with vector layers, the side panel can be used to specify this correspondence.

Raster resistances can be specified in four different modes:

  • Table of assigned values (AV): The user sets a default resistance value, which will be used when no other rules applies, and by clicking on the Edit Values button a dialog can be opened to assign specific resistances to individual raster values.

    For instance, if our raster contains an integer code for land cover categories (e.g. data from the Copernicus Global Land Cover), the user will assign a resistance to each integer value:



    After editing the values, don’t forget to click on Apply in both panels to make the changes effective.

  • Value ranges (RNG): The user also sets a default resistance value, which will be used when no other rules applies. By clicking on the Edit Ranges button a dialog can be opened to assign specific resistances to ranges of raster values.

    For instance, if we want to assign resistance according to DEM elevation of slope, the user can set values for different ranges:



  • Linear value interpolation (LNR): In this case, the user sets a no data value to be applied where the raster does not provide a numeric value, and then a resistance to be used for the minimum raster value and another resistance assigned to the maximum raster value (the minimum and maximum values are displayed at the bottom of the panel). The resistance for intermediate values will be interpolated from the maximum and minimum.

    For instance, if we want to assign a linear resistance according to the slope value, we can set up maximum and minimum values to be applied on the slope raster:


  • Not considered (NC): As with vector data, we use this mode when the raster data must not be used in route calculations, only for display purposes.

Layer Resistances Table

To change many layer resistance values quickly in the scenario, it may be more convenient to use a table view.

The Layer Resistances dialog with such table can be opened from the Scenario/Layer Resistances menu option:


And also from the icon in the Layers panel:


From both, the Layer Resistances window will open:


This table view allows the user to change quickly the assignation mode for each layer and the resistance values (including the Forbidden option) for each ring.


The current interval of possible resistance values is shown in the table header ([-3, 3] in the example). It is also visible in the Layers header, in the left panel of the project viewer.

In the case of raster data, the corresponding tab table allows changing the resistance assignation mode and, through the Edit button, assigning resistance values using the same popup dialog we have seen earlier.


Assigning Category Weights

After deciding on the role and relative importance of layers within a category, the scenario configuration also allows the user to change the relative importance of different categories.

We can create different simulation scenarios by modifying the category weights.

By default, an absolute scale is applied for the category weights. This means each category has an integer weight from 1 to 10, which multiplies the resistancia values of its layers. This weight is assigned with the input box or slider in the category’s header:


Other category weight assignation options are possible. See the section about Advanced Options below.

Importing Resistances and Weights

Instead of using the Pathfinder UI to assign layer resistances and category weights, for a large project it may be more convenient to import the scenario configuration from a file.

This importing can be done with the “Import scenario file” button in the resistance table (see images above).

Advanced Options

In addition to the layer resistance and category weights, each scenario has advanced options defining how those constraints are applied to generate results.

To access the advanced settings, select the scenario in the right panel and click on the Settings button near its name:


Alternatively, you can select the scenario and open the settings for the active one with the Scenarios menu:


The scenario settings panel is divided in three different tabs: General, Points and Paths & Pylons:



After changing any scenario settings, do not forget to click on the button to apply the settings, located at the bottom of the panel. Otherwise, the changes may have no effect.

MCDA Model

The MultiCriteria Decision Analysis (MCDA) performed by Pathfinder calculates a final resistance value for each location in the project area. To do so, it combines the layer resistances and category weights according to a formula which can be customized for specific clients or regional standards.

If multiple MCDAs are available for your company, you can select one in the General options of the Scenario Settings:


How do MCDAs work?

MCDAs combine the resistance values at each location in the project area to create a Resistance Map that will be used in the calculation of corridors and paths.

The following image shows on the left the layers as constraints in the study area, and on the right the resistance map resulting from the MCDA calculation on the layer resistances.


All MCDAs give preference to FB values. A forbidden value in any layer at a certain location will force a FB value in the resistance map, which will appear transparent on the map.

The default Gilytics MCDA operates by:

  • Finding the resistance contribution of each layer at each location. This contribution depends on the layer’s resistance mode.

  • Calculating each category’s total contribution by adding its layers contributions.

  • If defined, applying a cap value to the category contribution.

  • Adding all category contributions to calculate the final value.

The Identify tool can be used to verify how the MCDA calculation is done. For example, the next image shows how all layer contributions are combined together in an example with Gilytics MCDA, adding them to calculate the final resistance (13).


In this case, most layers belong to categories with the default weight (1), so their contributions remain unchanged. However, the layers “Areas delimited by territorial planning”, “Natural reserve without planning” and “Strategic forest floor of PATFOR” belong to category “01 Protected areas”, with a weight of 2, so we can see in the chart that their contributions are multiplied by 2.


Compare this with the Maximum Resistance MCDA, used as standard by some customers. In this case, no category weight is applied to modify the layers contributions.

The resulting combined resistance will be the highest positive value + the lowest negative value (if any of these two sets does not exist, the corresponding value is 0). In the location of the previous example, we can see now that the category weight of 2 is ignored, and the final resistance value is:

  • Max = highest positive value = 3

  • Min = lowest negative value = -2

  • Total = Max + Min = 1


The following picture shows the difference between the resistance map calculated with the default Gilytics MCDA (on the left) and the one calculated with the Maximum Resistance MCDA (on the right), which generates a more simplified map.


Category Weight Mode

In the General section, the user can change the method to assign category weights:

  • Absolute Weight (default): each category has a value from 1 to 10.

  • Relative Weight: values from 1 to 100 are used. The values of all categories must add up to 100, since they are interpreted as relative percentages.

  • No Weight: the category weights will be assumed to be all the same and not visible in the user interface.


Corridor Method

The corridor calculation method (percentage or percentile) can also be selected from the Scenario Settings:


Layer Resistance Interval

In the scenario settings panel, we can also find the Layer Resistance Interval, the minimum and maximum integer values which can be set as layer resistances.

The interval limits can be changed. For instance, instead of the default (-3, +3) range, the user may prefer to use values from 0 to 10.



If you need more precision in layer resistances, instead of decimal values (1.2, 3.4, etc., out of 4) use a larger integer range (12, 34, etc., out of 40).


When importing scenarios from files, be aware that the resistance values will be limited to the current resistance interval, so values outside the interval will be capped. To avoid this, first extend the interval range and then import the file.

Path Length Optimization

This is an important new feature introduced in version 3.1. It lets users choose a value between 0.0 and 1.0 to assign more or less weight to the path length, so it can be optimized together with other resistance/cost factors in the scenario.


The minimum value of 0.0 disables the explicit length optimization (although in general the length tends to be optimized when the area has defined resistances). Higher values, up to 1.0, create shorter and smoother paths:


Cap Value

One problem users may find is that adding new layers to a category makes that category too important in the overall assessment, while it would be better than the effective importance of the category remains the same even if new layers are added in it.

A solution is to set a maximum value of total resistance for each category. If this value is zero (the default), no maximum is applied.


The effective resistance cap is the value entered in this field multiplied by the maximum layer resistance interval. For instance, if the maximum resistance value is +3 and the cap value is set to 2, the effective resistance cap is 6. In other words, the Cap Value set in the UI represents how many layer contributions with the maximum resistance are considered as a limit for the category total.

The effective resistance cap will be applied in the Resistance Map calculation to limit the final resistance in each cell. The result is to “flatten” the maximum contribution of each category.


The cap value setting is used by the default MCDA model, but it may not apply to other models.

Shared Scenario

Activate this option so other users in your company can see your scenario when they open the project.


Other users will be able to open it and display your parameters and results, but not modify them.


Scenario Analytics

We may have many layers and categories in each scenario, so it is convenient to use graphical representations to quickly see the distribution of resistances and compare it among different scenarios.

By using the Scenario/Layer Statistics menu, users can display the resistance analysis charts:



Note that:

  • The category weight does not affect the average resistance value shown in the charts.

  • Average values are represented in absolute values without sign, so a negative average appears in the same position (as important) as a positive average.

These charts can be exported as a CSV table or as image files to create reports.


The scenario management page describes how to export the scenario settings to a spreadsheet for further numerical and graphical analysis.

Key Points

The Points tab of the scenario settings panel allows users to constrain the infrastructure path by using key points.


Start and End Points

The Start and End points defined for the project can be changed for each scenario. If they are not defined in the scenario, the project points are used.

To place interactively the Start or End point on the View, click on the “Add to Map” button and then choose a location on the View.

The Start and End points can also be imported from a file by clicking on the “Upload” button:


The Start and End points specification begs the question: would the routing results be the same if we swap the initial and destination points? In other words, is the routing calculation reversible? The answer depends on the routing algorithm:

  • In the Fast routing algorithm, the corridor doesn’t change when the points are reversed and the path may differ only very slightly in specific points.

  • In the Pylon Spotting algorithm, the corridor doesn’t change, but some minor sections of the path might be different because of the order of the pylon evaluation. However, the overall route remains very similar.

  • In the Explore algorithm, because of the randomness intrinsic to this algorithm, the paths obtained can be different when reversing the order. Because the corridor is based on multiple path results, it will probably also change. However, overall, the solutions should be quite consistent.

Intermediate Points

An option only available for scenarios is the definition of intermediate points to be used in the path calculation.

The user can click on the “Add to Map” button to add one or more intermediate points to a sorted numbered list. Click again on the button to disable it.

The list of points can also be uploaded from a georeferenced data file.


The path will be built from the Start point, going though the intermediate points in the defined sequence and finishing at the End point.

To delete an intermediate point, click on the “X” inside its corresponding box.

To change the order of intermediate points, click on a box and drag it to the right. Note the change in numbering on the view.

Path and Pylon Options

The third tab of the scenario settings panel allows users to change options related to the path routing and the pylons used in the case of power lines.


Routing Algorithm

Depending on your company license, more than one routing algorithm may be available. In the dropdown list, you can select which of the available algorithms will be used in the scenario, taking into account that the choice may affect the performance of the routing process as well as the results.


Pylon Spotting Parameters

When a pylon spotting algorithm is selected, the user can use a Configure button to specify parameters controlling angles and the route behavior when crossing forbidden areas.



  • Edge weight (0.0 to 1.0): relative importance of the path line resistance compared to the resistance at pylon locations. A value of 0.0 means that only the resistance at the pylon locations are important for the route optimization, 0.5 means both are equally important and if 1.0 is set, only the values along the line are important. The results can be significatively different:


  • Angle weight (0.0 to 1.0): relative importance of the angle minimization compared to the resistance minimization. A value of 0.0 means that the angle minimization is not considered, 1.0 implies that only angle minimization is considered. Note that, even with angle optimization, some angles may be large, since the optimization affects the total sum of the angles.

    In the following image, the green path has been calculated with an angle weight > 0, compared with the blue path where angle weight = 0.


  • Max direction deviation: how much the path can deviate from the straight line going from Start to End. The default (and the maximum value) is 90 degrees. In the pylon spotting algorithms, the route can not “go backwards”.


  • Max angle: maximum angle between previous and following cables at any pylon. The default is 180 degrees, which means any turning angle is possible.


  • Angle cost function: for the angle optimization, we can choose to calculate the cost of large angles with a linear or discrete function. You can usually keep the default setting.

  • Between points allowed: this option lets the path cross over forbidden areas as long as the pylons are not placed on them.

    This is the behavior when this option is enabled (also the behavior of other algorithms which don’t have this option). The FB areas are black in this example:


    However, if this option is off, the path will not be able to cross forbidden areas at all. This choice might be safer to avoid problem areas like building surroundings, but it may prevent the algorithm from finding a solution. The FB areas are transparent in this example:


Explore Parameters

The Explore routing algorithm also has advanced configuration parameters:

  • Edge weight and Angle weight have the same meaning as in the pylon spotting settings (see above).

  • Corridor width:

    Regular routing optimizes only the resistance along the line itself, so we can find high-resistance areas close to the line and the algorithm will not try to avoid them. This can be addressed by setting up rings around all the objects we need to avoid, but a simpler solution is to define a width for the resistance evaluation.

    This width is specified in meters, so it should be a multiple of the project resolution. If the width is smaller, it is considered to be the project resolution.

    Typically, this width can be used to find paths leaving a certain safety gap between high-resistance elements like buildings or highly protected areas, so even if there is a shorter route, the algorithm will choose one that requires a certain safety gap defined by the width.


    Note that it is not guaranteed that the calculated paths skip narrow gaps completely, because the algorithm optimizes the total resistance. A specific gap may have a small weight in the total resistance and crossing it still might be the best solution overall.

    To maximize compliance with the gap constraint, the layers representing areas to avoid should have a very high resistance compared to other areas. See also the next property.

  • Resistance of FB areas: Unlike other routing algorithms, the Explore algorithm doesn’t apply the forbidden (FB value) constraint strictly. Because of the way the algorithm works, assigning to FB areas an “infinite” resistance (as the other algorithms do), would create problems in the optimization.

    For this reason, the Explore algorithm internally assigns a high (but finite) resistance value to the FB areas. As a result, solutions calculated using Explore might still cross these areas, and this may be fine (for instance, crossing a river when it’s not too wide).

    With this option, the user has control on which resistance value is used by Explore in FB areas and, therefore, he/she can control how strictly these areas are avoided. The larger this resistance value compared to the overall resistance map, the more strict the FB constraint will be.

  • Number of paths: with the Explore algorithm it is possible to choose the number of paths to generate, between 1 and 8.


Cost Models

In order to evaluate how good each potential path is, Pathfinder can use multiple cost models to calculate monetary CAPEX (construction) or OPEX (operation) costs, and also other costs like CO2 footprint or environmental impact.

The Gilytics cost model will be active by default, but your organization may have other cost models available. Contact a Gilytics representative if you have specific cost estimation needs.

You can change the currency used in the cost estimations and then activate one or more of the available cost models, so they are automatically executed for each new or modified path in your scenario. Different scenarios may have different cost models activated.


Each cost model will have a global configuration panel. Click on the Settings button next to a cost model to configure it.

For instance, the Gilytics cost model has global parameters to specify the price per kilometer and the multiplication factors related to slope.


In addition, some cost models will have specific cost parameters for each layer. In this case, the right layer panel will contain input fields to set these costs for each cost estimation model:


Pylon Options

The user can specify the minimum and maximum separation between pylons.


Pylons will be placed automatically by the algorithm, but can also be manually adjusted by users in the 3D view after the path is calculated.


The minimum and maximum pylon distances should be larger than the project resolution, especially in the Explore algorithm. The minimum distance has no effect in this routing algorithm. The distance range applied by the Explore algorithm will be actually from max_distance/2 to max_distance.


For the pylon spotting algorithms, it is recommended that the maximum and minimum distance values are close. In this way, the algorithm will run faster and use less memory. A large range may exhaust the algorithm memory.

The scenario settings show the type of pylon selected for the simulation. This type can be changed by clicking on the Select Pylon button and choosing the right model from the dialog:



It is possible to add custom pylon models if needed.

Notice that one of the default pylon types is named Underground, meaning that it will generate routes located under the surface, like earth cables.


If you use this option in 3D, you will need to switch the view mode to Underground, so the lines are visible and it becomes possible to navigate below the surface.

Slope Resistance

Because of the new support for raster data, this option has been discontinued. Slope and Digital Elevation Model rasters are now visible in the Layers panel and can be used to setup resistances which depend on the slope or the elevation of the terrain.

Typically, you may want to add some resistance for large values of slope, and certain ranges or elevation (to avoid mountains and flooding areas, for instance). This is easy to do with the raster resistance settings.

This is an example, exaggerated for demonstration purposes, of resistances ranges based on the slope, including forbidden values (transparent) for a high slope:


In the analysis section we will see how to identify the effect of slope and other layers’ resistances at a specific location and along a path.

Disclaimer: the scenarios depicted in this manual do not represent actual customer projects or infrastructure proposals, and are presented for demonstration purposes only.

For more help, please use the help chat in the application, or contact Gilytics.