Creating Models

You would love to see how your network looks like in Qatium? Follow the steps below and you will be creating models in no time.

There are two ways to create models in Qatium. You can build a model from GIS data or upload a EPANET INP file. We recommend uploading a hydraulic model to achieve better accuracy and limit model deviation.

Qatium supports the import of EPANET input files (.inp). To upload your existing hydraulic model to Qatium, click on the box with the + or the  button on the top left of the page. Drag and drop your files directly into the browser or click and browse to them as shown below.

Qatium Help: Creating Models - Importing network - Importing model - GIS - EPANET


Creating models from an existing hydraulic model

Did you know that the EPANET engine was the most widely used hydraulic modeling engine on the planet? Qatium, InfoWater (Pro), WaterGEMS using an EPANET engine (on top of EPANET application), makes EPANET engine the most favoured engine. Even water modeling solutions with proprietary engine (like InfoWorks WS and Sinergee) can export to EPANET format.

With that in mind we chose EPANET format as an exchange format between your current hydraulic modeling package and Qatium. You can import EPANET input (.inp) files to Qatium. When importing an .inp file to Qatium, Q will assist you in defining the model projection.

Qatium Help: Creating Models - Projecting network - Importing network - Importing model - GIS - EPANET

Clicking Start will allow you to choose the most relevant projection for your model.
By zooming to the location of your model, Q will propose a list of the most relevant projections for your model. You can click on different projections to assess the most relevant and accurate one.

Please note that importing a model exported from Qatium, will not require the projection to be set.

For more information about how to create an INP file, please visit : How can I create an EPANET file to import into Qatium?


Creating models from GIS data

Qatium supports GeoJSON, shapefiles and zip files (containing GeoJSON or shapefiles). Please import all GIS files at the same time.
You can specify the Shapefile encoding in .cpg files, and for GeoJSON files, encoding shall be UTF-8 (as the JSON standard remarks).

When uploading shapefiles, please upload .shp, .shx, .dbf and .prj files.

Pipes, junctions, valves, pumps, tanks, sources, demand pattern zones and simple controls can be imported in Qatium, however the minimum that Qatium requires is only a pipe layer. For accuracy purposes, we recommend that users import as many asset types as available to them.

Qatium will try to determine the type of assets of each shapefile and ignore unreadable files.

After the data upload, Q – your digital assistant – will accompany you through the model building process.

Qatium Help: Creating Models - Q Assistant - Importing network - Importing model - GIS - EPANET

Clicking Start will allow you to go through the 4 step process it took Q to build a model from your GIS data, even if you have missing or inaccurate elements, as detailed in the next section.


Importing asset data

When importing GIS data, Qatium will try to interpret the data and assign an asset type to each uploaded file.

GIS file names

If you notice that Qatium is not displaying all of your assets, it is most likely that Q couldn’t recognize part of your dataset. We recommend renaming your files to end as “_assettype” eg. mynetwork_valves.geojson and reimporting them or recategorizing them.

Asset typeRecommended file suffix

Please note that pipe feature files will be determined by their shape – line or polyline.

GIS attributes

To help you create your model from GIS data successfully, we created a table detailing the GIS attributes considered by Qatium for each asset type.
R = Read, complete and validate, D = Always default Value, X = Not read

