EPANET On-Line (EPANET-OL) Experimental Toolkit

Maybe put a cool looking dragon here!

And a bunch of words

EPANET-OL is a server-side computation engine that reads user supplied EPANET files {filename.inp}, instantiates a EPANET run, and an ASCII output (report) file {filename.out}, and a BINARY file.

The implementation uses the command line build(s) of EPANET. The input file is uploaded to the server, then a server-side call to EPANET2 (or 3) is made, the server processes the input file and writes the output file(s) to the server, notifies the remote user upon completion, whereupon the result files can be retrieved.

EPANET-OL is an ongoing experiment investigating an entirely web-based EPANET implementation with a Graphical User Interface and Toolkit that may someday suppliment end-user EPANET installations. The value to the modeling community is a single build of the EPANET model so that as future versions are built, they too can be placed into an on-line implementation so the end user is always able to use the most current stable version of EPANET.

Additional value is to be realized in comparisions of INPUT=>OUTPUT performance for code evolution (and backwards compatability). Specifically, older versions remain available for validating historical installations.

The current version of the On-Line resource uses a challenge-password to access the on-line uploader to place input files. This challenge-password model is to limit the concurrent user counts until the technology is developed enough to support many concurrent users. A file size limitation is imposed, however EPANET input files are quite efficient and the limit should not be an issue.

2017-0329 Begin EPANET-OL project.
1) Fix 'malloc.h' in source code to correct path on MacOS.
2) Compile EN2 from source code to run on MacOS.
3) Test in shell.
1) Programmed php uploader.
2) Write HTML Laucher.
3) Python script (in CGI) to ingest file and launch process.
4) Test in browser.
1) Begin reverse engineer GUI for eventual web-browser version
1) Compile EN3 from source code using CMAKE on MacOS.
2) Generated 3 warnings ignored, test run OK in shell.
3) Call to EN3 process from html/python fails error code -6. malloc again????
1) Write bash script to call from html after files placed.
2) Return code 0. Yay!
3) Modify python launcher script to use EN2 or EN3.
4) Modify file naming convention to insert a 2 or 3 to indicate which process is used.

1) Create a user builder to construct workspace for multiple users and issue passwds.
2) Create a subdirectory builder in working files to manage individual projects.
3) Improved ERROR handler for file upload/download.
4) Improved launcher so user can browse INP files in the launcher space.
4) Run in nohup mode, send end user a message run is complete for long runs.

EPANET2 On-Line I/O Files Displays Current EPANET On-Line Documents (FTP-type listing in browser)

Upload A New EPANET Input File Upload an EPANET Input File. The uploader will OVERWRITE CLOBBERS existing files if filenames are the same.

The ERROR handler is primitave -- if upload succeeds, you will get a message saying so; If the upload fails you may get a 404 Error, or just plain nothing.

Run a EPANET-OL Model This will open an web-page where you supply input filename (already uploaded) and a desired output filename.

When you click SUBMIT, the server will attempt to run a EPANET model and produce an output file. During a model run, the server may be unresponsive, when the run is complete you can download the output file.

Web Interface to Build Input Files This is EXPERIMENTAl JavaScript to generate an EPANET .INP file for server-side processing. The script is built from a tool originally developed by www.zonus.com (and cited). The developer stopped and worked on the GUI and added ability to use Maps from the web, recompiled, and distributed this tool. A copy is available elsewhere on this website. Uses Google API 2 == obsolete

Yet Another Web Interface to Build Input Files Nothing yet, but gonna use epanet.de as basis for development.