epyt


Nameepyt JSON
Version 1.1.9 PyPI version JSON
download
home_pagehttps://github.com/OpenWaterAnalytics/EPyT
SummaryEPyT: An EPANET-Python Toolkit for Smart Water Network Simulations. The EPyT is inspired by the EPANET-Matlab Toolkit.
upload_time2024-06-25 10:25:09
maintainerNone
docs_urlNone
authorMarios S. Kyriakou
requires_python>=3.8
licenseNone
keywords epanet water networks hydraulics quality simulations emt epanet matlab toolkit
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <a href="http://www.kios.ucy.ac.cy"><img src="https://www.kios.ucy.ac.cy/wp-content/uploads/2021/07/Logotype-KIOS.svg" width="200" height="100"/><a>

[![license](https://img.shields.io/pypi/l/epyt.svg)](https://github.com/KIOS-Research/EPyT/blob/main/LICENSE.md)
[![pypi](https://img.shields.io/pypi/v/epyt.svg)](https://pypi.org/project/epyt/)
[![Downloads](https://static.pepy.tech/badge/epyt)](https://pepy.tech/project/epyt)
[![Downloads](https://static.pepy.tech/badge/epyt/month)](https://pepy.tech/project/epyt)
[![build](https://github.com/OpenWaterAnalytics/EPyT/actions/workflows/build_tests.yml/badge.svg)](https://github.com/OpenWaterAnalytics/EPyT/actions/workflows/build_tests.yml)
[![Documentation Status](https://readthedocs.org/projects/epanet-python-toolkit-epyt/badge/?version=latest)](https://epanet-python-toolkit-epyt.readthedocs.io/en/latest/?badge=latest)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.05947/status.svg)](https://doi.org/10.21105/joss.05947)


# EPANET Python Toolkit (EPyT)

The `EPANET-Python Toolkit` is an open-source software, originally developed by the [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/) which operates within the Python environment, for providing a programming interface for the latest version of [EPANET](https://github.com/OpenWaterAnalytics/epanet), a hydraulic and quality modeling software created by the US EPA, with Python, a  high-level technical computing software. The goal of the EPANET Python Toolkit is to serve as a common programming framework for research and development in the growing field of smart water networks.

The `EPANET-Python Toolkit` features easy to use commands/wrappers for viewing, modifying, simulating and plotting results produced by the EPANET libraries.  

For support, please use the OWA community forum : http://community.wateranalytics.org/

## Table of Contents

- [EPANET Python Toolkit (EPyT)](#epanet-python-toolkit-epyt)
- [How to cite](#how-to-cite)
- [Requirements](#requirements)
- [How to install](#how-to-install)
- [How to use the Toolkit](#how-to-use-the-toolkit)
- [How to fix/report bugs](#how-to-fixreport-bugs)
- [Licenses](#licenses)
- [Contributors](#contributors)
- [Contributing](#contributing)
- [Recommendation](#recommendation)
- [List of Python Class Functions](#list-of-python-class-functions)
- [List of EPANET 2.2 Functions](#list-of-epanet-22-functions)
  
## How to cite 

Kyriakou, M. S., Demetriades, M., Vrachimis, S. G., Eliades, D. G., & Polycarpou, M. M. (2023). EPyT: An EPANET-Python Toolkit for Smart Water Network Simulations. Journal of Open Source Software, 8(92), 5947. https://doi.org/10.21105/joss.05947

```
@article{Kyriakou2023,
author = {Kyriakou, Marios S. and Demetriades, Marios and Vrachimis, Stelios G. and Eliades, Demetrios G. and Polycarpou, Marios M.},
doi = {10.21105/joss.05947},
journal = {Journal of Open Source Software},
month = dec,
number = {92},
pages = {5947},
title = {{EPyT: An EPANET-Python Toolkit for Smart Water Network Simulations}},
url = {https://joss.theoj.org/papers/10.21105/joss.05947},
volume = {8},
year = {2023}
}
```

&uparrow; [Back to top](#table-of-contents)

## Requirements

* Python >=3.8
* Windows, OSX or Linux
* [EPANET 2.2](https://github.com/OpenWaterAnalytics/epanet)

Linux: `sudo cp libepanet2.so /lib/x86_64-linux-gnu/libepanet.so`

&uparrow; [Back to top](#table-of-contents)

## How to install

**Environments -> base (root) -> open terminal -> pip install epyt**

* PyPI: <b>pip install epyt</b>

&uparrow; [Back to top](#table-of-contents)

## How to use the Toolkit

**Minimum Example:**

```python
>>> from epyt import epanet
>>> 
>>> d = epanet('Net1.inp')
>>> d.getNodeCount()
>>> d.getNodeElevations()
``` 

**Minumun Example using custom Library:**
```python
>>> from epyt import epanet
>>>
>>>epanetlib=os.path.join(os.getcwd(), 'epyt','libraries','win','epanet2.dll')
>>>msxlib=os.path.join(os.getcwd(), 'epyt','libraries','win','epanetmsx.dll')
>>>d = epanet(inpname, customlib=epanetlib)
>>>d.loadMSXFile(msxname, customMSXlib=msxlib)
``` 

**More examples:** 

[https://github.com/KIOS-Research/EPYT/tree/main/epyt/examples](https://github.com/KIOS-Research/EPYT/tree/main/epyt/examples#readme)

&uparrow; [Back to top](#table-of-contents)

## How to fix/report bugs

To fix a bug `Fork` the `EPyT`, `Edit` the code and make the appropriate change, and then `Pull` it so that we evaluate it. 

Keep in mind that some bugs may exist in the `EPANET` libraries, in case you are not receiving the expected results.

&uparrow; [Back to top](#table-of-contents)

## Licenses

* `EPANET`: Public Domain
* `EPANET-Python Toolkit (EPyT)`: EUPL

&uparrow; [Back to top](#table-of-contents)

## Contributors

* Marios Kyriakou, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)
* Marios Demetriades, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)
* Stelios Vrachimis, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)
* Demetrios Eliades, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)

The `EPyT` is based/inspired on the [EPANET-Matlab Toolkit](https://github.com/OpenWaterAnalytics/EPANET-Matlab-Toolkit).

## Contributing
If you want to contribute, please check out our [Code of Conduct](https://github.com/KIOS-Research/EPyT/blob/dev/CODE_OF_CONDUCT.md). Everyone is welcome to contribute whether reporting a new [issue](https://github.com/KIOS-Research/EPyT/issues), suggesting a new feature, or writing code. If you want to contribute code, you can create a new fork in the repo to your own account. Make your commits on your dev branch (based on dev) and when you are finished then you can create a [pull request](https://github.com/KIOS-Research/EPyT/pulls) to test the code and discuss your changes.

## Recommendation

* Install Anaconda<br>
* Run `EPyT` with [Spyder IDE](https://www.spyder-ide.org/)
* Run `EPyT` with [PyCharm](https://www.jetbrains.com/pycharm/)

*Settings on Spyder IDE*

* Tools -> Preferrences
![image](https://user-images.githubusercontent.com/2945956/154067349-3aed266f-3a23-4573-8b93-db0b4f224964.png)
* View -> Window layouts -> Matlab layout
* Enable interactive plot on matlibplot
  : Tools -> Preferences -> IPython console -> Graphics -> Graphics backend -> Backend: Automatic

&uparrow; [Back to top](#table-of-contents)

## List of Python Class Functions

| Function                          |Description|
|-----------------------------------|----------|
| addControls                       |Adds a new simple control|
| addCurve                          |Adds a new curve appended to the end of the existing curves|
| addLinkPipe                       |Adds a new pipe|
| addLinkPipeCV                     |Adds a new control valve pipe|
| addLinkPump                       |Adds a new pump|
| addLinkValveFCV                   |Adds a new FCV valve|
| addLinkValveGPV                   |Adds a new GPV valve|
| addLinkValvePBV                   |Adds a new PBV valve|
| addLinkValvePRV                   |Adds a new PRV valve|
| addLinkValvePSV                   |Adds a new PSV valve|
| addLinkValveTCV                   |Adds a new TCV valve|
| addNodeJunction                   |Adds a new junction|
| addNodeJunctionDemand             |Adds a new demand to a junction given the junction index, base demand, demand time pattern and demand category name|
| addNodeReservoir                  |Adds a new reservoir|
| addNodeTank                       |Adds a new tank|
| addPattern                        |Adds a new time pattern to the network|
| addRules                          |Adds a new rule-based control to a project|
| appRotateNetwork                  |Rotates the network by theta degrees counter-clockwise|
| appShiftNetwork                   |Shifts the network|
| clearReport                       |Clears the contents of a project's report file|
| closeHydraulicAnalysis            |Closes the hydraulic analysis system, freeing all allocated memory|
| closeNetwork                      |Closes down the Toolkit system|
| closeQualityAnalysis              |Closes the water quality analysis system, freeing all allocated memory|
| copyReport                        |Copies the current contents of a project's report file to another file|
| createProject                     |Creates a new epanet projec|
| deleteAllTemps                    |Delete all temporary files (.inp, .bin) created in networks folder|
| deleteControls                    |Deletes an existing simple control|
| deleteCurve                       |Deletes a data curve from a project|
| deleteLink                        |Deletes a link|
| deleteNode                        |Deletes nodes|
| deletePattern                     |Deletes a time pattern from a project|
| deletePatternsAll                 |Deletes all time patterns from a project|
| deleteProject                     |Deletes the epanet project|
| deleteRules                       |Deletes an existing rule-based control given it's index
| getAdjacencyMatrix                |Compute the adjacency matrix (connectivity graph) considering the flows, using mean flow|
| getAllAttributes                  |Get all attributes of a given Python object|
| getCMDCODE                        |Retrieves the CMC code|
| getComputedHydraulicTimeSeries    |Computes hydraulic simulation and retrieves all time-series
| getComputedQualityTimeSeries      |Computes Quality simulation and retrieves all or some time-series
| getComputedTimeSeries             |Run analysis with binary fil
| getConnectivityMatrix             |Retrieve the Connectivity Matrix of the networ
| getControlRulesCount              |Retrieves the number of controls
| getControls                       |Retrieves the parameters of all control statements
| getCounts                         |Retrieves the number of network components
| getCurveComment                   |Retrieves the comment string of a curve
| getCurveCount                     |Retrieves the number of curves
| getCurveIndex                     |Retrieves the index of a curve with specific ID
| getCurveLengths                   |Retrieves number of points in a curve
| getCurveNameID                    |Retrieves the IDs of curves
| getCurveType                      |Retrieves the curve-type for all curves
| getCurveTypeIndex                 |Retrieves the curve-type index for all curves
| getCurveValue                     |Retrieves the X, Y values of points of curves
| getCurvesInfo                     |Retrieves all the info of curves
| getDemandModel                    |Retrieves the type of demand model in use and its parameters
| getENfunctionsImpemented          |Retrieves the epanet functions that have been developed
| getError                          |Retrieves the text of the message associated with a particular error or warning code
| getFlowUnits                      |Retrieves flow units used to express all flow rates
| getLibFunctions                   |Retrieves the functions of DLL
| getLinkActualQuality              |Retrieves the current computed link quality (read only)
| getLinkBulkReactionCoeff          |Retrieves the value of all link bulk chemical reaction coefficient
| getLinkComment                    |Retrieves the comment string assigned to the link object
| getLinkCount                      |Retrieves the number of links
| getLinkDiameter                   |Retrieves the value of link diameters
| getLinkEnergy                     |Retrieves the current computed pump energy usage (read only)
| getLinkFlows                      |Retrieves the current computed flow rate (read only)
| getLinkHeadloss                   |Retrieves the current computed head loss (read only)
| getLinkIndex                      |Retrieves the indices of all links, or the indices of an ID set of links
| getLinkInitialSetting             |Retrieves the value of all link roughness for pipes or initial speed for pumps or initial setting for valves
| getLinkInitialStatus              |Retrieves the value of all link initial status
| getLinkLength                     |Retrieves the value of link lengths
| getLinkMinorLossCoeff             |Retrieves the value of link minor loss coefficients
| getLinkNameID                     |Retrieves the ID label(s) of all links, or the IDs of an index set of links
| getLinkNodesIndex                 |Retrieves the indexes of the from/to nodes of all links
| getLinkPipeCount                  |Retrieves the number of pipes
| getLinkPipeIndex                  |Retrieves the pipe indices
| getLinkPipeNameID                 |Retrieves the pipe ID
| getLinkPumpCount                  |Retrieves the number of pumps
| getLinkPumpECost                  |Retrieves the pump average energy price
| getLinkPumpECurve                 |Retrieves the pump efficiency v
| getLinkPumpEPat                   |Retrieves the pump energy price time pattern index
| getLinkPumpEfficiency             |Retrieves the current computed pump efficiency (read only)
| getLinkPumpHCurve                 |Retrieves the pump head v
| getLinkPumpHeadCurveIndex         |Retrieves the index of a head curve for all pumps
| getLinkPumpIndex                  |Retrieves the pump indices
| getLinkPumpNameID                 |Retrieves the pump ID
| getLinkPumpPatternIndex           |Retrieves the pump speed time pattern index
| getLinkPumpPatternNameID          |Retrieves pump pattern name ID
| getLinkPumpPower                  |Retrieves the pump constant power rating (read only)
| getLinkPumpState                  |Retrieves the current computed pump state (read only) (see @ref EN_PumpStateType)
| getLinkPumpSwitches               |Retrieves the number of pump switches
| getLinkPumpType                   |Retrieves the type of a pump
| getLinkPumpTypeCode               |Retrieves the code of type of a pump
| getLinkQuality                    |Retrieves the value of link quality
| getLinkResultIndex                |Retrieves the order in which a link's results were saved to an output file
| getLinkRoughnessCoeff             |Retrieves the value of link roughness coefficient
| getLinkSettings                   |Retrieves the current computed value of all link roughness for pipes or actual speed for pumps or actual setting for valves
| getLinkStatus                     |Retrieves the current link status (see @ref EN_LinkStatusType) (0 = closed, 1 = open)
| getLinkType                       |Retrieves the link-type code for all links
| getLinkTypeIndex                  |Retrieves the link-type code for all links
| getLinkValveCount                 |Retrieves the number of valves
| getLinkValveIndex                 |Retrieves the valve indices
| getLinkValveNameID                |Retrieves the valve ID
| getLinkVelocity                   |Retrieves the current computed flow velocity (read only)
| getLinkVertices                   |Retrieves the coordinate's of a vertex point assigned to a link
| getLinkVerticesCount              |Retrieves the number of internal vertex points assigned to a link
| getLinkWallReactionCoeff          |Retrieves the value of all pipe wall chemical reaction coefficient
| getLinksInfo                      |Retrieves all link info
| getNetworksDatabase               |Retrieves all EPANET Input Files from EPyT database
| getNodeActualDemand               |Retrieves the computed value of all node actual demands
| getNodeActualDemandSensingNodes   |Retrieves the computed demand values at some sensing nodes
| getNodeActualQuality              |Retrieves the computed values of the actual quality for all nodes
| getNodeActualQualitySensingNodes  |Retrieves the computed quality values at some sensing node
| getNodeBaseDemands                |Retrieves the value of all node base demands
| getNodeComment                    |Retrieves the comment string assigned to the node object
| getNodeCoordinates                
| getNodeCount                      |Retrieves the number of nodes
| getNodeDemandCategoriesNumber     |Retrieves the value of all node base demands categorie number
| getNodeDemandDeficit              |Retrieves the amount that full demand is reduced under PDA
| getNodeDemandPatternIndex         |Retrieves the value of all node base demands pattern index
| getNodeDemandPatternNameID        |Retrieves the value of all node base demands pattern name ID
| getNodeElevations                 |Retrieves the value of all node elevations
| getNodeEmitterCoeff               |Retrieves the value of all node emmitter coefficients
| getNodeHydraulicHead              |Retrieves the computed values of all node hydraulic heads
| getNodeIndex                      |Retrieves the indices of all nodes or some nodes with a specified ID
| getNodeInitialQuality             |Retrieves the value of all node initial quality
| getNodeJunctionCount              |Retrieves the number of junction nodes
| getNodeJunctionDemandIndex        |Retrieves the demand index of the junctions
| getNodeJunctionDemandName         |Gets the name of a node's demand category
| getNodeJunctionIndex              |Retrieves the indices of junctions
| getNodeJunctionNameID             |Retrieves the junction ID label
| getNodeMassFlowRate               |Retrieves the computed mass flow rates per minute of chemical sources for all nodes
| getNodeNameID                     |Retrieves the ID label of all nodes or some nodes with a specified index
| getNodePatternIndex               |Retrieves the value of all node demand pattern indices
| getNodePressure                   |Retrieves the computed values of all node pressures
| getNodeReservoirCount             |Retrieves the number of Reservoirs
| getNodeReservoirIndex             |Retrieves the indices of reservoirs
| getNodeReservoirNameID            |Retrieves the reservoir ID label
| getNodeResultIndex                |Retrieves the order in which a node's results were saved to an output file
| getNodeSourcePatternIndex         |Retrieves the value of all node source pattern index
| getNodeSourceQuality              |Retrieves the value of all node source quality
| getNodeSourceType                 |Retrieves the value of all node source type
| getNodeSourceTypeIndex            |Retrieves the value of all node source type index
| getNodeTankBulkReactionCoeff      |Retrieves the tank bulk rate coefficient
| getNodeTankCanOverFlow            |Retrieves the tank can overflow (= 1) or not (= 0)
| getNodeTankCount                  |Retrieves the number of Tanks
| getNodeTankData                   |Retrieves a group of properties for a tank
| getNodeTankDiameter               |Retrieves the tank diameters
| getNodeTankIndex                  |Retrieves the tank indices
| getNodeTankInitialLevel           |Retrieves the value of all tank initial water levels
| getNodeTankInitialWaterVolume     |Retrieves the tank initial water volume
| getNodeTankMaximumWaterLevel      |Retrieves the tank maximum water level
| getNodeTankMaximumWaterVolume     |Retrieves the tank maximum water volume
| getNodeTankMinimumWaterLevel      |Retrieves the tank minimum water level
| getNodeTankMinimumWaterVolume     |Retrieves the tank minimum water volume
| getNodeTankMixZoneVolume          |Retrieves the tank mixing zone volume
| getNodeTankMixingFraction         |Retrieves the tank Fraction of total volume occupied by the inlet/outlet zone in a 2-compartment tank
| getNodeTankMixingModelCode        |Retrieves the tank mixing model code
| getNodeTankMixingModelType        |Retrieves the tank mixing model type
| getNodeTankNameID                 |Retrieves the tank IDs
| getNodeTankReservoirCount         |Retrieves the number of tanks
| getNodeTankVolume                 |Retrieves the tank volume
| getNodeTankVolumeCurveIndex       |Retrieves the tank volume curve index
| getNodeType                       |Retrieves the node-type code for all nodes
| getNodeTypeIndex                  |Retrieves the node-type code for all nodes
| getNodesConnectingLinksID         |Retrieves the id of the from/to nodes of all links
| getNodesConnectingLinksIndex      |Retrieves the indexes of the from/to nodes of all links
| getNodesInfo                      |Retrieves nodes info (elevations, demand patterns, emmitter coeff, initial quality, source quality, source pattern index, source type index, node type index)
| getOptionsAccuracyValue           |Retrieves the total normalized flow change for hydraulic convergence
| getOptionsCheckFrequency          |Retrieves the frequency of hydraulic status checks
| getOptionsDampLimit               |Retrieves the accuracy level where solution damping begins
| getOptionsDemandCharge            |Retrieves the energy charge per maximum KW usage
| getOptionsEmitterExponent         |Retrieves the power exponent for the emmitters
| getOptionsExtraTrials             |Retrieves the extra trials allowed if hydraulics don't converge
| getOptionsFlowChange              |Retrieves the maximum flow change for hydraulic convergence
| getOptionsGlobalEffic             |Retrieves the global efficiency for pumps(percent)
| getOptionsGlobalPattern           |Retrieves the index of the global energy price pattern
| getOptionsGlobalPrice             |Retrieves the global average energy price per kW-Hour
| getOptionsHeadError               |Retrieves the maximum head loss error for hydraulic convergence
| getOptionsHeadLossFormula         |Retrieves the headloss formula
| getOptionsLimitingConcentration   |Retrieves the limiting concentration for growth reactions
| getOptionsMaxTrials               |Retrieves the maximum hydraulic trials allowed for hydraulic convergence
| getOptionsMaximumCheck            |Retrieves the maximum trials for status checking
| getOptionsPatternDemandMultiplier |Retrieves the global pattern demand multiplier
| getOptionsPipeBulkReactionOrder   |Retrieves the bulk water reaction order for pipes
| getOptionsPipeWallReactionOrder   |Retrieves the wall reaction order for pipes (either 0 or 1)
| getOptionsQualityTolerance        |Retrieves the water quality analysis tolerance
| getOptionsSpecificDiffusivity     |Retrieves the specific diffusivity (relative to chlorine at 20 deg C)
| getOptionsSpecificGravity         |Retrieves the specific gravity
| getOptionsSpecificViscosity       |Retrieves the specific viscosity
| getOptionsTankBulkReactionOrder   |Retrieves the bulk water reaction order for tanks
| getPattern                        |Retrieves the multiplier factor for all patterns and all times
| getPatternAverageValue            |Retrieves the average values of all the time patterns
| getPatternComment                 |Retrieves the comment string assigned to the pattern object
| getPatternCount                   |Retrieves the number of patterns
| getPatternIndex                   |Retrieves the index of all or some time patterns given their IDs
| getPatternLengths                 |Retrieves the number of time periods in all or some time patterns
| getPatternNameID                  |Retrieves the ID label of all or some time patterns indices
| getPatternValue                   |Retrieves the multiplier factor for a certain pattern and time
| getQualityCode                    |Retrieves the code of water quality analysis type
| getQualityInfo                    |Retrieves quality analysis information (type, chemical name, units, trace node ID)
| getQualityTraceNodeIndex          |Retrieves the trace node index of water quality analysis type
| getQualityType                    |Retrieves the type of water quality analysis type
| getRuleCount                      |Retrieves the number of rules
| getRuleID                         |Retrieves the ID name of a rule-based control given its index
| getRuleInfo                       |Retrieves summary information about a rule-based control given it's index
| getRules                          |Retrieves the rule - based control statements
| getStatistic                      |Returns error code
| getTimeHTime                      |Retrieves the elapsed time of current hydraulic solution
| getTimeHaltFlag                   |Retrieves the number of halt flag indicating if the simulation was halted
| getTimeHydraulicStep              |Retrieves the value of the hydraulic time step
| getTimeNextEvent                  |Retrieves the shortest time until a tank becomes empty or full
| getTimeNextEventTank              |Retrieves the index of tank with shortest time to become empty or full
| getTimePatternStart               |Retrieves the value of pattern start time
| getTimePatternStep                |Retrieves the value of the pattern time step
| getTimeQTime                      |Retrieves the elapsed time of current quality solution
| getTimeQualityStep                |Retrieves the value of the water quality time step
| getTimeReportingPeriods           |Retrieves the number of reporting periods saved to the binary
| getTimeReportingStart             |Retrieves the value of the reporting start time
| getTimeReportingStep              |Retrieves the value of the reporting time step
| getTimeRuleControlStep            |Retrieves the time step for evaluating rule-based controls
| getTimeSimulationDuration         |Retrieves the value of simulation duration
| getTimeStartTime                  |Retrieves the simulation starting time of day
| getTimeStatisticsIndex            |Retrieves the index of the type of time series post-processing
| getTimeStatisticsType             |Retrieves the type of time series post-processing
| getTitle                          |Retrieves the title lines of the project
| getUnits                          |Retrieves the Units of Measurement
| getVersion                        |Retrieves the current EPANET version of DLL
| initializeEPANET                  |Initializes an EPANET project that isn't opened with an input fil
| initializeHydraulicAnalysis       |Initializes storage tank levels, link status and settings, and the simulation clock time prior to running a hydraulic analysis
| initializeQualityAnalysis         |Initializes water quality and the simulation clock time prior to running a water quality analysis
| loadEPANETFile                    |Load epanet file when use bin functions
| loadMSXEPANETFile                 |Re-Load EPANET MSX file - parfor
| nextHydraulicAnalysisStep         |Determines the length of time until the next hydraulic event occurs in an extended period simulation
| nextQualityAnalysisStep           |Advances the water quality simulation to the start of the next hydraulic time period
| openAnyInp                        |Open as on matlab editor any EPANET input file using built function open
| openCurrentInp                    |Opens EPANET input file who is loade
| openHydraulicAnalysis             |Opens the hydraulics analysis system
| openQualityAnalysis               |Opens the water quality analysis system
| plot                              |Plot Network, show all components, plot pressure/flow/elevation|
| plot_close                        |Close all open figures|
| plot_save                         |Save plot|
| plot_show                         |Show plot|
| reloadNetwork                     |Reloads the Network (ENopen)
| runEPANETexe                      |Runs epanet .exe file|
| runHydraulicAnalysis              |Runs a single period hydraulic analysis, retrieving the current simulation clock time t
| runQualityAnalysis                |Makes available the hydraulic and water quality results that occur at the start of the next time period of a water quality analysis, where the start of the period is returned in t
| runsCompleteSimulation            |Runs a complete hydraulic and water simulation to create binary & report files with name: [NETWORK_temp.txt], [NETWORK_temp.bin] OR you can use argument to runs a complete simulation via self.api.en_epane
| saveHydraulicFile                 |Saves the current contents of the binary hydraulics file to a file
| saveHydraulicsOutputReportingFile |Transfers results of a hydraulic simulation from the binary Hydraulics file to the binary Output file, where results are only reported at uniform reporting intervals
| saveInputFile                     |Writes all current network input data to a file using the format of an EPANET input file
| setCMDCODE                        |Sets the CMC code|
| setControls                       |Sets the parameters of a simple control statement
| setCurve                          |Sets x, y values for a specific curve
| setCurveComment                   |Sets the comment string of a curve
| setCurveNameID                    |Sets the name ID of a curve given it's index and the new ID
| setCurveValue                     |Sets x, y point for a specific point number and curve
| setDemandModel                    |Sets the type of demand model to use and its parameters
| setFlowUnitsAFD                   |Sets flow units to AFD(Acre-Feet per Day)
| setFlowUnitsCFS                   |Sets flow units to CFS(Cubic Feet per Second)
| setFlowUnitsCMD                   |Sets flow units to CMD(Cubic Meters per Day)
| setFlowUnitsCMH                   |Sets flow units to CMH(Cubic Meters per Hour)
| setFlowUnitsGPM                   |Sets flow units to GPM(Gallons Per Minute)
| setFlowUnitsIMGD                  |Sets flow units to IMGD(Imperial Million Gallons per Day)
| setFlowUnitsLPM                   |Sets flow units to LPM(Liters Per Minute)
| setFlowUnitsLPS                   |Sets flow units to LPS(Liters Per Second)
| setFlowUnitsMGD                   |Sets flow units to MGD(Million Gallons per Day)
| setFlowUnitsMLD                   |Sets flow units to MLD(Million Liters per Day)
| setLinkBulkReactionCoeff          |Sets the value of bulk chemical reaction coefficient
| setLinkComment                    |Sets the comment string assigned to the link object
| setLinkDiameter                   |Sets the values of diameters
| setLinkInitialSetting             |Sets the values of initial settings, roughness for pipes or initial speed for pumps or initial setting for valves
| setLinkInitialStatus              |Sets the values of initial status
| setLinkLength                     |Sets the values of lengths
| setLinkMinorLossCoeff             |Sets the values of minor loss coefficient
| setLinkNameID                     |Sets the ID name for links
| setLinkNodesIndex                 |Sets the indexes of a link's start- and end-nodes
| setLinkPipeData                   |Sets a group of properties for a pipe
| setLinkPumpECost                  |Sets the pump average energy price
| setLinkPumpECurve                 |Sets the pump efficiency v
| setLinkPumpEPat                   |Sets the pump energy price time pattern index
| setLinkPumpHCurve                 |Sets the pump head v
| setLinkPumpHeadCurveIndex         |Sets the curves index for pumps index|
| setLinkPumpPatternIndex           |Sets the pump speed time pattern index
| setLinkPumpPower                  |Sets the power for pumps
| setLinkRoughnessCoeff             |Sets the values of roughness coefficient
| setLinkSettings                   |Sets the values of current settings, roughness for pipes or initial speed for pumps or initial setting for valves
| setLinkStatus                     |Sets the values of current status for links
| setLinkTypePipe                   |Sets the link type pipe for a specified link
| setLinkTypePipeCV                 |Sets the link type cvpipe(pipe with check valve) for a specified link
| setLinkTypePump                   |Sets the link type pump for a specified link
| setLinkTypeValveFCV               |Sets the link type valve FCV(flow control valve) for a specified link
| setLinkTypeValveGPV               |Sets the link type valve GPV(general purpose valve) for a specified link
| setLinkTypeValvePBV               |Sets the link type valve PBV(pressure breaker valve) for a specified link
| setLinkTypeValvePRV               |Sets the link type valve PRV(pressure reducing valve) for a specified link
| setLinkTypeValvePSV               |Sets the link type valve PSV(pressure sustaining valve) for a specified link
| setLinkTypeValveTCV               |Sets the link type valve TCV(throttle control valve) for a specified link
| setLinkVertices                   |Assigns a set of internal vertex points to a link
| setLinkWallReactionCoeff          |Sets the value of wall chemical reaction coefficient
| setNodeBaseDemands                |Sets the values of demand for nodes
| setNodeComment                    |Sets the comment string assigned to the node object
| setNodeCoordinates                |Sets node coordinates
| setNodeDemandPatternIndex         |Sets the values of demand time pattern indices
| setNodeElevations                 |Sets the values of elevation for nodes
| setNodeEmitterCoeff               |Sets the values of emitter coefficient for nodes
| setNodeInitialQuality             |Sets the values of initial quality for nodes
| setNodeJunctionData               |Sets a group of properties for a junction node
| setNodeJunctionDemandName         |Assigns a name to a node's demand category
| setNodeNameID                     |Sets the ID name for nodes
| setNodeSourcePatternIndex         |Sets the values of quality source pattern index
| setNodeSourceQuality              |Sets the values of quality source strength
| setNodeSourceType                 |Sets the values of quality source type
| setNodeTankBulkReactionCoeff      |Sets the tank bulk reaction coefficient
| setNodeTankCanOverFlow            |Sets the tank can-overflow (= 1) or not (= 0)
| setNodeTankData                   |Sets a group of properties for a tank
| setNodeTankDiameter               |Sets the diameter value for tanks
| setNodeTankInitialLevel           |Sets the values of initial level for tanks
| setNodeTankMaximumWaterLevel      |Sets the maximum water level value for tanks
| setNodeTankMinimumWaterLevel      |Sets the minimum water level value for tanks
| setNodeTankMinimumWaterVolume     |Sets the minimum water volume value for tanks
| setNodeTankMixingFraction         |Sets the tank mixing fraction of total volume occupied by the inlet/outlet zone in a 2-compartment tank
| setNodeTankMixingModelType        |Sets the mixing model type value for tanks
| setNodeTypeJunction               |Transforms a node to JUNCTION The new node keeps the id,coordinates and elevation of the deleted on
| setNodeTypeReservoir              |Transforms a node to RESERVOIR The new node keeps the id,coordinates and elevation of the deleted on
| setNodeTypeTank                   |Transforms a node to TANK The new node keeps the id,coordinates and elevation of the deleted on
| setNodesConnectingLinksID         |Sets the IDs of a link's start- and end-nodes
| setOptionsAccuracyValue           |Sets the total normalized flow change for hydraulic convergence
| setOptionsCheckFrequency          |Sets the frequency of hydraulic status checks
| setOptionsDampLimit               |Sets the accuracy level where solution damping begins
| setOptionsDemandCharge            |Sets the energy charge per maximum KW usage
| setOptionsEmitterExponent         |Sets the power exponent for the emmitters
| setOptionsExtraTrials             |Sets the extra trials allowed if hydraulics don't converge
| setOptionsFlowChange              |Sets the maximum flow change for hydraulic convergence
| setOptionsGlobalEffic             |Sets the global efficiency for pumps(percent)
| setOptionsGlobalPattern           |Sets the global energy price pattern
| setOptionsGlobalPrice             |Sets the global average energy price per kW-Hour
| setOptionsHeadError               |Sets the maximum head loss error for hydraulic convergence
| setOptionsHeadLossFormula         |Sets the headloss formula
| setOptionsLimitingConcentration   |Sets the limiting concentration for growth reactions
| setOptionsMaxTrials               |Sets the maximum hydraulic trials allowed for hydraulic convergence
| setOptionsMaximumCheck            |Sets the maximum trials for status checking
| setOptionsPatternDemandMultiplier |Sets the global pattern demand multiplier
| setOptionsPipeBulkReactionOrder   |Sets the bulk water reaction order for pipes
| setOptionsPipeWallReactionOrder   |Sets the wall reaction order for pipes (either 0 or 1)
| setOptionsQualityTolerance        |Sets the water quality analysis tolerance
| setOptionsSpecificDiffusivity     |Sets the specific diffusivity (relative to chlorine at 20 deg C)
| setOptionsSpecificGravity         |Sets the specific gravity
| setOptionsSpecificViscosity       |Sets the specific viscosity
| setOptionsTankBulkReactionOrder   |Sets the bulk water reaction order for tanks
| setPattern                        |Sets all of the multiplier factors for a specific time pattern
| setPatternComment                 |Sets the comment string assigned to the pattern object
| setPatternMatrix                  |Sets all of the multiplier factors for all time patterns
| setPatternNameID                  |Sets the name ID of a time pattern given it's index and the new ID
| setPatternValue                   |Sets the multiplier factor for a specific period within a time pattern
| setQualityType                    |Sets the type of water quality analysis called for
| setReport                         |Issues a report formatting command
| setReportFormatReset              |Resets a project's report options to their default values
| setReportStatus                   |Sets the level of hydraulic status reporting
| setRuleElseAction                 |Sets rule - based control else actions
| setRulePremise                    |Sets the premise of a rule - based control
| setRulePremiseObejctNameID        |Sets the ID of an object in a premise of a rule-based control
| setRulePremiseStatus              |Sets the status being compared to in a premise of a rule-based control
| setRulePremiseValue               |Sets the value being compared to in a premise of a rule-based control
| setRulePriority                   |Sets rule - based control priority
| setRuleThenAction                 |Sets rule - based control then actions
| setRules                          |Sets a rule - based control
| setTimeHydraulicStep              |Sets the hydraulic time step
| setTimePatternStart               |Sets the time when time patterns begin
| setTimePatternStep                |Sets the time pattern step
| setTimeQualityStep                |Sets the quality time step
| setTimeReportingStart             |Sets the time when reporting starts
| setTimeReportingStep              |Sets the reporting time step
| setTimeRuleControlStep            |Sets the rule-based control evaluation time step
| setTimeSimulationDuration         |Sets the simulation duration (in seconds)
| setTimeStatisticsType             |Sets the statistic type
| setTitle                          |Sets the title lines of the project
| solveCompleteHydraulics           |Runs a complete hydraulic simulation with results for all time periods written to the binary Hydraulics file
| solveCompleteQuality              |Runs a complete water quality simulation with results at uniform reporting intervals written to EPANET's binary Output file
| splitPipe                         |Splits a pipe, creating two new pipes and adds a junction/node in between
| stepQualityAnalysisTimeLeft       |Advances the water quality simulation one water quality time step
| unload                            |unload library and close the EPANET Toolkit system
| useHydraulicFile                  |Uses the contents of the specified file as the current binary hydraulics file
| writeLineInReportFile             |Writes a line of text to the EPANET report file
| writeReport                       |Writes a formatted text report on simulation results to the Report file
| <b> MSX Functions </b>            
| loadMSXFile                       |Opens the EPANET-MSX toolkit system|
| unloadMSX                         |Closes the EPANET-MSX toolkit system|
| addMSXPattern                     |Adds a new, empty MSX source time pattern to the project|
| writeMSXFile                      |Write a new MSX file|
| initializeMSXQualityAnalysis      |Initializes the MSX system before solving for water quality results in step-wise fashion|
| getMethods                        |Returns all methods of epanet|
| getMSXComputedQualitySpecie       |Retrieves the quality values for specific specie (e.g getMSXComputedQualitySpecie('CL2'))|
| getMSXComputedLinkQualitySpecie   |Returns the link quality for specific specie|
| getMSXComputedNodeQualitySpecie   |Returns the node quality for specific specie|
| getMSXComputedQualityNode         |Retrieves the concentration of a chemical species at a specific node of the network at the current simulation time step.|
| stepMSXQualityAnalysisTimeLeft    |Advances the water quality solution through a single water quality time step when performing a step-wise simulation|
| saveMSXFile                       |Saves the data associated with the current MSX project into a new MSX input file|
| saveMSXQualityFile                |Saves water quality results computed for each node, link and reporting time period to a named binary file|
| getMSXSourcePatternIndex          |Retrieves the value of all node source pattern index|
| getMSXLinkInitqualValue           |Retrieves the initial concentration of chemical species assigned to links of the pipe network|
| getMSXNodeInitqualValue           |Retrieves the initial concentration of chemical species assigned to nodes|
| getMSXSourceLevel                 |Retrieves the value of all nodes source level|
| getMSXSourceType                  |Retrieves the value of all node source type|
| getMSXSourceNodeNameID            |Retrieves the ID label of all nodes|
| getMSXSpeciesCount                |Retrieves the number of species|
| getMSXSpeciesNameID               |Retrieves the species IDs|
| getMSXSpeciesIndex                |Retrieves the indices of species|
| getMSXSpeciesType                 |Retrieves the type of all species (BULK/WALL)|
| getMSXSpeciesUnits                |Retrieves the species mass units|
| getMSXSpeciesATOL                 |Retrieves the atol|
| getMSXSpeciesRTOL                 |Retrieves the rtol|
| getMSXSpeciesConcentration        |Retrieves the concentration of chemical species for nodes and links|
| getMSXConstantsCount              |Retrieves the number of constants|
| getMSXConstantsNameID             |Retrieves the ID name of constants (given its internal index number)|
| getMSXConstantsIndex              |Retrieves the internal index number of constants (given its ID name)|
| getMSXPattern                     |Retrieves the multiplier factor for all patterns and all times|
| getMSXPatternsCount               |Retrieves the number of patterns|
| getMSXPatternValue                |Retrieves the multiplier at a specific time period for a given source time pattern|
| getMSXPatternsNameID              |Retrieves the patterns IDs|
| getMSXPatternsIndex               |Retrieves the indices of patterns|
| getMSXPatternsLengths             |Retrieves the number of time periods in all or some patterns|
| getMSXParametersCount             |Retrieves the number of parameters|
| getMSXParametersNameID            |Retrieves the ID name of parameters|
| getMSXParametersIndex             |Retrieves the indices of parameters|
| getMSXParametersPipesValue        |Retrieves the value of reaction parameters for pipes|
| getMSXParametersTanksValue        |Retrieves the value of reaction parameters for tanks|
| solveMSXCompleteHydraulics        |Solves for system hydraulics over the entire simulation period saving results to an internal scratch file|
| solveMSXCompleteQuality           |Solves for water quality over the entire simulation period and saves the results to an internal scratch file|
| getMSXError                       |Returns the text for an error message given its error code|
| getMSXOptions                     |Retrieves all the msx option parameters|
| getMSXTimeStep                    |Retrieves the time step|
| getMSXRateUnits                   |Retrieves the rate/time units (SEC/MIN/HR/DAY)|
| getMSXAreaUnits                   |Retrieves the area units (FT2/M2/CM2)|
| getMSXCompiler                    |Retrieves the compiler (NONE/VC/GC)|
| getMSXCoupling                    |Retrieves the coupling (FULL/NONE)|
| getMSXAtol                        |Retrieves the absolute concentration tolerance|
| getMSXRtol                        |Retrieves the relative concentration tolerance|
| getMSXComputedQualitySpecie       |Retrieves the quality values for specific specie (e.g getMSXComputedQualitySpecie(['CL2']))|
| getMSXEquationsPipes              |Retrieves the species dynamics in pipes|
| getMSXEquationsTanks              |Retrieves the species dynamics in tanks|
| getMSXEquationsTerms              |Retrieves the species dynamics in terms|
| setMSXAreaUnitsCM2                |Sets area units to CM2|
| setMSXAreaUnitsFT2                |Sets area units to FT2|
| setMSXAreaUnitsM2                 |Sets area units to M2|
| setMSXAtol                        |Sets the value of Atol|
| setMSXRtol                        |Sets the value of Rtol|
| setMSXCompilerGC                  |Sets compilet to GC|
| setMSXCompilerNONE                |Sets compiler to None|
| setMSXCompilerVC                  |Sets compiler to VC|
| setMSXCouplingFULL                |Sets coupling option to FULL|
| setMSXCouplingNONE                |Sets coupling option to NONE|
| setMSXRateUnitsDAY                |Sets rate units to DAY|
| setMSXRateUnitsHR                 |Sets rate units to HR|
| setMSXRateUnitsMIN                |Sets rate units to MIN|
| setMSXRateUnitsSEC                |Sets rate units to SEC|
| setMSXSolverEUL                   |Sets solver to EUL (standard Euler integrator)|
| setMSXSolverRK5                   |Sets solver to RK5 (Runge-Kutta 5th order integrator)|
| setMSXSolverROS2                  |Sets solver to ROS2 (2nd order Rosenbrock integrator)|
| setMSXTimeStep                    |Sets time step|
| setMSXPatternValue                |Assigns a new value to the multiplier for a specific time period in a given MSX source time pattern|
| setMSXPattern                     |Sets all of the multiplier factors for a specific time pattern|
| setMSXParametersPipesValue        |Assigns a value to a particular reaction parameter for given pipes|
| setMSXParametersTanksValue        |Assigns a value to a particular reaction parameter for given tanks|
| setMSXConstantsValue              |Assigns a new value to a specific reaction constant|
| setMSXLinkInitqualValue           |Assigns an initial concentration of chemical species to links|
| setMSXNodeInitqualValue           |Assigns an initial concentration of chemical species to nodes|
| setMSXSources                     |Sets the attributes of an external source of a particular chemical species to a specific node of the pipe network|
| useMSXHydraulicFile               |Uses a previously saved EPANET hydraulics file as the source of hydraulic information|


## List of EPANET 2.2 Functions 

|Function|Description|
|---------|----------|
|ENepanet|Runs a complete EPANET simulation
|ENaddcontrol|Adds a new simple control to a project
|ENaddcurve|Adds a new data curve to a project
|ENadddemand|Appends a new demand to a junction node demands list
|ENaddlink|Adds a new link to a project
|ENaddnode|Adds a new node to a project
|ENaddpattern|Adds a new time pattern to a project
|ENaddrule|Adds a new rule-based control to a project
|ENclearreport|Clears the contents of a project's report file
|ENclose|Closes a project and frees all of its memory
|ENcloseH|Closes the hydraulic solver freeing all of its allocated memory
|ENcloseQ|Closes the water quality solver, freeing all of its allocated memory
|ENcopyreport|Copies the current contents of a project's report file to another file
|ENcreateproject|Copies the current contents of a project's report file to another file
|ENdeletecontrol|Deletes an existing simple control
|ENdeletecurve|Deletes a data curve from a project
|ENdeletedemand|Deletes a demand from a junction node
|ENdeletelink|Deletes a link from the project
|ENdeletenode|Deletes a node from a project
|ENdeletepattern|Deletes a time pattern from a project
|ENdeleteproject|Deletes an EPANET project
|ENdeleterule|Deletes an existing rule-based control
|ENgetaveragepatternvalue|Retrieves the average of all pattern factors in a time pattern
|ENgetbasedemand|Gets the base demand for one of a node's demand categories
|ENgetcomment|Sets a comment to a specific index
|ENgetcontrol|Retrieves the comment of a specific index of a type object
|ENgetcoord|Gets the (x,y) coordinates of a node
|ENgetcount|Retrieves the number of objects of a given type in a project
|ENgetcurve|Retrieves all of a curve's data
|ENgetcurveid|Retrieves the ID name of a curve given its index
|ENgetcurveindex|Retrieves the index of a curve given its ID name
|ENgetcurvelen|Retrieves the number of points in a curve
|ENgetcurvetype|Retrieves a curve's type
|ENgetcurvevalue|Retrieves the value of a single data point for a curve
|ENgetdemandindex|Retrieves the index of a node's named demand category
|ENgetdemandmodel|Retrieves the type of demand model in use and its parameters
|ENgetdemandname|Retrieves the name of a node's demand category
|ENgetdemandpattern|Retrieves the index of a time pattern assigned to one of a node's demand categories
|ENgetelseaction|Gets the properties of an ELSE action in a rule-based control
|ENgeterror|Returns the text of an error message generated by an error code, as warning
|ENgetflowunits|Retrieves a project's flow units
|ENgetheadcurveindex|Retrieves the curve assigned to a pump's head curve
|ENgetlinkid|Gets the ID name of a link given its index
|ENgetlinkindex|Gets the index of a link given its ID name
|ENgetlinknodes|Gets the indexes of a link's start- and end-nodes
|ENgetlinktype|Retrieves a link's type
|ENgetlinkvalue|Retrieves a property value for a link
|ENgetnodeid|Gets the ID name of a node given its index
|ENgetnodeindex|Gets the index of a node given its ID name
|ENgetnodetype|Retrieves a node's type given its index
|ENgetnodevalue|Retrieves a property value for a node
|ENgetnumdemands|Retrieves the number of demand categories for a junction node
|ENgetoption|Retrieves the value of an analysis option
|ENgetpatternid|Retrieves the ID name of a time pattern given its index
|ENgetpatternindex|Retrieves the index of a time pattern given its ID name
|ENgetpatternlen|Retrieves the number of time periods in a time pattern
|ENgetpatternvalue|Retrieves a time pattern's factor for a given time period
|ENgetpremise|Gets the properties of a premise in a rule-based control
|ENgetpumptype|Retrieves the type of head curve used by a pump
|ENgetqualinfo|Gets information about the type of water quality analysis requested
|ENgetqualtype|Retrieves the type of water quality analysis to be run
|ENgetresultindex|Retrieves the order in which a node or link appears in an output file
|ENgetrule|Retrieves summary information about a rule-based control
|ENgetruleID|Gets the ID name of a rule-based control given its index
|ENgetstatistic|Retrieves a particular simulation statistic
|ENgetthenaction|Gets the properties of a THEN action in a rule-based control
|ENgettimeparam|Retrieves the value of a time parameter
|ENgettitle|Retrieves the title lines of the project
|ENgetversion|Retrieves the toolkit API version number
|ENgetvertex|Retrieves the coordinate's of a vertex point assigned to a link
|ENgetvertexcount|Retrieves the number of internal vertex points assigned to a link
|ENinit|Initializes an EPANET project
|ENinitH|Initializes a network prior to running a hydraulic analysis
|ENinitQ|Initializes a network prior to running a water quality analysis
|ENnextH| Determines the length of time until the next hydraulic event occurs in an extended period simulation
|ENnextQ|Advances a water quality simulation over the time until the next hydraulic event
|ENopen|Opens an EPANET input file & reads in network data
|ENopenH|Opens a project's hydraulic solver
|ENopenQ|Opens a project's water quality solver
|ENreport|Writes simulation results in a tabular format to a project's report file
|ENresetreport|Resets a project's report options to their default values
|ENrunH|Computes a hydraulic solution for the current point in time
|ENrunQ|Makes hydraulic and water quality results at the start of the current time period available to a project's water quality solver
|ENsaveH|Transfers a project's hydraulics results from its temporary hydraulics file to its binary output file, where results are only reported at uniform reporting intervals
|ENsavehydfile|Saves a project's temporary hydraulics file to disk
|ENsaveinpfile|Saves a project's data to an EPANET-formatted text file
|ENsetbasedemand|Sets the base demand for one of a node's demand categories
|ENsetcomment|Sets a comment to a specific index
|ENsetcontrol|Sets the properties of an existing simple control
|ENsetcoord|Sets the (x,y) coordinates of a node
|ENsetcurve|Assigns a set of data points to a curve
|ENsetcurveid|Changes the ID name of a data curve given its index
|ENsetcurvevalue|Sets the value of a single data point for a curve
|ENsetdemandmodel|Sets the Type of demand model to use and its parameters
|ENsetdemandname|Assigns a name to a node's demand category
|ENsetdemandpattern|Sets the index of a time pattern used for one of a node's demand categories
|ENsetelseaction|Sets the properties of an ELSE action in a rule-based control
|ENsetflowunits|Sets a project's flow units
|ENsetheadcurveindex|Assigns a curve to a pump's head curve
|ENsetjuncdata|Sets a group of properties for a junction node
|ENsetlinkid|Changes the ID name of a link
|ENsetlinknodes|Sets the indexes of a link's start- and end-nodes
|ENsetlinktype|Changes a link's type
|ENsetlinkvalue|Sets a property value for a link
|ENsetnodeid|Changes the ID name of a node
|ENsetnodevalue|Sets a property value for a node
|ENsetoption|Sets the value for an anlysis option
|ENsetpattern|Sets the pattern factors for a given time pattern
|ENsetpatternid|Changes the ID name of a time pattern given its index
|ENsetpatternvalue|Sets a time pattern's factor for a given time period
|ENsetpipedata|Sets a group of properties for a pipe link
|ENsetpremise|Sets the properties of a premise in a rule-based control
|ENsetpremiseindex|Sets the index of an object in a premise of a rule-based control
|ENsetpremisestatus|Sets the status being compared to in a premise of a rule-based control
|ENsetpremisevalue|Sets the value in a premise of a rule-based control
|ENsetqualtype|Sets the type of water quality analysis to run
|ENsetreport|Processes a reporting format command
|ENsetrulepriority|Sets the priority of a rule-based control
|ENsetstatusreport|Sets the level of hydraulic status reporting
|ENsettankdata|Sets a group of properties for a tank node
|ENsetthenaction|Sets the properties of a THEN action in a rule-based control
|ENsettimeparam|Sets the value of a time parameter
|ENsettitle|Sets the title lines of the project
|ENsetvertices|Assigns a set of internal vertex points to a link
|ENsolveH|Runs a complete hydraulic simulation with results for all time periods written to a temporary hydraulics file
|ENsolveQ| Runs a complete water quality simulation with results at uniform reporting intervals written to the project's binary output file
|ENstepQ|Advances a water quality simulation by a single water quality time step
|ENusehydfile|Uses a previously saved binary hydraulics file to supply a project's hydraulics
|ENwriteline|Writes a line of text to a project's report file

&uparrow; [Back to top](#table-of-contents)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/OpenWaterAnalytics/EPyT",
    "name": "epyt",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "epanet, water, networks, hydraulics, quality, simulations, emt, epanet matlab toolkit",
    "author": "Marios S. Kyriakou",
    "author_email": "kiriakou.marios@ucy.ac.cy",
    "download_url": null,
    "platform": null,
    "description": "\ufeff<a href=\"http://www.kios.ucy.ac.cy\"><img src=\"https://www.kios.ucy.ac.cy/wp-content/uploads/2021/07/Logotype-KIOS.svg\" width=\"200\" height=\"100\"/><a>\r\n\r\n[![license](https://img.shields.io/pypi/l/epyt.svg)](https://github.com/KIOS-Research/EPyT/blob/main/LICENSE.md)\r\n[![pypi](https://img.shields.io/pypi/v/epyt.svg)](https://pypi.org/project/epyt/)\r\n[![Downloads](https://static.pepy.tech/badge/epyt)](https://pepy.tech/project/epyt)\r\n[![Downloads](https://static.pepy.tech/badge/epyt/month)](https://pepy.tech/project/epyt)\r\n[![build](https://github.com/OpenWaterAnalytics/EPyT/actions/workflows/build_tests.yml/badge.svg)](https://github.com/OpenWaterAnalytics/EPyT/actions/workflows/build_tests.yml)\r\n[![Documentation Status](https://readthedocs.org/projects/epanet-python-toolkit-epyt/badge/?version=latest)](https://epanet-python-toolkit-epyt.readthedocs.io/en/latest/?badge=latest)\r\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.05947/status.svg)](https://doi.org/10.21105/joss.05947)\r\n\r\n\r\n# EPANET Python Toolkit (EPyT)\r\n\r\nThe `EPANET-Python Toolkit` is an open-source software, originally developed by the [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/) which operates within the Python environment, for providing a programming interface for the latest version of [EPANET](https://github.com/OpenWaterAnalytics/epanet), a hydraulic and quality modeling software created by the US EPA, with Python, a  high-level technical computing software. The goal of the EPANET Python Toolkit is to serve as a common programming framework for research and development in the growing field of smart water networks.\r\n\r\nThe `EPANET-Python Toolkit` features easy to use commands/wrappers for viewing, modifying, simulating and plotting results produced by the EPANET libraries.  \r\n\r\nFor support, please use the OWA community forum : http://community.wateranalytics.org/\r\n\r\n## Table of Contents\r\n\r\n- [EPANET Python Toolkit (EPyT)](#epanet-python-toolkit-epyt)\r\n- [How to cite](#how-to-cite)\r\n- [Requirements](#requirements)\r\n- [How to install](#how-to-install)\r\n- [How to use the Toolkit](#how-to-use-the-toolkit)\r\n- [How to fix/report bugs](#how-to-fixreport-bugs)\r\n- [Licenses](#licenses)\r\n- [Contributors](#contributors)\r\n- [Contributing](#contributing)\r\n- [Recommendation](#recommendation)\r\n- [List of Python Class Functions](#list-of-python-class-functions)\r\n- [List of EPANET 2.2 Functions](#list-of-epanet-22-functions)\r\n  \r\n## How to cite \r\n\r\nKyriakou, M. S., Demetriades, M., Vrachimis, S. G., Eliades, D. G., & Polycarpou, M. M. (2023). EPyT: An EPANET-Python Toolkit for Smart Water Network Simulations. Journal of Open Source Software, 8(92), 5947. https://doi.org/10.21105/joss.05947\r\n\r\n```\r\n@article{Kyriakou2023,\r\nauthor = {Kyriakou, Marios S. and Demetriades, Marios and Vrachimis, Stelios G. and Eliades, Demetrios G. and Polycarpou, Marios M.},\r\ndoi = {10.21105/joss.05947},\r\njournal = {Journal of Open Source Software},\r\nmonth = dec,\r\nnumber = {92},\r\npages = {5947},\r\ntitle = {{EPyT: An EPANET-Python Toolkit for Smart Water Network Simulations}},\r\nurl = {https://joss.theoj.org/papers/10.21105/joss.05947},\r\nvolume = {8},\r\nyear = {2023}\r\n}\r\n```\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## Requirements\r\n\r\n* Python >=3.8\r\n* Windows, OSX or Linux\r\n* [EPANET 2.2](https://github.com/OpenWaterAnalytics/epanet)\r\n\r\nLinux: `sudo cp libepanet2.so /lib/x86_64-linux-gnu/libepanet.so`\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## How to install\r\n\r\n**Environments -> base (root) -> open terminal -> pip install epyt**\r\n\r\n* PyPI: <b>pip install epyt</b>\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## How to use the Toolkit\r\n\r\n**Minimum Example:**\r\n\r\n```python\r\n>>> from epyt import epanet\r\n>>> \r\n>>> d = epanet('Net1.inp')\r\n>>> d.getNodeCount()\r\n>>> d.getNodeElevations()\r\n``` \r\n\r\n**Minumun Example using custom Library:**\r\n```python\r\n>>> from epyt import epanet\r\n>>>\r\n>>>epanetlib=os.path.join(os.getcwd(), 'epyt','libraries','win','epanet2.dll')\r\n>>>msxlib=os.path.join(os.getcwd(), 'epyt','libraries','win','epanetmsx.dll')\r\n>>>d = epanet(inpname, customlib=epanetlib)\r\n>>>d.loadMSXFile(msxname, customMSXlib=msxlib)\r\n``` \r\n\r\n**More examples:** \r\n\r\n[https://github.com/KIOS-Research/EPYT/tree/main/epyt/examples](https://github.com/KIOS-Research/EPYT/tree/main/epyt/examples#readme)\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## How to fix/report bugs\r\n\r\nTo fix a bug `Fork` the `EPyT`, `Edit` the code and make the appropriate change, and then `Pull` it so that we evaluate it. \r\n\r\nKeep in mind that some bugs may exist in the `EPANET` libraries, in case you are not receiving the expected results.\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## Licenses\r\n\r\n* `EPANET`: Public Domain\r\n* `EPANET-Python Toolkit (EPyT)`: EUPL\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## Contributors\r\n\r\n* Marios Kyriakou, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)\r\n* Marios Demetriades, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)\r\n* Stelios Vrachimis, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)\r\n* Demetrios Eliades, [KIOS Research and Innovation Center of Excellence, University of Cyprus](http://www.kios.ucy.ac.cy/)\r\n\r\nThe `EPyT` is based/inspired on the [EPANET-Matlab Toolkit](https://github.com/OpenWaterAnalytics/EPANET-Matlab-Toolkit).\r\n\r\n## Contributing\r\nIf you want to contribute, please check out our [Code of Conduct](https://github.com/KIOS-Research/EPyT/blob/dev/CODE_OF_CONDUCT.md). Everyone is welcome to contribute whether reporting a new [issue](https://github.com/KIOS-Research/EPyT/issues), suggesting a new feature, or writing code. If you want to contribute code, you can create a new fork in the repo to your own account. Make your commits on your dev branch (based on dev) and when you are finished then you can create a [pull request](https://github.com/KIOS-Research/EPyT/pulls) to test the code and discuss your changes.\r\n\r\n## Recommendation\r\n\r\n* Install Anaconda<br>\r\n* Run `EPyT` with [Spyder IDE](https://www.spyder-ide.org/)\r\n* Run `EPyT` with [PyCharm](https://www.jetbrains.com/pycharm/)\r\n\r\n*Settings on Spyder IDE*\r\n\r\n* Tools -> Preferrences\r\n![image](https://user-images.githubusercontent.com/2945956/154067349-3aed266f-3a23-4573-8b93-db0b4f224964.png)\r\n* View -> Window layouts -> Matlab layout\r\n* Enable interactive plot on matlibplot\r\n  : Tools -> Preferences -> IPython console -> Graphics -> Graphics backend -> Backend: Automatic\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n\r\n## List of Python Class Functions\r\n\r\n| Function                          |Description|\r\n|-----------------------------------|----------|\r\n| addControls                       |Adds a new simple control|\r\n| addCurve                          |Adds a new curve appended to the end of the existing curves|\r\n| addLinkPipe                       |Adds a new pipe|\r\n| addLinkPipeCV                     |Adds a new control valve pipe|\r\n| addLinkPump                       |Adds a new pump|\r\n| addLinkValveFCV                   |Adds a new FCV valve|\r\n| addLinkValveGPV                   |Adds a new GPV valve|\r\n| addLinkValvePBV                   |Adds a new PBV valve|\r\n| addLinkValvePRV                   |Adds a new PRV valve|\r\n| addLinkValvePSV                   |Adds a new PSV valve|\r\n| addLinkValveTCV                   |Adds a new TCV valve|\r\n| addNodeJunction                   |Adds a new junction|\r\n| addNodeJunctionDemand             |Adds a new demand to a junction given the junction index, base demand, demand time pattern and demand category name|\r\n| addNodeReservoir                  |Adds a new reservoir|\r\n| addNodeTank                       |Adds a new tank|\r\n| addPattern                        |Adds a new time pattern to the network|\r\n| addRules                          |Adds a new rule-based control to a project|\r\n| appRotateNetwork                  |Rotates the network by theta degrees counter-clockwise|\r\n| appShiftNetwork                   |Shifts the network|\r\n| clearReport                       |Clears the contents of a project's report file|\r\n| closeHydraulicAnalysis            |Closes the hydraulic analysis system, freeing all allocated memory|\r\n| closeNetwork                      |Closes down the Toolkit system|\r\n| closeQualityAnalysis              |Closes the water quality analysis system, freeing all allocated memory|\r\n| copyReport                        |Copies the current contents of a project's report file to another file|\r\n| createProject                     |Creates a new epanet projec|\r\n| deleteAllTemps                    |Delete all temporary files (.inp, .bin) created in networks folder|\r\n| deleteControls                    |Deletes an existing simple control|\r\n| deleteCurve                       |Deletes a data curve from a project|\r\n| deleteLink                        |Deletes a link|\r\n| deleteNode                        |Deletes nodes|\r\n| deletePattern                     |Deletes a time pattern from a project|\r\n| deletePatternsAll                 |Deletes all time patterns from a project|\r\n| deleteProject                     |Deletes the epanet project|\r\n| deleteRules                       |Deletes an existing rule-based control given it's index\r\n| getAdjacencyMatrix                |Compute the adjacency matrix (connectivity graph) considering the flows, using mean flow|\r\n| getAllAttributes                  |Get all attributes of a given Python object|\r\n| getCMDCODE                        |Retrieves the CMC code|\r\n| getComputedHydraulicTimeSeries    |Computes hydraulic simulation and retrieves all time-series\r\n| getComputedQualityTimeSeries      |Computes Quality simulation and retrieves all or some time-series\r\n| getComputedTimeSeries             |Run analysis with binary fil\r\n| getConnectivityMatrix             |Retrieve the Connectivity Matrix of the networ\r\n| getControlRulesCount              |Retrieves the number of controls\r\n| getControls                       |Retrieves the parameters of all control statements\r\n| getCounts                         |Retrieves the number of network components\r\n| getCurveComment                   |Retrieves the comment string of a curve\r\n| getCurveCount                     |Retrieves the number of curves\r\n| getCurveIndex                     |Retrieves the index of a curve with specific ID\r\n| getCurveLengths                   |Retrieves number of points in a curve\r\n| getCurveNameID                    |Retrieves the IDs of curves\r\n| getCurveType                      |Retrieves the curve-type for all curves\r\n| getCurveTypeIndex                 |Retrieves the curve-type index for all curves\r\n| getCurveValue                     |Retrieves the X, Y values of points of curves\r\n| getCurvesInfo                     |Retrieves all the info of curves\r\n| getDemandModel                    |Retrieves the type of demand model in use and its parameters\r\n| getENfunctionsImpemented          |Retrieves the epanet functions that have been developed\r\n| getError                          |Retrieves the text of the message associated with a particular error or warning code\r\n| getFlowUnits                      |Retrieves flow units used to express all flow rates\r\n| getLibFunctions                   |Retrieves the functions of DLL\r\n| getLinkActualQuality              |Retrieves the current computed link quality (read only)\r\n| getLinkBulkReactionCoeff          |Retrieves the value of all link bulk chemical reaction coefficient\r\n| getLinkComment                    |Retrieves the comment string assigned to the link object\r\n| getLinkCount                      |Retrieves the number of links\r\n| getLinkDiameter                   |Retrieves the value of link diameters\r\n| getLinkEnergy                     |Retrieves the current computed pump energy usage (read only)\r\n| getLinkFlows                      |Retrieves the current computed flow rate (read only)\r\n| getLinkHeadloss                   |Retrieves the current computed head loss (read only)\r\n| getLinkIndex                      |Retrieves the indices of all links, or the indices of an ID set of links\r\n| getLinkInitialSetting             |Retrieves the value of all link roughness for pipes or initial speed for pumps or initial setting for valves\r\n| getLinkInitialStatus              |Retrieves the value of all link initial status\r\n| getLinkLength                     |Retrieves the value of link lengths\r\n| getLinkMinorLossCoeff             |Retrieves the value of link minor loss coefficients\r\n| getLinkNameID                     |Retrieves the ID label(s) of all links, or the IDs of an index set of links\r\n| getLinkNodesIndex                 |Retrieves the indexes of the from/to nodes of all links\r\n| getLinkPipeCount                  |Retrieves the number of pipes\r\n| getLinkPipeIndex                  |Retrieves the pipe indices\r\n| getLinkPipeNameID                 |Retrieves the pipe ID\r\n| getLinkPumpCount                  |Retrieves the number of pumps\r\n| getLinkPumpECost                  |Retrieves the pump average energy price\r\n| getLinkPumpECurve                 |Retrieves the pump efficiency v\r\n| getLinkPumpEPat                   |Retrieves the pump energy price time pattern index\r\n| getLinkPumpEfficiency             |Retrieves the current computed pump efficiency (read only)\r\n| getLinkPumpHCurve                 |Retrieves the pump head v\r\n| getLinkPumpHeadCurveIndex         |Retrieves the index of a head curve for all pumps\r\n| getLinkPumpIndex                  |Retrieves the pump indices\r\n| getLinkPumpNameID                 |Retrieves the pump ID\r\n| getLinkPumpPatternIndex           |Retrieves the pump speed time pattern index\r\n| getLinkPumpPatternNameID          |Retrieves pump pattern name ID\r\n| getLinkPumpPower                  |Retrieves the pump constant power rating (read only)\r\n| getLinkPumpState                  |Retrieves the current computed pump state (read only) (see @ref EN_PumpStateType)\r\n| getLinkPumpSwitches               |Retrieves the number of pump switches\r\n| getLinkPumpType                   |Retrieves the type of a pump\r\n| getLinkPumpTypeCode               |Retrieves the code of type of a pump\r\n| getLinkQuality                    |Retrieves the value of link quality\r\n| getLinkResultIndex                |Retrieves the order in which a link's results were saved to an output file\r\n| getLinkRoughnessCoeff             |Retrieves the value of link roughness coefficient\r\n| getLinkSettings                   |Retrieves the current computed value of all link roughness for pipes or actual speed for pumps or actual setting for valves\r\n| getLinkStatus                     |Retrieves the current link status (see @ref EN_LinkStatusType) (0 = closed, 1 = open)\r\n| getLinkType                       |Retrieves the link-type code for all links\r\n| getLinkTypeIndex                  |Retrieves the link-type code for all links\r\n| getLinkValveCount                 |Retrieves the number of valves\r\n| getLinkValveIndex                 |Retrieves the valve indices\r\n| getLinkValveNameID                |Retrieves the valve ID\r\n| getLinkVelocity                   |Retrieves the current computed flow velocity (read only)\r\n| getLinkVertices                   |Retrieves the coordinate's of a vertex point assigned to a link\r\n| getLinkVerticesCount              |Retrieves the number of internal vertex points assigned to a link\r\n| getLinkWallReactionCoeff          |Retrieves the value of all pipe wall chemical reaction coefficient\r\n| getLinksInfo                      |Retrieves all link info\r\n| getNetworksDatabase               |Retrieves all EPANET Input Files from EPyT database\r\n| getNodeActualDemand               |Retrieves the computed value of all node actual demands\r\n| getNodeActualDemandSensingNodes   |Retrieves the computed demand values at some sensing nodes\r\n| getNodeActualQuality              |Retrieves the computed values of the actual quality for all nodes\r\n| getNodeActualQualitySensingNodes  |Retrieves the computed quality values at some sensing node\r\n| getNodeBaseDemands                |Retrieves the value of all node base demands\r\n| getNodeComment                    |Retrieves the comment string assigned to the node object\r\n| getNodeCoordinates                \r\n| getNodeCount                      |Retrieves the number of nodes\r\n| getNodeDemandCategoriesNumber     |Retrieves the value of all node base demands categorie number\r\n| getNodeDemandDeficit              |Retrieves the amount that full demand is reduced under PDA\r\n| getNodeDemandPatternIndex         |Retrieves the value of all node base demands pattern index\r\n| getNodeDemandPatternNameID        |Retrieves the value of all node base demands pattern name ID\r\n| getNodeElevations                 |Retrieves the value of all node elevations\r\n| getNodeEmitterCoeff               |Retrieves the value of all node emmitter coefficients\r\n| getNodeHydraulicHead              |Retrieves the computed values of all node hydraulic heads\r\n| getNodeIndex                      |Retrieves the indices of all nodes or some nodes with a specified ID\r\n| getNodeInitialQuality             |Retrieves the value of all node initial quality\r\n| getNodeJunctionCount              |Retrieves the number of junction nodes\r\n| getNodeJunctionDemandIndex        |Retrieves the demand index of the junctions\r\n| getNodeJunctionDemandName         |Gets the name of a node's demand category\r\n| getNodeJunctionIndex              |Retrieves the indices of junctions\r\n| getNodeJunctionNameID             |Retrieves the junction ID label\r\n| getNodeMassFlowRate               |Retrieves the computed mass flow rates per minute of chemical sources for all nodes\r\n| getNodeNameID                     |Retrieves the ID label of all nodes or some nodes with a specified index\r\n| getNodePatternIndex               |Retrieves the value of all node demand pattern indices\r\n| getNodePressure                   |Retrieves the computed values of all node pressures\r\n| getNodeReservoirCount             |Retrieves the number of Reservoirs\r\n| getNodeReservoirIndex             |Retrieves the indices of reservoirs\r\n| getNodeReservoirNameID            |Retrieves the reservoir ID label\r\n| getNodeResultIndex                |Retrieves the order in which a node's results were saved to an output file\r\n| getNodeSourcePatternIndex         |Retrieves the value of all node source pattern index\r\n| getNodeSourceQuality              |Retrieves the value of all node source quality\r\n| getNodeSourceType                 |Retrieves the value of all node source type\r\n| getNodeSourceTypeIndex            |Retrieves the value of all node source type index\r\n| getNodeTankBulkReactionCoeff      |Retrieves the tank bulk rate coefficient\r\n| getNodeTankCanOverFlow            |Retrieves the tank can overflow (= 1) or not (= 0)\r\n| getNodeTankCount                  |Retrieves the number of Tanks\r\n| getNodeTankData                   |Retrieves a group of properties for a tank\r\n| getNodeTankDiameter               |Retrieves the tank diameters\r\n| getNodeTankIndex                  |Retrieves the tank indices\r\n| getNodeTankInitialLevel           |Retrieves the value of all tank initial water levels\r\n| getNodeTankInitialWaterVolume     |Retrieves the tank initial water volume\r\n| getNodeTankMaximumWaterLevel      |Retrieves the tank maximum water level\r\n| getNodeTankMaximumWaterVolume     |Retrieves the tank maximum water volume\r\n| getNodeTankMinimumWaterLevel      |Retrieves the tank minimum water level\r\n| getNodeTankMinimumWaterVolume     |Retrieves the tank minimum water volume\r\n| getNodeTankMixZoneVolume          |Retrieves the tank mixing zone volume\r\n| getNodeTankMixingFraction         |Retrieves the tank Fraction of total volume occupied by the inlet/outlet zone in a 2-compartment tank\r\n| getNodeTankMixingModelCode        |Retrieves the tank mixing model code\r\n| getNodeTankMixingModelType        |Retrieves the tank mixing model type\r\n| getNodeTankNameID                 |Retrieves the tank IDs\r\n| getNodeTankReservoirCount         |Retrieves the number of tanks\r\n| getNodeTankVolume                 |Retrieves the tank volume\r\n| getNodeTankVolumeCurveIndex       |Retrieves the tank volume curve index\r\n| getNodeType                       |Retrieves the node-type code for all nodes\r\n| getNodeTypeIndex                  |Retrieves the node-type code for all nodes\r\n| getNodesConnectingLinksID         |Retrieves the id of the from/to nodes of all links\r\n| getNodesConnectingLinksIndex      |Retrieves the indexes of the from/to nodes of all links\r\n| getNodesInfo                      |Retrieves nodes info (elevations, demand patterns, emmitter coeff, initial quality, source quality, source pattern index, source type index, node type index)\r\n| getOptionsAccuracyValue           |Retrieves the total normalized flow change for hydraulic convergence\r\n| getOptionsCheckFrequency          |Retrieves the frequency of hydraulic status checks\r\n| getOptionsDampLimit               |Retrieves the accuracy level where solution damping begins\r\n| getOptionsDemandCharge            |Retrieves the energy charge per maximum KW usage\r\n| getOptionsEmitterExponent         |Retrieves the power exponent for the emmitters\r\n| getOptionsExtraTrials             |Retrieves the extra trials allowed if hydraulics don't converge\r\n| getOptionsFlowChange              |Retrieves the maximum flow change for hydraulic convergence\r\n| getOptionsGlobalEffic             |Retrieves the global efficiency for pumps(percent)\r\n| getOptionsGlobalPattern           |Retrieves the index of the global energy price pattern\r\n| getOptionsGlobalPrice             |Retrieves the global average energy price per kW-Hour\r\n| getOptionsHeadError               |Retrieves the maximum head loss error for hydraulic convergence\r\n| getOptionsHeadLossFormula         |Retrieves the headloss formula\r\n| getOptionsLimitingConcentration   |Retrieves the limiting concentration for growth reactions\r\n| getOptionsMaxTrials               |Retrieves the maximum hydraulic trials allowed for hydraulic convergence\r\n| getOptionsMaximumCheck            |Retrieves the maximum trials for status checking\r\n| getOptionsPatternDemandMultiplier |Retrieves the global pattern demand multiplier\r\n| getOptionsPipeBulkReactionOrder   |Retrieves the bulk water reaction order for pipes\r\n| getOptionsPipeWallReactionOrder   |Retrieves the wall reaction order for pipes (either 0 or 1)\r\n| getOptionsQualityTolerance        |Retrieves the water quality analysis tolerance\r\n| getOptionsSpecificDiffusivity     |Retrieves the specific diffusivity (relative to chlorine at 20 deg C)\r\n| getOptionsSpecificGravity         |Retrieves the specific gravity\r\n| getOptionsSpecificViscosity       |Retrieves the specific viscosity\r\n| getOptionsTankBulkReactionOrder   |Retrieves the bulk water reaction order for tanks\r\n| getPattern                        |Retrieves the multiplier factor for all patterns and all times\r\n| getPatternAverageValue            |Retrieves the average values of all the time patterns\r\n| getPatternComment                 |Retrieves the comment string assigned to the pattern object\r\n| getPatternCount                   |Retrieves the number of patterns\r\n| getPatternIndex                   |Retrieves the index of all or some time patterns given their IDs\r\n| getPatternLengths                 |Retrieves the number of time periods in all or some time patterns\r\n| getPatternNameID                  |Retrieves the ID label of all or some time patterns indices\r\n| getPatternValue                   |Retrieves the multiplier factor for a certain pattern and time\r\n| getQualityCode                    |Retrieves the code of water quality analysis type\r\n| getQualityInfo                    |Retrieves quality analysis information (type, chemical name, units, trace node ID)\r\n| getQualityTraceNodeIndex          |Retrieves the trace node index of water quality analysis type\r\n| getQualityType                    |Retrieves the type of water quality analysis type\r\n| getRuleCount                      |Retrieves the number of rules\r\n| getRuleID                         |Retrieves the ID name of a rule-based control given its index\r\n| getRuleInfo                       |Retrieves summary information about a rule-based control given it's index\r\n| getRules                          |Retrieves the rule - based control statements\r\n| getStatistic                      |Returns error code\r\n| getTimeHTime                      |Retrieves the elapsed time of current hydraulic solution\r\n| getTimeHaltFlag                   |Retrieves the number of halt flag indicating if the simulation was halted\r\n| getTimeHydraulicStep              |Retrieves the value of the hydraulic time step\r\n| getTimeNextEvent                  |Retrieves the shortest time until a tank becomes empty or full\r\n| getTimeNextEventTank              |Retrieves the index of tank with shortest time to become empty or full\r\n| getTimePatternStart               |Retrieves the value of pattern start time\r\n| getTimePatternStep                |Retrieves the value of the pattern time step\r\n| getTimeQTime                      |Retrieves the elapsed time of current quality solution\r\n| getTimeQualityStep                |Retrieves the value of the water quality time step\r\n| getTimeReportingPeriods           |Retrieves the number of reporting periods saved to the binary\r\n| getTimeReportingStart             |Retrieves the value of the reporting start time\r\n| getTimeReportingStep              |Retrieves the value of the reporting time step\r\n| getTimeRuleControlStep            |Retrieves the time step for evaluating rule-based controls\r\n| getTimeSimulationDuration         |Retrieves the value of simulation duration\r\n| getTimeStartTime                  |Retrieves the simulation starting time of day\r\n| getTimeStatisticsIndex            |Retrieves the index of the type of time series post-processing\r\n| getTimeStatisticsType             |Retrieves the type of time series post-processing\r\n| getTitle                          |Retrieves the title lines of the project\r\n| getUnits                          |Retrieves the Units of Measurement\r\n| getVersion                        |Retrieves the current EPANET version of DLL\r\n| initializeEPANET                  |Initializes an EPANET project that isn't opened with an input fil\r\n| initializeHydraulicAnalysis       |Initializes storage tank levels, link status and settings, and the simulation clock time prior to running a hydraulic analysis\r\n| initializeQualityAnalysis         |Initializes water quality and the simulation clock time prior to running a water quality analysis\r\n| loadEPANETFile                    |Load epanet file when use bin functions\r\n| loadMSXEPANETFile                 |Re-Load EPANET MSX file - parfor\r\n| nextHydraulicAnalysisStep         |Determines the length of time until the next hydraulic event occurs in an extended period simulation\r\n| nextQualityAnalysisStep           |Advances the water quality simulation to the start of the next hydraulic time period\r\n| openAnyInp                        |Open as on matlab editor any EPANET input file using built function open\r\n| openCurrentInp                    |Opens EPANET input file who is loade\r\n| openHydraulicAnalysis             |Opens the hydraulics analysis system\r\n| openQualityAnalysis               |Opens the water quality analysis system\r\n| plot                              |Plot Network, show all components, plot pressure/flow/elevation|\r\n| plot_close                        |Close all open figures|\r\n| plot_save                         |Save plot|\r\n| plot_show                         |Show plot|\r\n| reloadNetwork                     |Reloads the Network (ENopen)\r\n| runEPANETexe                      |Runs epanet .exe file|\r\n| runHydraulicAnalysis              |Runs a single period hydraulic analysis, retrieving the current simulation clock time t\r\n| runQualityAnalysis                |Makes available the hydraulic and water quality results that occur at the start of the next time period of a water quality analysis, where the start of the period is returned in t\r\n| runsCompleteSimulation            |Runs a complete hydraulic and water simulation to create binary & report files with name: [NETWORK_temp.txt], [NETWORK_temp.bin] OR you can use argument to runs a complete simulation via self.api.en_epane\r\n| saveHydraulicFile                 |Saves the current contents of the binary hydraulics file to a file\r\n| saveHydraulicsOutputReportingFile |Transfers results of a hydraulic simulation from the binary Hydraulics file to the binary Output file, where results are only reported at uniform reporting intervals\r\n| saveInputFile                     |Writes all current network input data to a file using the format of an EPANET input file\r\n| setCMDCODE                        |Sets the CMC code|\r\n| setControls                       |Sets the parameters of a simple control statement\r\n| setCurve                          |Sets x, y values for a specific curve\r\n| setCurveComment                   |Sets the comment string of a curve\r\n| setCurveNameID                    |Sets the name ID of a curve given it's index and the new ID\r\n| setCurveValue                     |Sets x, y point for a specific point number and curve\r\n| setDemandModel                    |Sets the type of demand model to use and its parameters\r\n| setFlowUnitsAFD                   |Sets flow units to AFD(Acre-Feet per Day)\r\n| setFlowUnitsCFS                   |Sets flow units to CFS(Cubic Feet per Second)\r\n| setFlowUnitsCMD                   |Sets flow units to CMD(Cubic Meters per Day)\r\n| setFlowUnitsCMH                   |Sets flow units to CMH(Cubic Meters per Hour)\r\n| setFlowUnitsGPM                   |Sets flow units to GPM(Gallons Per Minute)\r\n| setFlowUnitsIMGD                  |Sets flow units to IMGD(Imperial Million Gallons per Day)\r\n| setFlowUnitsLPM                   |Sets flow units to LPM(Liters Per Minute)\r\n| setFlowUnitsLPS                   |Sets flow units to LPS(Liters Per Second)\r\n| setFlowUnitsMGD                   |Sets flow units to MGD(Million Gallons per Day)\r\n| setFlowUnitsMLD                   |Sets flow units to MLD(Million Liters per Day)\r\n| setLinkBulkReactionCoeff          |Sets the value of bulk chemical reaction coefficient\r\n| setLinkComment                    |Sets the comment string assigned to the link object\r\n| setLinkDiameter                   |Sets the values of diameters\r\n| setLinkInitialSetting             |Sets the values of initial settings, roughness for pipes or initial speed for pumps or initial setting for valves\r\n| setLinkInitialStatus              |Sets the values of initial status\r\n| setLinkLength                     |Sets the values of lengths\r\n| setLinkMinorLossCoeff             |Sets the values of minor loss coefficient\r\n| setLinkNameID                     |Sets the ID name for links\r\n| setLinkNodesIndex                 |Sets the indexes of a link's start- and end-nodes\r\n| setLinkPipeData                   |Sets a group of properties for a pipe\r\n| setLinkPumpECost                  |Sets the pump average energy price\r\n| setLinkPumpECurve                 |Sets the pump efficiency v\r\n| setLinkPumpEPat                   |Sets the pump energy price time pattern index\r\n| setLinkPumpHCurve                 |Sets the pump head v\r\n| setLinkPumpHeadCurveIndex         |Sets the curves index for pumps index|\r\n| setLinkPumpPatternIndex           |Sets the pump speed time pattern index\r\n| setLinkPumpPower                  |Sets the power for pumps\r\n| setLinkRoughnessCoeff             |Sets the values of roughness coefficient\r\n| setLinkSettings                   |Sets the values of current settings, roughness for pipes or initial speed for pumps or initial setting for valves\r\n| setLinkStatus                     |Sets the values of current status for links\r\n| setLinkTypePipe                   |Sets the link type pipe for a specified link\r\n| setLinkTypePipeCV                 |Sets the link type cvpipe(pipe with check valve) for a specified link\r\n| setLinkTypePump                   |Sets the link type pump for a specified link\r\n| setLinkTypeValveFCV               |Sets the link type valve FCV(flow control valve) for a specified link\r\n| setLinkTypeValveGPV               |Sets the link type valve GPV(general purpose valve) for a specified link\r\n| setLinkTypeValvePBV               |Sets the link type valve PBV(pressure breaker valve) for a specified link\r\n| setLinkTypeValvePRV               |Sets the link type valve PRV(pressure reducing valve) for a specified link\r\n| setLinkTypeValvePSV               |Sets the link type valve PSV(pressure sustaining valve) for a specified link\r\n| setLinkTypeValveTCV               |Sets the link type valve TCV(throttle control valve) for a specified link\r\n| setLinkVertices                   |Assigns a set of internal vertex points to a link\r\n| setLinkWallReactionCoeff          |Sets the value of wall chemical reaction coefficient\r\n| setNodeBaseDemands                |Sets the values of demand for nodes\r\n| setNodeComment                    |Sets the comment string assigned to the node object\r\n| setNodeCoordinates                |Sets node coordinates\r\n| setNodeDemandPatternIndex         |Sets the values of demand time pattern indices\r\n| setNodeElevations                 |Sets the values of elevation for nodes\r\n| setNodeEmitterCoeff               |Sets the values of emitter coefficient for nodes\r\n| setNodeInitialQuality             |Sets the values of initial quality for nodes\r\n| setNodeJunctionData               |Sets a group of properties for a junction node\r\n| setNodeJunctionDemandName         |Assigns a name to a node's demand category\r\n| setNodeNameID                     |Sets the ID name for nodes\r\n| setNodeSourcePatternIndex         |Sets the values of quality source pattern index\r\n| setNodeSourceQuality              |Sets the values of quality source strength\r\n| setNodeSourceType                 |Sets the values of quality source type\r\n| setNodeTankBulkReactionCoeff      |Sets the tank bulk reaction coefficient\r\n| setNodeTankCanOverFlow            |Sets the tank can-overflow (= 1) or not (= 0)\r\n| setNodeTankData                   |Sets a group of properties for a tank\r\n| setNodeTankDiameter               |Sets the diameter value for tanks\r\n| setNodeTankInitialLevel           |Sets the values of initial level for tanks\r\n| setNodeTankMaximumWaterLevel      |Sets the maximum water level value for tanks\r\n| setNodeTankMinimumWaterLevel      |Sets the minimum water level value for tanks\r\n| setNodeTankMinimumWaterVolume     |Sets the minimum water volume value for tanks\r\n| setNodeTankMixingFraction         |Sets the tank mixing fraction of total volume occupied by the inlet/outlet zone in a 2-compartment tank\r\n| setNodeTankMixingModelType        |Sets the mixing model type value for tanks\r\n| setNodeTypeJunction               |Transforms a node to JUNCTION The new node keeps the id,coordinates and elevation of the deleted on\r\n| setNodeTypeReservoir              |Transforms a node to RESERVOIR The new node keeps the id,coordinates and elevation of the deleted on\r\n| setNodeTypeTank                   |Transforms a node to TANK The new node keeps the id,coordinates and elevation of the deleted on\r\n| setNodesConnectingLinksID         |Sets the IDs of a link's start- and end-nodes\r\n| setOptionsAccuracyValue           |Sets the total normalized flow change for hydraulic convergence\r\n| setOptionsCheckFrequency          |Sets the frequency of hydraulic status checks\r\n| setOptionsDampLimit               |Sets the accuracy level where solution damping begins\r\n| setOptionsDemandCharge            |Sets the energy charge per maximum KW usage\r\n| setOptionsEmitterExponent         |Sets the power exponent for the emmitters\r\n| setOptionsExtraTrials             |Sets the extra trials allowed if hydraulics don't converge\r\n| setOptionsFlowChange              |Sets the maximum flow change for hydraulic convergence\r\n| setOptionsGlobalEffic             |Sets the global efficiency for pumps(percent)\r\n| setOptionsGlobalPattern           |Sets the global energy price pattern\r\n| setOptionsGlobalPrice             |Sets the global average energy price per kW-Hour\r\n| setOptionsHeadError               |Sets the maximum head loss error for hydraulic convergence\r\n| setOptionsHeadLossFormula         |Sets the headloss formula\r\n| setOptionsLimitingConcentration   |Sets the limiting concentration for growth reactions\r\n| setOptionsMaxTrials               |Sets the maximum hydraulic trials allowed for hydraulic convergence\r\n| setOptionsMaximumCheck            |Sets the maximum trials for status checking\r\n| setOptionsPatternDemandMultiplier |Sets the global pattern demand multiplier\r\n| setOptionsPipeBulkReactionOrder   |Sets the bulk water reaction order for pipes\r\n| setOptionsPipeWallReactionOrder   |Sets the wall reaction order for pipes (either 0 or 1)\r\n| setOptionsQualityTolerance        |Sets the water quality analysis tolerance\r\n| setOptionsSpecificDiffusivity     |Sets the specific diffusivity (relative to chlorine at 20 deg C)\r\n| setOptionsSpecificGravity         |Sets the specific gravity\r\n| setOptionsSpecificViscosity       |Sets the specific viscosity\r\n| setOptionsTankBulkReactionOrder   |Sets the bulk water reaction order for tanks\r\n| setPattern                        |Sets all of the multiplier factors for a specific time pattern\r\n| setPatternComment                 |Sets the comment string assigned to the pattern object\r\n| setPatternMatrix                  |Sets all of the multiplier factors for all time patterns\r\n| setPatternNameID                  |Sets the name ID of a time pattern given it's index and the new ID\r\n| setPatternValue                   |Sets the multiplier factor for a specific period within a time pattern\r\n| setQualityType                    |Sets the type of water quality analysis called for\r\n| setReport                         |Issues a report formatting command\r\n| setReportFormatReset              |Resets a project's report options to their default values\r\n| setReportStatus                   |Sets the level of hydraulic status reporting\r\n| setRuleElseAction                 |Sets rule - based control else actions\r\n| setRulePremise                    |Sets the premise of a rule - based control\r\n| setRulePremiseObejctNameID        |Sets the ID of an object in a premise of a rule-based control\r\n| setRulePremiseStatus              |Sets the status being compared to in a premise of a rule-based control\r\n| setRulePremiseValue               |Sets the value being compared to in a premise of a rule-based control\r\n| setRulePriority                   |Sets rule - based control priority\r\n| setRuleThenAction                 |Sets rule - based control then actions\r\n| setRules                          |Sets a rule - based control\r\n| setTimeHydraulicStep              |Sets the hydraulic time step\r\n| setTimePatternStart               |Sets the time when time patterns begin\r\n| setTimePatternStep                |Sets the time pattern step\r\n| setTimeQualityStep                |Sets the quality time step\r\n| setTimeReportingStart             |Sets the time when reporting starts\r\n| setTimeReportingStep              |Sets the reporting time step\r\n| setTimeRuleControlStep            |Sets the rule-based control evaluation time step\r\n| setTimeSimulationDuration         |Sets the simulation duration (in seconds)\r\n| setTimeStatisticsType             |Sets the statistic type\r\n| setTitle                          |Sets the title lines of the project\r\n| solveCompleteHydraulics           |Runs a complete hydraulic simulation with results for all time periods written to the binary Hydraulics file\r\n| solveCompleteQuality              |Runs a complete water quality simulation with results at uniform reporting intervals written to EPANET's binary Output file\r\n| splitPipe                         |Splits a pipe, creating two new pipes and adds a junction/node in between\r\n| stepQualityAnalysisTimeLeft       |Advances the water quality simulation one water quality time step\r\n| unload                            |unload library and close the EPANET Toolkit system\r\n| useHydraulicFile                  |Uses the contents of the specified file as the current binary hydraulics file\r\n| writeLineInReportFile             |Writes a line of text to the EPANET report file\r\n| writeReport                       |Writes a formatted text report on simulation results to the Report file\r\n| <b> MSX Functions </b>            \r\n| loadMSXFile                       |Opens the EPANET-MSX toolkit system|\r\n| unloadMSX                         |Closes the EPANET-MSX toolkit system|\r\n| addMSXPattern                     |Adds a new, empty MSX source time pattern to the project|\r\n| writeMSXFile                      |Write a new MSX file|\r\n| initializeMSXQualityAnalysis      |Initializes the MSX system before solving for water quality results in step-wise fashion|\r\n| getMethods                        |Returns all methods of epanet|\r\n| getMSXComputedQualitySpecie       |Retrieves the quality values for specific specie (e.g getMSXComputedQualitySpecie('CL2'))|\r\n| getMSXComputedLinkQualitySpecie   |Returns the link quality for specific specie|\r\n| getMSXComputedNodeQualitySpecie   |Returns the node quality for specific specie|\r\n| getMSXComputedQualityNode         |Retrieves the concentration of a chemical species at a specific node of the network at the current simulation time step.|\r\n| stepMSXQualityAnalysisTimeLeft    |Advances the water quality solution through a single water quality time step when performing a step-wise simulation|\r\n| saveMSXFile                       |Saves the data associated with the current MSX project into a new MSX input file|\r\n| saveMSXQualityFile                |Saves water quality results computed for each node, link and reporting time period to a named binary file|\r\n| getMSXSourcePatternIndex          |Retrieves the value of all node source pattern index|\r\n| getMSXLinkInitqualValue           |Retrieves the initial concentration of chemical species assigned to links of the pipe network|\r\n| getMSXNodeInitqualValue           |Retrieves the initial concentration of chemical species assigned to nodes|\r\n| getMSXSourceLevel                 |Retrieves the value of all nodes source level|\r\n| getMSXSourceType                  |Retrieves the value of all node source type|\r\n| getMSXSourceNodeNameID            |Retrieves the ID label of all nodes|\r\n| getMSXSpeciesCount                |Retrieves the number of species|\r\n| getMSXSpeciesNameID               |Retrieves the species IDs|\r\n| getMSXSpeciesIndex                |Retrieves the indices of species|\r\n| getMSXSpeciesType                 |Retrieves the type of all species (BULK/WALL)|\r\n| getMSXSpeciesUnits                |Retrieves the species mass units|\r\n| getMSXSpeciesATOL                 |Retrieves the atol|\r\n| getMSXSpeciesRTOL                 |Retrieves the rtol|\r\n| getMSXSpeciesConcentration        |Retrieves the concentration of chemical species for nodes and links|\r\n| getMSXConstantsCount              |Retrieves the number of constants|\r\n| getMSXConstantsNameID             |Retrieves the ID name of constants (given its internal index number)|\r\n| getMSXConstantsIndex              |Retrieves the internal index number of constants (given its ID name)|\r\n| getMSXPattern                     |Retrieves the multiplier factor for all patterns and all times|\r\n| getMSXPatternsCount               |Retrieves the number of patterns|\r\n| getMSXPatternValue                |Retrieves the multiplier at a specific time period for a given source time pattern|\r\n| getMSXPatternsNameID              |Retrieves the patterns IDs|\r\n| getMSXPatternsIndex               |Retrieves the indices of patterns|\r\n| getMSXPatternsLengths             |Retrieves the number of time periods in all or some patterns|\r\n| getMSXParametersCount             |Retrieves the number of parameters|\r\n| getMSXParametersNameID            |Retrieves the ID name of parameters|\r\n| getMSXParametersIndex             |Retrieves the indices of parameters|\r\n| getMSXParametersPipesValue        |Retrieves the value of reaction parameters for pipes|\r\n| getMSXParametersTanksValue        |Retrieves the value of reaction parameters for tanks|\r\n| solveMSXCompleteHydraulics        |Solves for system hydraulics over the entire simulation period saving results to an internal scratch file|\r\n| solveMSXCompleteQuality           |Solves for water quality over the entire simulation period and saves the results to an internal scratch file|\r\n| getMSXError                       |Returns the text for an error message given its error code|\r\n| getMSXOptions                     |Retrieves all the msx option parameters|\r\n| getMSXTimeStep                    |Retrieves the time step|\r\n| getMSXRateUnits                   |Retrieves the rate/time units (SEC/MIN/HR/DAY)|\r\n| getMSXAreaUnits                   |Retrieves the area units (FT2/M2/CM2)|\r\n| getMSXCompiler                    |Retrieves the compiler (NONE/VC/GC)|\r\n| getMSXCoupling                    |Retrieves the coupling (FULL/NONE)|\r\n| getMSXAtol                        |Retrieves the absolute concentration tolerance|\r\n| getMSXRtol                        |Retrieves the relative concentration tolerance|\r\n| getMSXComputedQualitySpecie       |Retrieves the quality values for specific specie (e.g getMSXComputedQualitySpecie(['CL2']))|\r\n| getMSXEquationsPipes              |Retrieves the species dynamics in pipes|\r\n| getMSXEquationsTanks              |Retrieves the species dynamics in tanks|\r\n| getMSXEquationsTerms              |Retrieves the species dynamics in terms|\r\n| setMSXAreaUnitsCM2                |Sets area units to CM2|\r\n| setMSXAreaUnitsFT2                |Sets area units to FT2|\r\n| setMSXAreaUnitsM2                 |Sets area units to M2|\r\n| setMSXAtol                        |Sets the value of Atol|\r\n| setMSXRtol                        |Sets the value of Rtol|\r\n| setMSXCompilerGC                  |Sets compilet to GC|\r\n| setMSXCompilerNONE                |Sets compiler to None|\r\n| setMSXCompilerVC                  |Sets compiler to VC|\r\n| setMSXCouplingFULL                |Sets coupling option to FULL|\r\n| setMSXCouplingNONE                |Sets coupling option to NONE|\r\n| setMSXRateUnitsDAY                |Sets rate units to DAY|\r\n| setMSXRateUnitsHR                 |Sets rate units to HR|\r\n| setMSXRateUnitsMIN                |Sets rate units to MIN|\r\n| setMSXRateUnitsSEC                |Sets rate units to SEC|\r\n| setMSXSolverEUL                   |Sets solver to EUL (standard Euler integrator)|\r\n| setMSXSolverRK5                   |Sets solver to RK5 (Runge-Kutta 5th order integrator)|\r\n| setMSXSolverROS2                  |Sets solver to ROS2 (2nd order Rosenbrock integrator)|\r\n| setMSXTimeStep                    |Sets time step|\r\n| setMSXPatternValue                |Assigns a new value to the multiplier for a specific time period in a given MSX source time pattern|\r\n| setMSXPattern                     |Sets all of the multiplier factors for a specific time pattern|\r\n| setMSXParametersPipesValue        |Assigns a value to a particular reaction parameter for given pipes|\r\n| setMSXParametersTanksValue        |Assigns a value to a particular reaction parameter for given tanks|\r\n| setMSXConstantsValue              |Assigns a new value to a specific reaction constant|\r\n| setMSXLinkInitqualValue           |Assigns an initial concentration of chemical species to links|\r\n| setMSXNodeInitqualValue           |Assigns an initial concentration of chemical species to nodes|\r\n| setMSXSources                     |Sets the attributes of an external source of a particular chemical species to a specific node of the pipe network|\r\n| useMSXHydraulicFile               |Uses a previously saved EPANET hydraulics file as the source of hydraulic information|\r\n\r\n\r\n## List of EPANET 2.2 Functions \r\n\r\n|Function|Description|\r\n|---------|----------|\r\n|ENepanet|Runs a complete EPANET simulation\r\n|ENaddcontrol|Adds a new simple control to a project\r\n|ENaddcurve|Adds a new data curve to a project\r\n|ENadddemand|Appends a new demand to a junction node demands list\r\n|ENaddlink|Adds a new link to a project\r\n|ENaddnode|Adds a new node to a project\r\n|ENaddpattern|Adds a new time pattern to a project\r\n|ENaddrule|Adds a new rule-based control to a project\r\n|ENclearreport|Clears the contents of a project's report file\r\n|ENclose|Closes a project and frees all of its memory\r\n|ENcloseH|Closes the hydraulic solver freeing all of its allocated memory\r\n|ENcloseQ|Closes the water quality solver, freeing all of its allocated memory\r\n|ENcopyreport|Copies the current contents of a project's report file to another file\r\n|ENcreateproject|Copies the current contents of a project's report file to another file\r\n|ENdeletecontrol|Deletes an existing simple control\r\n|ENdeletecurve|Deletes a data curve from a project\r\n|ENdeletedemand|Deletes a demand from a junction node\r\n|ENdeletelink|Deletes a link from the project\r\n|ENdeletenode|Deletes a node from a project\r\n|ENdeletepattern|Deletes a time pattern from a project\r\n|ENdeleteproject|Deletes an EPANET project\r\n|ENdeleterule|Deletes an existing rule-based control\r\n|ENgetaveragepatternvalue|Retrieves the average of all pattern factors in a time pattern\r\n|ENgetbasedemand|Gets the base demand for one of a node's demand categories\r\n|ENgetcomment|Sets a comment to a specific index\r\n|ENgetcontrol|Retrieves the comment of a specific index of a type object\r\n|ENgetcoord|Gets the (x,y) coordinates of a node\r\n|ENgetcount|Retrieves the number of objects of a given type in a project\r\n|ENgetcurve|Retrieves all of a curve's data\r\n|ENgetcurveid|Retrieves the ID name of a curve given its index\r\n|ENgetcurveindex|Retrieves the index of a curve given its ID name\r\n|ENgetcurvelen|Retrieves the number of points in a curve\r\n|ENgetcurvetype|Retrieves a curve's type\r\n|ENgetcurvevalue|Retrieves the value of a single data point for a curve\r\n|ENgetdemandindex|Retrieves the index of a node's named demand category\r\n|ENgetdemandmodel|Retrieves the type of demand model in use and its parameters\r\n|ENgetdemandname|Retrieves the name of a node's demand category\r\n|ENgetdemandpattern|Retrieves the index of a time pattern assigned to one of a node's demand categories\r\n|ENgetelseaction|Gets the properties of an ELSE action in a rule-based control\r\n|ENgeterror|Returns the text of an error message generated by an error code, as warning\r\n|ENgetflowunits|Retrieves a project's flow units\r\n|ENgetheadcurveindex|Retrieves the curve assigned to a pump's head curve\r\n|ENgetlinkid|Gets the ID name of a link given its index\r\n|ENgetlinkindex|Gets the index of a link given its ID name\r\n|ENgetlinknodes|Gets the indexes of a link's start- and end-nodes\r\n|ENgetlinktype|Retrieves a link's type\r\n|ENgetlinkvalue|Retrieves a property value for a link\r\n|ENgetnodeid|Gets the ID name of a node given its index\r\n|ENgetnodeindex|Gets the index of a node given its ID name\r\n|ENgetnodetype|Retrieves a node's type given its index\r\n|ENgetnodevalue|Retrieves a property value for a node\r\n|ENgetnumdemands|Retrieves the number of demand categories for a junction node\r\n|ENgetoption|Retrieves the value of an analysis option\r\n|ENgetpatternid|Retrieves the ID name of a time pattern given its index\r\n|ENgetpatternindex|Retrieves the index of a time pattern given its ID name\r\n|ENgetpatternlen|Retrieves the number of time periods in a time pattern\r\n|ENgetpatternvalue|Retrieves a time pattern's factor for a given time period\r\n|ENgetpremise|Gets the properties of a premise in a rule-based control\r\n|ENgetpumptype|Retrieves the type of head curve used by a pump\r\n|ENgetqualinfo|Gets information about the type of water quality analysis requested\r\n|ENgetqualtype|Retrieves the type of water quality analysis to be run\r\n|ENgetresultindex|Retrieves the order in which a node or link appears in an output file\r\n|ENgetrule|Retrieves summary information about a rule-based control\r\n|ENgetruleID|Gets the ID name of a rule-based control given its index\r\n|ENgetstatistic|Retrieves a particular simulation statistic\r\n|ENgetthenaction|Gets the properties of a THEN action in a rule-based control\r\n|ENgettimeparam|Retrieves the value of a time parameter\r\n|ENgettitle|Retrieves the title lines of the project\r\n|ENgetversion|Retrieves the toolkit API version number\r\n|ENgetvertex|Retrieves the coordinate's of a vertex point assigned to a link\r\n|ENgetvertexcount|Retrieves the number of internal vertex points assigned to a link\r\n|ENinit|Initializes an EPANET project\r\n|ENinitH|Initializes a network prior to running a hydraulic analysis\r\n|ENinitQ|Initializes a network prior to running a water quality analysis\r\n|ENnextH| Determines the length of time until the next hydraulic event occurs in an extended period simulation\r\n|ENnextQ|Advances a water quality simulation over the time until the next hydraulic event\r\n|ENopen|Opens an EPANET input file & reads in network data\r\n|ENopenH|Opens a project's hydraulic solver\r\n|ENopenQ|Opens a project's water quality solver\r\n|ENreport|Writes simulation results in a tabular format to a project's report file\r\n|ENresetreport|Resets a project's report options to their default values\r\n|ENrunH|Computes a hydraulic solution for the current point in time\r\n|ENrunQ|Makes hydraulic and water quality results at the start of the current time period available to a project's water quality solver\r\n|ENsaveH|Transfers a project's hydraulics results from its temporary hydraulics file to its binary output file, where results are only reported at uniform reporting intervals\r\n|ENsavehydfile|Saves a project's temporary hydraulics file to disk\r\n|ENsaveinpfile|Saves a project's data to an EPANET-formatted text file\r\n|ENsetbasedemand|Sets the base demand for one of a node's demand categories\r\n|ENsetcomment|Sets a comment to a specific index\r\n|ENsetcontrol|Sets the properties of an existing simple control\r\n|ENsetcoord|Sets the (x,y) coordinates of a node\r\n|ENsetcurve|Assigns a set of data points to a curve\r\n|ENsetcurveid|Changes the ID name of a data curve given its index\r\n|ENsetcurvevalue|Sets the value of a single data point for a curve\r\n|ENsetdemandmodel|Sets the Type of demand model to use and its parameters\r\n|ENsetdemandname|Assigns a name to a node's demand category\r\n|ENsetdemandpattern|Sets the index of a time pattern used for one of a node's demand categories\r\n|ENsetelseaction|Sets the properties of an ELSE action in a rule-based control\r\n|ENsetflowunits|Sets a project's flow units\r\n|ENsetheadcurveindex|Assigns a curve to a pump's head curve\r\n|ENsetjuncdata|Sets a group of properties for a junction node\r\n|ENsetlinkid|Changes the ID name of a link\r\n|ENsetlinknodes|Sets the indexes of a link's start- and end-nodes\r\n|ENsetlinktype|Changes a link's type\r\n|ENsetlinkvalue|Sets a property value for a link\r\n|ENsetnodeid|Changes the ID name of a node\r\n|ENsetnodevalue|Sets a property value for a node\r\n|ENsetoption|Sets the value for an anlysis option\r\n|ENsetpattern|Sets the pattern factors for a given time pattern\r\n|ENsetpatternid|Changes the ID name of a time pattern given its index\r\n|ENsetpatternvalue|Sets a time pattern's factor for a given time period\r\n|ENsetpipedata|Sets a group of properties for a pipe link\r\n|ENsetpremise|Sets the properties of a premise in a rule-based control\r\n|ENsetpremiseindex|Sets the index of an object in a premise of a rule-based control\r\n|ENsetpremisestatus|Sets the status being compared to in a premise of a rule-based control\r\n|ENsetpremisevalue|Sets the value in a premise of a rule-based control\r\n|ENsetqualtype|Sets the type of water quality analysis to run\r\n|ENsetreport|Processes a reporting format command\r\n|ENsetrulepriority|Sets the priority of a rule-based control\r\n|ENsetstatusreport|Sets the level of hydraulic status reporting\r\n|ENsettankdata|Sets a group of properties for a tank node\r\n|ENsetthenaction|Sets the properties of a THEN action in a rule-based control\r\n|ENsettimeparam|Sets the value of a time parameter\r\n|ENsettitle|Sets the title lines of the project\r\n|ENsetvertices|Assigns a set of internal vertex points to a link\r\n|ENsolveH|Runs a complete hydraulic simulation with results for all time periods written to a temporary hydraulics file\r\n|ENsolveQ| Runs a complete water quality simulation with results at uniform reporting intervals written to the project's binary output file\r\n|ENstepQ|Advances a water quality simulation by a single water quality time step\r\n|ENusehydfile|Uses a previously saved binary hydraulics file to supply a project's hydraulics\r\n|ENwriteline|Writes a line of text to a project's report file\r\n\r\n&uparrow; [Back to top](#table-of-contents)\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "EPyT: An EPANET-Python Toolkit for Smart Water Network Simulations. The EPyT is inspired by the EPANET-Matlab Toolkit.",
    "version": "1.1.9",
    "project_urls": {
        "Bug Tracker": "https://github.com/OpenWaterAnalytics/EPyT/issues",
        "Homepage": "https://github.com/OpenWaterAnalytics/EPyT"
    },
    "split_keywords": [
        "epanet",
        " water",
        " networks",
        " hydraulics",
        " quality",
        " simulations",
        " emt",
        " epanet matlab toolkit"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "015a2bb4104904afc50f7e821a5613bf516d38cb797d77895a7005cd369f09db",
                "md5": "f455c3d7892dbc521407067c10496698",
                "sha256": "60f3bba9657c82aa378d3ffc8fa8fb4a650fbb32ed6404bfbe6a8001b66783e8"
            },
            "downloads": -1,
            "filename": "epyt-1.1.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f455c3d7892dbc521407067c10496698",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 8954323,
            "upload_time": "2024-06-25T10:25:09",
            "upload_time_iso_8601": "2024-06-25T10:25:09.082543Z",
            "url": "https://files.pythonhosted.org/packages/01/5a/2bb4104904afc50f7e821a5613bf516d38cb797d77895a7005cd369f09db/epyt-1.1.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-25 10:25:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "OpenWaterAnalytics",
    "github_project": "EPyT",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "epyt"
}
        
Elapsed time: 0.50018s