InterpretationDescriptionAttributeDefault valueAliases (Please note that aliases will be prioritized in the order displayed below)
RUser asset identifierIdsequential numbers“ID”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
RPipe lengthLengthcalculated from the gis layer“Length”, “Long”, “Longitud”, “Shape__Len”, “Len”
RPipe diameterDiameter200 mm“Diameter”, “Diam”, “Diametro”, “D”, “VALVE_SIZE”, “Size”, “PIPE_SIZE”, “DIAM_Ø”, “Ø”, “DIAM_Ø”, “Ø”, “Diameter_m”, “diametro_nominal_dn__mm_”, “NominalDiameter”, “dn_mm”, “dn”
DRoughness coefficientRoughness148
RMinor loss coefficientMinorLoss0“MinorLoss”, “LossCoeff”
RStatus: OPEN, CLOSED, CVStatusOPEN“Status”, “IniStatus”, “Estado”
RControls to rule the elementRule“Rule”, “Rules”
XInstallation DateInstallDate
InterpretationDescriptionAttributeDefault valueAliases
RUser asset identifierIdsequential numbers“Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
RTerrain elevationElevationGoogle API“Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
RDiameterDiameter200 mm“Diameter”, “Diam”, “Diametro”, “D”, “VALVE_SIZE”, “Size”, “PIPE_SIZE”, “DIAM_Ø”, “Ø”, “DIAM_Ø”, “Ø”, “Diameter_m”, “diametro_nominal_dn__mm_”, “NominalDiameter”, “dn_mm”, “dn”
RValve typeFamilyTCV“Type”, “Tipo”, “Class”, “Category”, “Family”, “Familia”
RSettingSetting0“Setting”, “Consigna”
RMinor loss coefficientMinorLoss0“MinorLoss”, “LossCoeff”
RSTATUS: OPEN, CLOSED, ACTIVEStatusOPEN“Status”, “IniStatus”, “Estado”
RControls to rule the elementRule“Rule”, “Rules”
ROrientation, which element ids are upstreamUpstreamConnectionsdepending on the orientation of the surrounding piping“UP”, “upstream”
InterpretationDescriptionAttributeDefault valueAliases
RUser asset identifierIdsequential numbers“Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
RTerrain elevationElevationGoogle API“Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
RPowerPower1 kW“Power”, “Potencia”, “Potency”, “Output”, “Force”
RStatus: OPEN, CLOSEDStatusOPEN“Status”, “IniStatus”, “Estado”
RControls to rule the elementRule“Rule”, “Rules”
ROrientation, which element ids are upstreamUpstreamConnectionsdepending on the orientation of the surrounding piping“UP”, “upstream”
InterpretationDescriptionAttributeDefault valueAliases
RUser asset identifierIdsequential numbers“Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
RTerrain elevationElevationGoogle API“Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
DHead (Total elevation)Head30 m (above ground)
InterpretationDescriptionAttributeDefault valueAliases
RUser asset identifierIdsequential numbers“Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
RTerrain elevationElevationGoogle API“Elevation”, “Cota”, “COTA_TER”
RHeight of base tankHeight0 m“Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”
RInitial levelInitialLevel2 m“InitialLevel”, “NivelIni”, “Nivel”, “StartLevel”, “Level”, “IniLevel”
RMinimum levelMinimumLevel0 m“MinimumLevel”, “MinLevel”, “NivMin”, “NivelMin”
RMaximum levelMaximumLevel4 m“MaximumLevel”, “MaxLevel”, “NivMax”, “NivelMax”
RDiameter equivalentDiameter20 m“Diameter”, “Diam”, “Diametro”, “D”, “VALVE_SIZE”, “Size”, “PIPE_SIZE”, “DIAM_Ø”, “Ø”, “DIAM_Ø”, “Ø”, “Diameter_m”, “diametro_nominal_dn__mm_”, “NominalDiameter”, “dn_mm”, “dn”
RMinimum volumeMinimumVolume0 m3“MinimumVolume”, “MinVolume”, “VolumenMin”, “VolMin”
InterpretationDescriptionAttributeDefault valueAliases
RUser asset identifierIdsequential numbers“Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
RTerrain elevationElevationGoogle API“Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
RBase demandDemandCalculated as a function of the network“Demand”, “Demanda”, “BaseDem”, “DemBase”


Importing demand pattern zones

You can assign different demand patterns per network zone by uploading a file that contains polygons/multipolygons with a DemandPattern property in GeoJSON files or DemandPatt in Shapefiles.

For a successful import, the file has to be a valid GeoJSON or Shapefile and it must :

  • contain in its properties a demand pattern (DemandPattern/DemandPatt) and, optionally, a base demand (BaseDemand).
  • have a “MultiPolygon” or “Polygon” geometry

The length of the DemandPattern is not limited, each value corresponds to an hour. You can add as many comma separated values as required.


Importing simple control rules

Qatium supports 3 kinds of simple rules as defined in Epanet, during a GIS import (GeoJSON or Shapefile).

  • You can include your rules in a field named [“rule”, “rules”] for pipes, valves and pumps.
    Qatium accepts a short version of control rules: the object type (here LINK) and id followed by a list of its different settings separated by a separator, see example below.

Link 1 properties:

Will be interpreted as:

  • Qatium accepts control rules defined for other elements. Any valid rule, containing the object type (here LINK elements) and id, will be applied to the mentioned object regardless of the location of the rule. i.e. should a rule for Link 2 be located in Link 1 properties, it will be applied to Link 2 provided that the rule starts with “LINK 2” – as shown in the example below.

Link 1 properties:

Will be interpreted as:

  • Qatium accepts multiple control rules separators: tab, comma, semicolon, break line.
  • If the control rule is not valid, it will be included in the model as a comment, and in .inp file, should the model be downloaded.

Link 1 properties:

