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.
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. 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 |
![]() |
![]() |
![]() |
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 |
PVC | PVC |
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. 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.
- Filtering: only values in the range 1 to 4000 are accepted
- 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:
- Supply Source
- Tank
- Pump
- Valve
- 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:
- If you do have a junction data layer:
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:
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:
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.
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.
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.
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.