Junctions
How to set junctions
As you might know, junctions are needed to solve the mathematical graph model of system flows. Therefore, they are important to your network in Qatium.
- In case you don't have a junction layer, Qatium will infer where the junctions are missing and connect them to the pipes, creating a connected network.
- If you do have a junction data layer, Qatium will interpret the junction locations and connect them to the relevant pipes, creating a connected network. (Qatium will connect pipes with nearby junctions with a tolerance of 0.1 meters.)
We recommend that you specify which junctions represent hydrants directly on EPANET or your GIS files. Otherwise, Qatium will not be able to identify them. You can do it by adding the following data to your files:
GIS editor
| Field | Group |
| Attribute | hydrant |
EPANET
Option 1
| Property | Description |
| Value | hydrant |
Option 2
| Property | Junction ID |
| Value |
H_ E.g.: H_12344 |
You can also specify hydrants directly in the .inp file using a text editor. Add ;_hydrant to the description (i.e., the extra properties column that appears in fifth position after the semi-colon).
Heads up:
Unless you define them as junctions or hydrants, Qatium automatically classifies all the junctions at the end of Laterals as Customer points even though they don’t have demand data.
Junctions properties
Check the following list to set or edit other properties for your junctions in your files, and see how Qatium processes that information.
Demands
You can import junction layers or files that include demand data in different ways.
INP files usually contain both base demand and demand patterns. GIS files may include both, or just the base demand without a pattern. If no pattern is defined, we'll use an hourly default one.

If you import junction layers with demand and pattern fields, you can automatically create multiple demand categories per junction and smartly reuse patterns across the network. You can set categories like urban demand, leak demand, industrial demand…, and define a pattern for each.
Here's the data you need to add to your GIS files:
Demand category
| Field | demand_categoryname |
| Attribute | [number] |
Pattern
| Field | pattern_categoryname |
| Attribute | [number];[number];[number]; etc |
For example:
{ "demand_urban": 100, "pattern_urban": "1.3;2.4;3.5", "demand_leak": 99, "pattern_leak": "0;6;7;4", "demand_industrial": 5, "pattern_industrial": "0;5;5;5"}
Heads up:
- For the base demand: If there's no pattern defined, Qatium uses the default one. If you define a pattern in the field Pattern, Qatium applies that instead.
- For the demand categories: If you don’t define a pattern for a demand category, Qatium skips that demand when building the model. To include a demand category, make sure you define both the demand and its pattern.
In case any demand data is missing, both for .inp and GIS, we’ll try to infer it.
Here’s how it works when there are no demands specified:
- If the network contains Customer points, Qatium distributes the demand on those assets.
- If there are no Customer points, we try to find junctions that are in the distribution network.
Qatium assigns demands to all distribution junctions, proportionally to the minimum pipe diameter that is connected with each selected node, according to the following formula:
∑ Demands x Minimum Diameter ÷ ∑ Diameters
In cases of networks without tanks and a single supply source, Qatium determines and assigns the demand based on the capacity of network assets.
Heads up:
Qatium avoids distributing demands for junctions that have been specified as hydrants or junction groups.
Terrain elevation
Qatium only processes elevation data when it's included as an attribute in point assets like junctions, tanks, supply sources, valves, and pumps.
Data you add to your files
GIS editor
| Field | Elevation, Elev, TotalHead, Head |
| Attribute | [number] |
EPANET
| Property | Elevation |
| Value | [number] |
How Qatium processes that data
If not specified: Qatium will add it from Mapbox elevation data.
Water quality
Currently, Qatium only supports water age to calculate Water Quality. To have accurate water quality data shown in Qatium, you must include the water age parameter in your files.
GIS editor
Include the Water Age property inside your GIS data. Then add a number (up to 2 decimal places) representing the number of hours.
| Field | WaterAge |
| Attribute | [number=hours] |
EPANET
- Set Parameter property to Age in the Quality options in EPANET
- Set the Initial Quality property for all the nodes. If not specified, EPANET assumes that the value is 0.
- Export the .inp file and upload it to Qatium to create a network or update an existing one.

Pressure & consumption
The data about pressure and consumption that you see on the junction’s information panel is calculated through the simulation with all the data available from your imported files. The more information you provide, the more complete your network in Qatium will be.
Thresholds
Configure warnings by setting minimum and maximum thresholds for your assets. We'll let you know you if data falls below or above these limits.
To set thresholds, upload a .CSV file including the following columns:
| Column label | Asset | Property | Min | Max | Unit |
| Type of data | <string> | <string> | <number> | <number> | <string> |
- Asset: the asset ID.
- Property: could be flow, pressure, or level, for example.
- Min: the threshold minimum value.
- Max: the threshold maximum value.
- Unit: of the property.
For example:
asset,property,min,max,unit
J_00028,pressure,10,60,kPa
J_00029,pressure,10,60,kPa
Make sure the units for the threshold values match the units of the variable we're setting the warnings to:
- Pipe flow = flow unit
- Tank level = level unit
- Junction pressure = pressure unit
How Qatium processes that data
If not specified, you won’t receive any warnings.
Emitter coefficient
Data you add to your files
GIS editor
| Field | Emitter, EmittCoef |
| Attribute | [number] |
EPANET
| Property | Emitter Coeff. |
| Value | [number] |
How Qatium processes that data
If not specified, Qatium will ignore it.