Will be interpreted as:
; [not apply] LINK Qatium OPEN AT TIME 3


GIS data enhancements

We recommend to upload as much GIS data as you have available, however we are conscious that you might not have optimal data available. Qatium has a data validation and inference process at the start of any GIS data import.

Data filtering

Ensuring that the data used is reliable is an essential part of the model building process, we would like to help in this process. Therefore, Qatium has some data filtering capabilities explained below.

Unit system detection

To determine the unit system of the network, Qatium performs checks on the diameter field of pipe files.

  1. Filtering: only values in the range 1 to 4000 are accepted
  2. Validation: for each GIS file, if all the diameter values are between 15 and 150 the dataset is considered to be in US customary units. If any pipe diameter value is out of this interval the dataset will be considered to be in International System.

Geometry data filtering

Ignoring objects without geometry
Objects without coordinates in their geometry are discarded and, therefore, cannot be represented.

Selecting overlapping point objects
In the event that there are overlapping nodes (same coordinates), only the first element is preserved, according to the following order of priorities:

  1. Supply Source
  2. Tank
  3. Pump
  4. Valve
  5. Junction

Rounding coordinates
For the purpose of reducing file sizes, Qatium rounds the coordinates of all objects to 8 decimal places.

Data validation

Qatium validates your GIS data before creating a model from it, ensuring that the data uploaded is coherent. Qatium will read the layer attributes and make sure that the each value validates the rules listed in the table below.
If the data is original GIS data is ignored, Qatium will apply default values to fill in the gaps.

Validation rules

AttributeObjectsValidation rule
LengthPipe> 0
DiameterPipes, Valves[15-4000] mm
Equivalent diameterTanks> 0 m
Minimum volumeTanks> 0 m3
Minimum levelTanks> = 0 and < Maximum level
Maximum levelTanks> 0
Initial levelTanksMin level <= IL <= Max level
DemandNodes-inf <demand <inf
Minor lossesPipes, Valves>= 0
StatePipes, Valves and PumpsOPEN, CLOSED, CV (Pipes), ACTIVE (Valves)
PowerPumps>0 kW
SettingValves>= 0 
TypeValves“PRV”, “PSV”, ” PBV “,” FCV “,” TCV “,” GPV “
NameAllIt is converted to text

Default attribute values

All attributes with unreadable or invalid values are set with the following default values in the defined unit system:

AttributeObjectDefault value
SIUS customary
DiameterPipes, Valvesthe mode* or 200 mmthe mode* or 7.87402 in
Equivalent DiameterTanks20 m65.6168 ft
Minimum volumeTanks0 m30 ft3
Minimum levelTanks0 m0 ft
Maximum levelTanksMinimum level + 4 mMinimum level + 13.1234 ft
Initial levelTanksmean of max & min
Minor lossesPipes, Valves0
StatusPipes, Valves and PumpsOPEN
RoughnessPipes148 (HW)
PowerPumps1 kW

*for pipes only: the mode is the most repeated value. Qatium will first try to calculate the mode of pipe diameter for each file. If successful, the value of the mode is used as the default value for pipes from a specific file.

Data inference

If you have provided one or multiple of the datasets mentioned below, Qatium will do its best to understand your data. If unsuccessful in understanding your dataset Qatium will ignore the layers not understood. You can help Qatium understand your dataset by following the naming convention mentioned in the section above : GIS file names.

Inferring supply sources

If no supply source GIS data is provided or invalid, Qatium will infer the location of the source.
If the simulation cannot run with the defined source, Qatium will try to infer the location of an additional source.

The network is divided in subnetworks. The most dense one is checked for a supply source. If it doesn’t contain one, we infer a supply source at the end node with the highest elevation of the pipes with the largest diameter.

Inferring total head

The total head of the supply source is set at 30 meters in water column above the terrain elevation. The final result is recorded with only 1 decimal place.
At the moment, this attribute value is not considered in the GIS dataset, therefore, we set it by default in all cases.

Inferring connections

  • If you don’t have a junction data 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 junctions 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.

Inferring demands

Should you have not provided demand data, Qatium will estimate the population and population density based on the size and density of the distribution network. From the estimated population and population density, demands will be calculated and assigned to the nearest junction.

Inferring elevation

Qatium will append elevation data to the nodes. transforming your GIS data into a working hydraulic model.
From that moment on you can start visualising your model and running what-if scenarios.

Inferring pipe length

For each pipe not having the length attribute populated or invalid, it is calculated from its geometry. The library turfjs is used. This does not take into account the elevation of each vertex. The length is rounded to 2 decimal places for both systems of units.

