Creating Models

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?

Import hydrants

You can also specify which junctions represent hydrants in your EPANET model in 3 ways:

by adding H_ as a prefix to the ID of the relevant junctions by adding hydrant to the description of the relevant junctions by adding ;hydrant to the relevant junctions in your INP file
Importing Hydrant - Adding H_ prefix - Qatium Help Center Importing Hydrants - adding hydrant to description - Creating model - Qatium Help Center Importing hydrants - editing INP file - Qatium Help Center

Please note that hydrant can be replaced by one of the following aliases: hydrant, hidrante, fireplug

Import pipe attributes

You can import pipe attributes through the INP file.

Pipe material and installation date

You can provide material and installation date for pipes and it will be shown in the Qatium pop-overs. The information should follow the format described below, in order to be recognized as material and installation date. The information should be added as description in the inp file prior to import. [AbbreviationMaterial]_[InstallationDate] e.g. DI_20220430 Please provide the installation date information with the following format to be considered as a date: YYYYMMDD. If the format matches the format above, the installation date will be displayed in the following format in the pop-overs: YYYY-MM-DD if not the date will be displayed as provided. The accepted abbreviations for pipe material are listed below:

Abbreviation (how material information is stored) Full name (how it’s shown in the pop-overs)
AC Asbestos Cement
CI Cast Iron
CONC Concrete Without Sheet Metal Jacket
COPP Cooper
DI Ductile Iron
DIL Lined Ductile Iron
GI Galvanized Iron
GIL Lined Galvanized Iron
MDPE Medium Density Polyethylene
NA Not available
PE Polyethylene
PE100 Polyethylene 100
PE80 Polyethylene 80
S Steel
SI Spun Iron
SS Stainless Steel
UNK Unknown
UPVC Unplasticized PVC


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 type Recommended file suffix
Junctions _junctions
Pumps _pumps
Sources _sources
Tanks _tanks
Valves _valves
Pipes _pipes
Demand Zone Patterns _patterns
Hydrants _hydrants

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

Interpretation Description Attribute Default value Aliases (Please note that aliases will be prioritized in the order displayed below)
R User asset identifier Id sequential numbers “ID”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
R Pipe length Length calculated from the gis layer “Length”, “Long”, “Longitud”, “Shape__Len”, “Len”
R Pipe diameter Diameter 200 mm “Diameter”, “Diam”, “Diametro”, “D”, “VALVE_SIZE”, “Size”, “PIPE_SIZE”, “DIAM_Ø”, “Ø”, “DIAM_Ø”, “Ø”, “Diameter_m”, “diametro_nominal_dn__mm_”, “NominalDiameter”, “dn_mm”, “dn”
D Roughness coefficient Roughness 148  
R Minor loss coefficient MinorLoss 0 “MinorLoss”, “LossCoeff”
R Status: OPEN, CLOSED, CV Status OPEN “Status”, “IniStatus”, “Estado”
R Controls to rule the element Rule   “Rule”, “Rules”
X Material Material    
X Installation Date InstallDate    
Interpretation Description Attribute Default value Aliases
R User asset identifier Id sequential numbers “Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
R Terrain elevation Elevation Google API “Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
R Diameter Diameter 200 mm “Diameter”, “Diam”, “Diametro”, “D”, “VALVE_SIZE”, “Size”, “PIPE_SIZE”, “DIAM_Ø”, “Ø”, “DIAM_Ø”, “Ø”, “Diameter_m”, “diametro_nominal_dn__mm_”, “NominalDiameter”, “dn_mm”, “dn”
R Valve type Family TCV “Type”, “Tipo”, “Class”, “Category”, “Family”, “Familia”
R Setting Setting 0 “Setting”, “Consigna”
R Minor loss coefficient MinorLoss 0 “MinorLoss”, “LossCoeff”
R STATUS: OPEN, CLOSED, ACTIVE Status OPEN “Status”, “IniStatus”, “Estado”
R Controls to rule the element Rule   “Rule”, “Rules”
R Orientation, which element ids are upstream UpstreamConnections depending on the orientation of the surrounding piping “UP”, “upstream”
Interpretation Description Attribute Default value Aliases
R User asset identifier Id sequential numbers “Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
R Terrain elevation Elevation Google API “Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
R Power Power 1 kW “Power”, “Potencia”, “Potency”, “Output”, “Force”
R Status: OPEN, CLOSED Status OPEN “Status”, “IniStatus”, “Estado”
R Controls to rule the element Rule   “Rule”, “Rules”
R Orientation, which element ids are upstream UpstreamConnections depending on the orientation of the surrounding piping “UP”, “upstream”
Interpretation Description Attribute Default value Aliases
R User asset identifier Id sequential numbers “Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
R Terrain elevation Elevation Google API “Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
D Head (Total elevation) Head 30 m (above ground)  
Interpretation Description Attribute Default value Aliases
R User asset identifier Id sequential numbers “Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
R Terrain elevation Elevation Google API “Elevation”, “Cota”, “COTA_TER”
R Height of base tank Height 0 m “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”
R Initial level InitialLevel 2 m “InitialLevel”, “NivelIni”, “Nivel”, “StartLevel”, “Level”, “IniLevel”
R Minimum level MinimumLevel 0 m “MinimumLevel”, “MinLevel”, “NivMin”, “NivelMin”
R Maximum level MaximumLevel 4 m “MaximumLevel”, “MaxLevel”, “NivMax”, “NivelMax”
R Diameter equivalent Diameter 20 m “Diameter”, “Diam”, “Diametro”, “D”, “VALVE_SIZE”, “Size”, “PIPE_SIZE”, “DIAM_Ø”, “Ø”, “DIAM_Ø”, “Ø”, “Diameter_m”, “diametro_nominal_dn__mm_”, “NominalDiameter”, “dn_mm”, “dn”
R Minimum volume MinimumVolume 0 m3 “MinimumVolume”, “MinVolume”, “VolumenMin”, “VolMin”
Interpretation Description Attribute Default value Aliases
R User asset identifier Id sequential numbers “Id”, “WATHYDRANT”, “WATMAINID”, “WATSERVICE”, “WATVALVEID”, “OBJECTID”, “Name”, “Nombre”
R Terrain elevation Elevation Google API “Elevation”, “Cota”, “Head”, “Height”, “Altura”, “TotalHead”, “COTASOLERA”, “COTA_TER”
R Base demand Demand Calculated 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: LINK 1 CLOSED AT TIME 2, OPEN AT TIME 3