Connecting pipes at T-junctions

If one end of the pipe (not connected to another) spatially coincides with another pipe, the latter is split and a junction added at the intersection. The two newly pipes inherit the properties from the original split pipe, only the length of each section is recalculated (proportionally to the one it originally had).
In this case, a tolerance of 0.1 m is used and the ends of the new pipes are extended to the end of the pipe that generates the split. Normally, these extensions are not noticeable on the map.

Inferring tank elevations

The elevation (ground level) is defined by Google API. To specify the height of the tanks (distance between the ground level and the floor of the tanks), please add this information in a Height attribute in the corresponding GIS layer.
In case you define both, elevation and height of the tank, the result will be the sum of both.

Inferring the base demand

If you have provided the demand data in your import, we do not infer any additional consumption for the network.
Otherwise, the procedure is divided into two steps:
First the population is estimated, with the following formula:
* Formula:
Qatium Help Model GIS Equation consumption demands - Centro de Ayuda Qatium Modelo GIS consumo demanda

Second, the base demand is estimated by multiplying the population by a usage of 135 L/inhabitant/day.

Consumption pattern

If you have provided the demand data in your import, we do not infer any additional consumption for the network.
The hourly pattern applied by default is the following:

Qatium Help Center GIS Model Default Pattern - Centro de Ayuda Qatium GIS Modelo

Allocating demand

This demand is assigned only to junctions connected to pipes whose diameter is less than or equal to the average diameter.
The allocation of the demand is made proportionally to the minimum pipe diameter that is connected with each selected node.

Qatium Help Center GIS Model Demand Allocation - Centro de Ayuda Qatium GIS Modelo demanda

In cases of models without tanks and a single supply source, a check is performed.
A tree is generated over the network with unique paths to the demand points. The accumulated flows in each pipe of the tree are calculated. If at any time the optimum capacity of the pipe is exceeded, the downstream demands are reduced.

We recommend having the upstream pipe defined in your pump and valve layers as it limits inferences. However, we understand this data is not always available, and we want to help!

Element orientation

Qatium looks at the direction the pipe was drawn. The pipe pointing towards the element is considered upstream; and all other connections are considered downstream. Reversely, the pipe pointing away is considered downstream; and all others are considered upstream.

Default simulation settings

The default simulation times when user import a GIS files are:

Duration: 24 h
Hydraulic step: 1 h
Pattern start: 0
Pattern step: 1h
Report start: 0
Report step: 1h
Start clock time: 0h


Recategorizing your layers

Q will do its best to interpret the data fed to Qatium, but might not get it right every time. In this case, you can recategorize your layers as what they really are e.g. a pump layer might have be ignored, by recategorizing this layer as a pump layer, Qatium will recreate a model with this layer as a pump data input. To recategorize your layer, simply click on the layer and its category, as shown in the animation below.

Qatium Help: Creating Models - Recategorizing Layers - Importing network - Importing model - GIS - EPANET

Preparing the simulation

In order to successfully run and display simulation result, Qatium performs a series of checks on the resulting network.

Generating the model

Before creating the model from the GIS data inputted in Qatium some final checks are performed:

  • Loop pipes and isolated junctions are ignored
  • Elements not connected to a supply source or a tank are ignored
  • Valves and pumps are converted into linear objects

Pre simulation checks

Once the model has been generated, Qatium checks the executability of the model by simulating the model for a single timestep.

Network levels

The network levels allow fast visualisation on the arterial or distribution part of the network. Visit our navigation help section for more information.

Network level calculation
After calculating the aggregated length for each pipe diameter, the 85th percentile is defined. All pipes with a diameter below the 85th percentile will be considered as part of the distribution level. All pipes with a diameter equal or above, will be considered as part of the arterial network.

Additional consistency checks are performed:
Every distribution pipes connected at both ends to arterial pipes are set to arterial.
Every arterial pipes not connected to an arterial path connecting to a supply source are set to distribution.

Exporting your network

You can export your model from your workspace by clicking on the cloud button in the network tile.
Creating model exporting network epanet - Qatium Help Center

Exporting to EPANET

When you export a network to EPANET, an EPANET input file (.inp) is generated and downloaded to your computer. It will include only the section of the network connected to a supply source. (any disconnected zone will not appear in the file).
The projection of the original files will be used in the export. If EPANET model was imported without any projection, the coordinates will be the same as in the original model.

Are you interested in exporting to other formats? Tell us what format is important to you by submitting your idea or voting for existing ones on our open roadmap.

Did you find this article helpful ?