Will be interpreted as: LINK 1 CLOSED AT TIME 2 LINK 1 OPEN AT TIME 3

  • 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: LINK 2 CLOSED AT TIME 2, LINK 2 OPEN AT TIME 3

Will be interpreted as: LINK 2 CLOSED AT TIME 2 LINK 2 OPEN AT TIME 3

  • 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. example:

Link 1 properties: LINK 2 CLOSED AT TIME 2, LINK Qatium OPEN AT TIME 3

Will be interpreted as: LINK 2 CLOSED AT TIME 2 ; [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 of overlapping nodes (nodes with the 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 imported GIS attribute doesn’t pass the validation stage, it will be ignored. Qatium will apply default values to for the discarded values.

Validation rules

Attribute Objects Validation rule
Length Pipe > 0
Diameter Pipes, Valves [15-4000] mm
Equivalent diameter Tanks > 0 m
Minimum volume Tanks > 0 m3
Minimum level Tanks > = 0 and < Maximum level
Maximum level Tanks > 0
Initial level Tanks Min level <= IL <= Max level
Demand Nodes -inf <demand <inf
Minor losses Pipes, Valves >= 0
State Pipes, Valves and Pumps OPEN, CLOSED, CV (Pipes), ACTIVE (Valves)
Power Pumps >0 kW
Setting Valves >= 0 
Type Valves “PRV”, “PSV”, ” PBV “,” FCV “,” TCV “,” GPV “
Name All It 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:

Attribute Object Default value
SI US customary
Diameter Pipes, Valves the mode* or 200 mm the mode* or 7.87402 in
Equivalent Diameter Tanks 20 m 65.6168 ft
Minimum volume Tanks 0 m3 0 ft3
Minimum level Tanks 0 m 0 ft
Maximum level Tanks Minimum level + 4 m Minimum level + 13.1234 ft
Initial level Tanks mean of max & min
Minor losses Pipes, Valves 0
Status Pipes, Valves and Pumps OPEN
Roughness Pipes 148 (HW)
Power Pumps 1 kW
Setting Valves 0
Type Valves TCV

*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 80th 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 pipe connected at both ends to arterial pipes are set to arterial. Every arterial pipe not connected to an arterial path connecting to a supply source is set to distribution.


Import network readings

CSV format

To validate your model, or simply to create excitement in your organisation about your newly created model, you can import readings data through CSV files. The accepted files follow the same rules as when using our reading ingest service.

In order to import reading data, drag and drop your CSV files over the network and you will receive instant feedback of whether the upload has been successful.

Once the readings file is uploaded the network reflects the new data immediately.

Export 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

Export 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.