From 0164a8ecacf4f38cce244d6a1deacdde294afa5d Mon Sep 17 00:00:00 2001 From: dbhart Date: Thu, 28 Sep 2023 11:27:17 -0600 Subject: [PATCH 01/29] Proposed updates to the documentation theme --- documentation/_static/epa_logo.png | Bin 0 -> 29874 bytes documentation/_static/logo.jpg | Bin 0 -> 298722 bytes documentation/_static/snl_logo.png | Bin 0 -> 4294 bytes documentation/_static/wntr-favicon.svg | 42 +++++++ documentation/_templates/autosummary/base.rst | 15 +++ .../_templates/autosummary/class.rst | 37 ++++++ .../_templates/autosummary/exception.rst | 34 ++++++ .../_templates/autosummary/module.rst | 73 ++++++++++++ documentation/conf.py | 108 +++++++++++++++--- documentation/index.rst | 49 +++----- documentation/index_latex.rst | 4 + documentation/userguide.rst | 95 +++++++++++++++ documentation/wntr-api.rst | 29 +++++ requirements.txt | 2 + 14 files changed, 436 insertions(+), 52 deletions(-) create mode 100644 documentation/_static/epa_logo.png create mode 100644 documentation/_static/logo.jpg create mode 100644 documentation/_static/snl_logo.png create mode 100644 documentation/_static/wntr-favicon.svg create mode 100644 documentation/_templates/autosummary/base.rst create mode 100644 documentation/_templates/autosummary/class.rst create mode 100644 documentation/_templates/autosummary/exception.rst create mode 100644 documentation/_templates/autosummary/module.rst create mode 100644 documentation/userguide.rst create mode 100644 documentation/wntr-api.rst diff --git a/documentation/_static/epa_logo.png b/documentation/_static/epa_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fcc6403f3abd45c23d4856b15fc05146047e876a GIT binary patch literal 29874 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 literal 0 HcmV?d00001 diff --git a/documentation/_static/logo.jpg b/documentation/_static/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd589502237bfeacae856ac0424223e598562502 GIT binary patch literal 298722 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

4JLXOmVjv;?XPvdFBT1Dl9 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�H-Ka_V>#g4_@CjBXR$WZkJ# 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�o$aYqJQY?HjOI%SMmB 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 u@j6~@I(nJ^ef~Rx|7_qt8~D!#{ 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 literal 0 HcmV?d00001 diff --git a/documentation/_static/wntr-favicon.svg b/documentation/_static/wntr-favicon.svg new file mode 100644 index 000000000..721c39ec9 --- /dev/null +++ b/documentation/_static/wntr-favicon.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_templates/autosummary/base.rst b/documentation/_templates/autosummary/base.rst new file mode 100644 index 000000000..667f19687 --- /dev/null +++ b/documentation/_templates/autosummary/base.rst @@ -0,0 +1,15 @@ +{% if objtype == 'property' %} +:orphan: +{% endif %} + +{{ objname | escape | underline}} + +.. rubric:: *module* :mod:`{{ module }}` + +.. currentmodule:: {{ module }} + +{% if objtype == 'property' %} +property +{% endif %} + +.. auto{{ objtype }}:: {{ fullname | replace(module + ".", module + "::") }} diff --git a/documentation/_templates/autosummary/class.rst b/documentation/_templates/autosummary/class.rst new file mode 100644 index 000000000..a1b1e1ca8 --- /dev/null +++ b/documentation/_templates/autosummary/class.rst @@ -0,0 +1,37 @@ +{{ objname | escape | underline}} + +.. rubric:: *module* :mod:`{{ module }}` + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + +{% block methods %} +{% if methods %} + .. HACK -- the point here is that we don't want this to appear in the output, but the autosummary should still generate the pages. + .. autosummary:: + + {% for item in all_methods %} + {%- if not item.startswith('_') or item in ['__call__'] %} + {{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} +{% endif %} +{% endblock %} + +{% block attributes %} +{% if attributes %} + .. HACK -- the point here is that we don't want this to appear in the output, but the autosummary should still generate the pages. + .. autosummary:: + + {% for item in all_attributes %} + {%- if not item.startswith('_') %} + {{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} +{% endif %} +{% endblock %} + + {% if methods or attributes %} + .. rubric:: Class Details + {% endif %} diff --git a/documentation/_templates/autosummary/exception.rst b/documentation/_templates/autosummary/exception.rst new file mode 100644 index 000000000..8d05ab977 --- /dev/null +++ b/documentation/_templates/autosummary/exception.rst @@ -0,0 +1,34 @@ +{{ objname | escape | underline}} + +.. rubric:: *module* :mod:`{{ module }}` + +.. currentmodule:: {{ module }} + +.. autoexception:: {{ objname }} + :no-inherited-members: + +{% block methods %} +{% if methods %} + .. HACK -- the point here is that we don't want this to appear in the output, but the autosummary should still generate the pages. + .. autosummary:: + + {% for item in all_methods %} + {%- if not item.startswith('_') or item in ['__call__'] %} + {{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} +{% endif %} +{% endblock %} + +{% block attributes %} +{% if attributes %} + .. HACK -- the point here is that we don't want this to appear in the output, but the autosummary should still generate the pages. + .. autosummary:: + + {% for item in all_attributes %} + {%- if not item.startswith('_') %} + {{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} +{% endif %} +{% endblock %} diff --git a/documentation/_templates/autosummary/module.rst b/documentation/_templates/autosummary/module.rst new file mode 100644 index 000000000..83da37cbc --- /dev/null +++ b/documentation/_templates/autosummary/module.rst @@ -0,0 +1,73 @@ +{{ fullname | escape | underline}} + +.. automodule:: {{ fullname }} + :exclude-members: {% for item in attributes %}{{ item }}, {% endfor %}{% for item in functions %}{{ item }}, {% endfor %}{% for item in classes %}{{ item }}, {% endfor %}{% for item in exceptions %}{{ item }}, {% endfor %} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Module Attributes') }} + + .. autosummary:: + :toctree: + :template: autosummary/base.rst + {% for item in attributes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :nosignatures: + :toctree: + :template: autosummary/base.rst + {% for item in functions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :nosignatures: + :toctree: + :template: autosummary/class.rst + {% for item in classes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :nosignatures: + :toctree: + :template: autosummary/exception.rst + {% for item in exceptions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + +{% block modules %} +{% if modules %} +.. rubric:: Modules + +.. autosummary:: + :toctree: + :recursive: + :template: autosummary/module.rst +{% for item in modules %} + {{ item }} +{%- endfor %} +{% endif %} +{% endblock %} diff --git a/documentation/conf.py b/documentation/conf.py index 38819bec8..e18dfb79b 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -31,6 +31,7 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + # 'numpydoc', 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', @@ -40,15 +41,51 @@ 'sphinx.ext.autosummary', 'sphinx.ext.napoleon', 'sphinx.ext.intersphinx', -] - + 'sphinx_design', +] + +add_function_parentheses = True +add_module_names = False +python_display_short_literal_types = True + +toc_object_entries = True +toc_object_entries_show_parents = 'hide' + +napoleon_google_docstring = False +napoleon_numpy_docstring = True +napoleon_include_init_with_doc = False +napoleon_include_private_with_doc = False +napoleon_include_special_with_doc = False +napoleon_use_admonition_for_examples = False +napoleon_use_admonition_for_notes = False +napoleon_use_admonition_for_references = True +napoleon_preprocess_types = False +napoleon_use_ivar = True +napoleon_use_param = False napoleon_use_rtype = False -viewcode_import = True -numpydoc_show_class_members = True -numpydoc_show_inherited_class_members = False -numpydoc_class_members_toctree = False -autodoc_member_order = 'bysource' +napoleon_use_keyword = True +napoleon_custom_sections = ['Read-only Simulation Attributes', 'Class Methods', 'Enum Members', 'Model Description'] + +# viewcode_import = False + +autodoc_default_options = { + # 'members': True, + 'undoc-members': True, + 'private-members': False, + 'special-members': False, + 'inherited-members': True, + 'show-inheritance': True, + 'member-order': 'groupwise', + 'typehints': 'description', + 'typehints-format': 'short', +} + +# autodoc_class_signature = 'separated' +autodoc_typehints_format = 'short' +autodoc_type_aliases = {'Literal': 'Literal', 'Name':'Name', 'NameList':'NameList', 'LiteralList':'LiteralList', 'Key':'Key', 'KeyList':'KeyList','Verbatim': 'Verbatim', 'URI': 'URI', 'Date':'Date', 'Range':'Range', 'SeparatedValues':'SeparatedValues',} + autoclass_content = 'both' + numfig=True numfig_format = {'figure': 'Figure %s', 'table': 'Table %s', 'code-block': 'Listing %s'} @@ -56,7 +93,8 @@ templates_path = ['_templates'] import glob -autosummary_generate = glob.glob("apidoc/*.rst") +autosummary_generate = ["wntr-api.rst",] + glob.glob("apidoc/*.rst") +autosummary_generate_overwrite = True # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: @@ -134,26 +172,58 @@ # a list of builtin themes. #html_theme = 'sphinx_rtd_theme' -def setup(app): - app.add_css_file( "wntr.css") on_rtd = os.environ.get('READTHEDOCS', None) == 'True' if not on_rtd: # only import and set the theme if we're building docs locally - import sphinx_rtd_theme - html_theme = 'sphinx_rtd_theme' - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] - html_style = 'wntr.css' + html_theme = 'pydata_sphinx_theme' + else: + def setup(app): + app.add_css_file( "wntr.css") html_theme = 'default' # html_context = { # 'css_files': ['_static/wntr.css'], # } - + # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} - +html_theme_options = { + "icon_links": [ + { + # Label for this link + "name": "GitHub", + # URL where the link will redirect + "url": "https://github.com/USEPA/WNTR", # required + # Icon class (if "type": "fontawesome"), or path to local image (if "type": "local") + "icon": "fa-brands fa-github", + # The type of image to be used (see below for details) + "type": "fontawesome", + }, + { + "name": "PyPI", + "url": "https://pypi.org/project/wntr", + "icon": "fa-brands fa-pypi", + }, + { + "name": "Sandia National Laboratories", + "url": "https://sandia.gov", # required + "icon": "_static/snl_logo.png", + "type": "local", + }, + { + "name": "U.S. Environmental Protection Agency", + "url": "https://epa.gov", # required + "icon": "_static/epa_logo.png", + "type": "local", + }, + ], + "use_edit_page_button": False, + "primary_sidebar_end": ["indices.html"], + "show_toc_level": 2, + # "secondary_sidebar_items": ["page-toc"], #["page-toc", "edit-this-page", "sourcelink"], + "navbar_end": ["search-field.html", "theme-switcher.html", "navbar-icon-links.html",], +} # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] @@ -166,12 +236,12 @@ def setup(app): # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = 'figures/wntr.png' +html_logo = '_static/logo.jpg' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +html_favicon = "_static/wntr-favicon.svg" # The style sheet to use for HTML and HTML Help pages. A file of that name # must exist either in Sphinx' static/ path, or in one of the custom paths diff --git a/documentation/index.rst b/documentation/index.rst index 5ef2fdd51..537185fcd 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -1,45 +1,24 @@ .. figure:: figures/logo.jpg :scale: 10 % :alt: Logo - + +Water Network Tool for Resilience (WNTR) +======================================== + The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package designed to simulate and analyze resilience of water distribution networks. +.. rubric:: Contents .. toctree:: :maxdepth: 1 - - overview - installation - framework - units - getting_started - waternetworkmodel - model_io - controls - networkxgraph - layers - options - hydraulics - waterquality - resultsobject - disaster_models - criticality - resilience - fragility - morph - graphics - gis - advancedsim - license - whatsnew - developers - users - API documentation + + userguide + wntr-api acronyms reference -Citing WNTR ------------------ +.. rubric:: Citing WNTR + To cite WNTR, use one of the following references: * Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. @@ -48,8 +27,11 @@ To cite WNTR, use one of the following references: * Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 +Legal notices +============= + US EPA Disclaimer ---------------------- +----------------- The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. @@ -58,12 +40,13 @@ the contents necessarily reflect the views of the Agency. Mention of trade names EPA approval, endorsement, or recommendation. Sandia Funding Statement --------------------------------- +------------------------ Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. + Indices and tables ================== diff --git a/documentation/index_latex.rst b/documentation/index_latex.rst index 6101da9a4..ad74854bd 100644 --- a/documentation/index_latex.rst +++ b/documentation/index_latex.rst @@ -1,3 +1,7 @@ +.. + :orphan: + + WNTR documentation ================================== diff --git a/documentation/userguide.rst b/documentation/userguide.rst new file mode 100644 index 000000000..7d6d4cc5a --- /dev/null +++ b/documentation/userguide.rst @@ -0,0 +1,95 @@ +.. figure:: figures/logo.jpg + :scale: 10 % + :alt: Logo + +User Guide +========== + +The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package +designed to simulate and analyze resilience of water distribution networks. + +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Introduction + + overview + installation + framework + units + getting_started + +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Model building + + waternetworkmodel + model_io + controls + networkxgraph + layers + options + +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Simulation + + hydraulics + waterquality + resultsobject + +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Analysis + + disaster_models + criticality + resilience + fragility + morph + graphics + gis + advancedsim + +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Backmatter + + license + whatsnew + developers + users + acronyms + reference + + +Citing WNTR +----------------- +To cite WNTR, use one of the following references: + +* Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. + +* Klise, K.A., Murray, R., Haxton, T. (2018). An overview of the Water Network Tool for Resilience (WNTR), In Proceedings of the 1st International WDSA/CCWI Joint Conference, Kingston, Ontario, Canada, July 23-25, 075, 8p. + +* Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 + +US EPA Disclaimer +--------------------- + +The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated +in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. +It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that +the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official +EPA approval, endorsement, or recommendation. + +Sandia Funding Statement +-------------------------------- + +Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and +Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the +U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. + diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst new file mode 100644 index 000000000..333cd23ce --- /dev/null +++ b/documentation/wntr-api.rst @@ -0,0 +1,29 @@ +.. _api_documentation: + +================= +API documentation +================= + +.. automodule:: wntr + :no-members: + :no-undoc-members: + :no-inherited-members: + + .. rubric:: Submodules + + .. autosummary:: + :toctree: apidoc + :recursive: + :template: autosummary/module.rst + + wntr.epanet + wntr.graphics + wntr.gis + wntr.metrics + wntr.morph + wntr.network + wntr.quality + wntr.scenario + wntr.sim + wntr.utils + diff --git a/requirements.txt b/requirements.txt index 77fd539c5..d1b60d772 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,7 +15,9 @@ rtree; sys_platform == "darwin" or sys_platform == "linux" # Documentation sphinx +sphinx_design sphinx_rtd_theme +pydata_sphinx_theme # Testing pytest From 53440bc6f6f2024bbfaa04cfa07572d9bcb43960 Mon Sep 17 00:00:00 2001 From: dbhart Date: Fri, 27 Oct 2023 17:05:49 -0600 Subject: [PATCH 02/29] Update to configuration --- .../_templates/autosummary/class.rst | 2 +- documentation/conf.py | 24 +++++++++---------- documentation/index.rst | 3 +-- documentation/index_latex.rst | 3 +-- documentation/wntr-api.rst | 2 +- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/documentation/_templates/autosummary/class.rst b/documentation/_templates/autosummary/class.rst index a1b1e1ca8..9e9adf167 100644 --- a/documentation/_templates/autosummary/class.rst +++ b/documentation/_templates/autosummary/class.rst @@ -33,5 +33,5 @@ {% endblock %} {% if methods or attributes %} - .. rubric:: Class Details + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ {% endif %} diff --git a/documentation/conf.py b/documentation/conf.py index e18dfb79b..620bca164 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -51,9 +51,9 @@ toc_object_entries = True toc_object_entries_show_parents = 'hide' -napoleon_google_docstring = False +napoleon_google_docstring = True napoleon_numpy_docstring = True -napoleon_include_init_with_doc = False +napoleon_include_init_with_doc = True napoleon_include_private_with_doc = False napoleon_include_special_with_doc = False napoleon_use_admonition_for_examples = False @@ -61,10 +61,10 @@ napoleon_use_admonition_for_references = True napoleon_preprocess_types = False napoleon_use_ivar = True -napoleon_use_param = False -napoleon_use_rtype = False -napoleon_use_keyword = True -napoleon_custom_sections = ['Read-only Simulation Attributes', 'Class Methods', 'Enum Members', 'Model Description'] +napoleon_use_param = True +napoleon_use_rtype = True +napoleon_use_keyword = False +napoleon_custom_sections = ['Read-only Simulation Attributes', 'Class Methods', 'Enum Members'] # viewcode_import = False @@ -76,15 +76,15 @@ 'inherited-members': True, 'show-inheritance': True, 'member-order': 'groupwise', - 'typehints': 'description', - 'typehints-format': 'short', } -# autodoc_class_signature = 'separated' +autodoc_class_signature = 'separated' +autodoc_typehints = 'description' autodoc_typehints_format = 'short' -autodoc_type_aliases = {'Literal': 'Literal', 'Name':'Name', 'NameList':'NameList', 'LiteralList':'LiteralList', 'Key':'Key', 'KeyList':'KeyList','Verbatim': 'Verbatim', 'URI': 'URI', 'Date':'Date', 'Range':'Range', 'SeparatedValues':'SeparatedValues',} +autodoc_typehints_description_target = 'documented' +autodoc_type_aliases = {'DataFrame': 'pandas DataFrame',} -autoclass_content = 'both' +autoclass_content = 'class' numfig=True numfig_format = {'figure': 'Figure %s', 'table': 'Table %s', 'code-block': 'Listing %s'} @@ -256,7 +256,7 @@ def setup(app): # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +html_extra_path = ['_data'] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. diff --git a/documentation/index.rst b/documentation/index.rst index 537185fcd..7f944c99f 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -14,8 +14,7 @@ designed to simulate and analyze resilience of water distribution networks. userguide wntr-api - acronyms - reference + users .. rubric:: Citing WNTR diff --git a/documentation/index_latex.rst b/documentation/index_latex.rst index ad74854bd..a54756660 100644 --- a/documentation/index_latex.rst +++ b/documentation/index_latex.rst @@ -1,5 +1,4 @@ -.. - :orphan: +:orphan: WNTR documentation diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst index 333cd23ce..509cb1f76 100644 --- a/documentation/wntr-api.rst +++ b/documentation/wntr-api.rst @@ -22,7 +22,7 @@ API documentation wntr.metrics wntr.morph wntr.network - wntr.quality + wntr.msx wntr.scenario wntr.sim wntr.utils From ae1337f0d725545ad887bf61d8db318f7f25a8c2 Mon Sep 17 00:00:00 2001 From: dbhart Date: Mon, 13 Nov 2023 11:34:58 -0700 Subject: [PATCH 03/29] autosummary_generate handles API docs --- documentation/apidoc/wntr.epanet.io.rst | 7 ---- documentation/apidoc/wntr.epanet.rst | 18 --------- documentation/apidoc/wntr.epanet.toolkit.rst | 7 ---- documentation/apidoc/wntr.epanet.util.rst | 7 ---- documentation/apidoc/wntr.gis.geospatial.rst | 7 ---- documentation/apidoc/wntr.gis.network.rst | 7 ---- documentation/apidoc/wntr.gis.rst | 15 -------- documentation/apidoc/wntr.graphics.color.rst | 7 ---- documentation/apidoc/wntr.graphics.curve.rst | 7 ---- documentation/apidoc/wntr.graphics.layer.rst | 7 ---- .../apidoc/wntr.graphics.network.rst | 7 ---- documentation/apidoc/wntr.graphics.rst | 18 --------- .../apidoc/wntr.metrics.economic.rst | 7 ---- .../apidoc/wntr.metrics.hydraulic.rst | 7 ---- documentation/apidoc/wntr.metrics.misc.rst | 7 ---- documentation/apidoc/wntr.metrics.rst | 18 --------- .../apidoc/wntr.metrics.topographic.rst | 7 ---- .../apidoc/wntr.metrics.water_security.rst | 7 ---- documentation/apidoc/wntr.morph.link.rst | 7 ---- documentation/apidoc/wntr.morph.node.rst | 7 ---- documentation/apidoc/wntr.morph.rst | 16 -------- documentation/apidoc/wntr.morph.skel.rst | 7 ---- documentation/apidoc/wntr.network.base.rst | 8 ---- .../apidoc/wntr.network.controls.rst | 8 ---- .../apidoc/wntr.network.elements.rst | 8 ---- documentation/apidoc/wntr.network.io.rst | 8 ---- documentation/apidoc/wntr.network.layer.rst | 8 ---- documentation/apidoc/wntr.network.model.rst | 8 ---- documentation/apidoc/wntr.network.options.rst | 7 ---- documentation/apidoc/wntr.network.rst | 21 ---------- documentation/apidoc/wntr.rst | 26 ------------- .../apidoc/wntr.scenario.earthquake.rst | 7 ---- .../apidoc/wntr.scenario.fragility_curve.rst | 7 ---- documentation/apidoc/wntr.scenario.rst | 16 -------- documentation/apidoc/wntr.sim.aml.rst | 12 ------ documentation/apidoc/wntr.sim.core.rst | 7 ---- documentation/apidoc/wntr.sim.epanet.rst | 7 ---- documentation/apidoc/wntr.sim.hydraulics.rst | 7 ---- documentation/apidoc/wntr.sim.results.rst | 7 ---- documentation/apidoc/wntr.sim.rst | 20 ---------- documentation/apidoc/wntr.sim.solvers.rst | 7 ---- documentation/apidoc/wntr.utils.logger.rst | 7 ---- .../apidoc/wntr.utils.ordered_set.rst | 8 ---- documentation/apidoc/wntr.utils.rst | 17 --------- documentation/conf.py | 9 ++++- documentation/environment.yml | 2 + documentation/index.rst | 6 +-- documentation/userguide.rst | 38 ++++++++++--------- documentation/wntr-api.rst | 1 - 49 files changed, 34 insertions(+), 457 deletions(-) delete mode 100644 documentation/apidoc/wntr.epanet.io.rst delete mode 100644 documentation/apidoc/wntr.epanet.rst delete mode 100644 documentation/apidoc/wntr.epanet.toolkit.rst delete mode 100644 documentation/apidoc/wntr.epanet.util.rst delete mode 100644 documentation/apidoc/wntr.gis.geospatial.rst delete mode 100644 documentation/apidoc/wntr.gis.network.rst delete mode 100644 documentation/apidoc/wntr.gis.rst delete mode 100644 documentation/apidoc/wntr.graphics.color.rst delete mode 100644 documentation/apidoc/wntr.graphics.curve.rst delete mode 100644 documentation/apidoc/wntr.graphics.layer.rst delete mode 100644 documentation/apidoc/wntr.graphics.network.rst delete mode 100644 documentation/apidoc/wntr.graphics.rst delete mode 100644 documentation/apidoc/wntr.metrics.economic.rst delete mode 100644 documentation/apidoc/wntr.metrics.hydraulic.rst delete mode 100644 documentation/apidoc/wntr.metrics.misc.rst delete mode 100644 documentation/apidoc/wntr.metrics.rst delete mode 100644 documentation/apidoc/wntr.metrics.topographic.rst delete mode 100644 documentation/apidoc/wntr.metrics.water_security.rst delete mode 100644 documentation/apidoc/wntr.morph.link.rst delete mode 100644 documentation/apidoc/wntr.morph.node.rst delete mode 100644 documentation/apidoc/wntr.morph.rst delete mode 100644 documentation/apidoc/wntr.morph.skel.rst delete mode 100644 documentation/apidoc/wntr.network.base.rst delete mode 100644 documentation/apidoc/wntr.network.controls.rst delete mode 100644 documentation/apidoc/wntr.network.elements.rst delete mode 100644 documentation/apidoc/wntr.network.io.rst delete mode 100644 documentation/apidoc/wntr.network.layer.rst delete mode 100644 documentation/apidoc/wntr.network.model.rst delete mode 100644 documentation/apidoc/wntr.network.options.rst delete mode 100644 documentation/apidoc/wntr.network.rst delete mode 100644 documentation/apidoc/wntr.rst delete mode 100644 documentation/apidoc/wntr.scenario.earthquake.rst delete mode 100644 documentation/apidoc/wntr.scenario.fragility_curve.rst delete mode 100644 documentation/apidoc/wntr.scenario.rst delete mode 100644 documentation/apidoc/wntr.sim.aml.rst delete mode 100644 documentation/apidoc/wntr.sim.core.rst delete mode 100644 documentation/apidoc/wntr.sim.epanet.rst delete mode 100644 documentation/apidoc/wntr.sim.hydraulics.rst delete mode 100644 documentation/apidoc/wntr.sim.results.rst delete mode 100644 documentation/apidoc/wntr.sim.rst delete mode 100644 documentation/apidoc/wntr.sim.solvers.rst delete mode 100644 documentation/apidoc/wntr.utils.logger.rst delete mode 100644 documentation/apidoc/wntr.utils.ordered_set.rst delete mode 100644 documentation/apidoc/wntr.utils.rst diff --git a/documentation/apidoc/wntr.epanet.io.rst b/documentation/apidoc/wntr.epanet.io.rst deleted file mode 100644 index 92600f190..000000000 --- a/documentation/apidoc/wntr.epanet.io.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.epanet.io module -===================== - -.. automodule:: wntr.epanet.io - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.epanet.rst b/documentation/apidoc/wntr.epanet.rst deleted file mode 100644 index 613df4e41..000000000 --- a/documentation/apidoc/wntr.epanet.rst +++ /dev/null @@ -1,18 +0,0 @@ -wntr.epanet package -=================== - -.. automodule:: wntr.epanet - :members: - :no-undoc-members: - :show-inheritance: - - -Submodules ----------- - -.. toctree:: - - wntr.epanet.io - wntr.epanet.toolkit - wntr.epanet.util - diff --git a/documentation/apidoc/wntr.epanet.toolkit.rst b/documentation/apidoc/wntr.epanet.toolkit.rst deleted file mode 100644 index 3556c750a..000000000 --- a/documentation/apidoc/wntr.epanet.toolkit.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.epanet.toolkit module -=================================== - -.. automodule:: wntr.epanet.toolkit - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.epanet.util.rst b/documentation/apidoc/wntr.epanet.util.rst deleted file mode 100644 index 9e367ec0d..000000000 --- a/documentation/apidoc/wntr.epanet.util.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.epanet.util module -======================= - -.. automodule:: wntr.epanet.util - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.gis.geospatial.rst b/documentation/apidoc/wntr.gis.geospatial.rst deleted file mode 100644 index b1ecdef10..000000000 --- a/documentation/apidoc/wntr.gis.geospatial.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.gis.geospatial module -===================================== - -.. automodule:: wntr.gis.geospatial - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.gis.network.rst b/documentation/apidoc/wntr.gis.network.rst deleted file mode 100644 index 236c31d19..000000000 --- a/documentation/apidoc/wntr.gis.network.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.gis.network module -===================================== - -.. automodule:: wntr.gis.network - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.gis.rst b/documentation/apidoc/wntr.gis.rst deleted file mode 100644 index 69a81375c..000000000 --- a/documentation/apidoc/wntr.gis.rst +++ /dev/null @@ -1,15 +0,0 @@ -wntr.gis package -==================== - -.. automodule:: wntr.gis - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.gis.network - wntr.gis.geospatial diff --git a/documentation/apidoc/wntr.graphics.color.rst b/documentation/apidoc/wntr.graphics.color.rst deleted file mode 100644 index 62faef5e7..000000000 --- a/documentation/apidoc/wntr.graphics.color.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.graphics.color module -==================================== - -.. automodule:: wntr.graphics.color - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.graphics.curve.rst b/documentation/apidoc/wntr.graphics.curve.rst deleted file mode 100644 index 61823bf13..000000000 --- a/documentation/apidoc/wntr.graphics.curve.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.graphics.curve module -==================================== - -.. automodule:: wntr.graphics.curve - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.graphics.layer.rst b/documentation/apidoc/wntr.graphics.layer.rst deleted file mode 100644 index cb0ce7e24..000000000 --- a/documentation/apidoc/wntr.graphics.layer.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.graphics.layer module -==================================== - -.. automodule:: wntr.graphics.layer - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.graphics.network.rst b/documentation/apidoc/wntr.graphics.network.rst deleted file mode 100644 index a87b73ded..000000000 --- a/documentation/apidoc/wntr.graphics.network.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.graphics.network module -==================================== - -.. automodule:: wntr.graphics.network - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.graphics.rst b/documentation/apidoc/wntr.graphics.rst deleted file mode 100644 index 6d05f1b27..000000000 --- a/documentation/apidoc/wntr.graphics.rst +++ /dev/null @@ -1,18 +0,0 @@ -wntr.graphics package -===================== - -.. automodule:: wntr.graphics - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.graphics.network - wntr.graphics.layer - wntr.graphics.curve - wntr.graphics.color - diff --git a/documentation/apidoc/wntr.metrics.economic.rst b/documentation/apidoc/wntr.metrics.economic.rst deleted file mode 100644 index 5ca22bda1..000000000 --- a/documentation/apidoc/wntr.metrics.economic.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.metrics.economic module -============================= - -.. automodule:: wntr.metrics.economic - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.metrics.hydraulic.rst b/documentation/apidoc/wntr.metrics.hydraulic.rst deleted file mode 100644 index 83432d025..000000000 --- a/documentation/apidoc/wntr.metrics.hydraulic.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.metrics.hydraulic module -================================ - -.. automodule:: wntr.metrics.hydraulic - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.metrics.misc.rst b/documentation/apidoc/wntr.metrics.misc.rst deleted file mode 100644 index 99dba99d6..000000000 --- a/documentation/apidoc/wntr.metrics.misc.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.metrics.misc module -========================= - -.. automodule:: wntr.metrics.misc - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.metrics.rst b/documentation/apidoc/wntr.metrics.rst deleted file mode 100644 index 9278e295e..000000000 --- a/documentation/apidoc/wntr.metrics.rst +++ /dev/null @@ -1,18 +0,0 @@ -wntr.metrics package -====================== - -.. automodule:: wntr.metrics - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.metrics.topographic - wntr.metrics.hydraulic - wntr.metrics.water_security - wntr.metrics.economic - wntr.metrics.misc diff --git a/documentation/apidoc/wntr.metrics.topographic.rst b/documentation/apidoc/wntr.metrics.topographic.rst deleted file mode 100644 index 992b1ce5e..000000000 --- a/documentation/apidoc/wntr.metrics.topographic.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.metrics.topographic module -=============================== - -.. automodule:: wntr.metrics.topographic - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.metrics.water_security.rst b/documentation/apidoc/wntr.metrics.water_security.rst deleted file mode 100644 index a1d0629c3..000000000 --- a/documentation/apidoc/wntr.metrics.water_security.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.metrics.water_security module -===================================== - -.. automodule:: wntr.metrics.water_security - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.morph.link.rst b/documentation/apidoc/wntr.morph.link.rst deleted file mode 100644 index 94d3d0a9f..000000000 --- a/documentation/apidoc/wntr.morph.link.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.morph.link module -===================================== - -.. automodule:: wntr.morph.link - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.morph.node.rst b/documentation/apidoc/wntr.morph.node.rst deleted file mode 100644 index 70b826f60..000000000 --- a/documentation/apidoc/wntr.morph.node.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.morph.node module -===================================== - -.. automodule:: wntr.morph.node - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.morph.rst b/documentation/apidoc/wntr.morph.rst deleted file mode 100644 index 888d0a1ef..000000000 --- a/documentation/apidoc/wntr.morph.rst +++ /dev/null @@ -1,16 +0,0 @@ -wntr.morph package -==================== - -.. automodule:: wntr.morph - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.morph.node - wntr.morph.link - wntr.morph.skel diff --git a/documentation/apidoc/wntr.morph.skel.rst b/documentation/apidoc/wntr.morph.skel.rst deleted file mode 100644 index 2969ece7b..000000000 --- a/documentation/apidoc/wntr.morph.skel.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.morph.skel module -===================================== - -.. automodule:: wntr.morph.skel - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.base.rst b/documentation/apidoc/wntr.network.base.rst deleted file mode 100644 index cd3152561..000000000 --- a/documentation/apidoc/wntr.network.base.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.network.base module -===================================== - -.. automodule:: wntr.network.base - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.controls.rst b/documentation/apidoc/wntr.network.controls.rst deleted file mode 100644 index 07036c787..000000000 --- a/documentation/apidoc/wntr.network.controls.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.network.controls module -=================================== - -.. automodule:: wntr.network.controls - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.elements.rst b/documentation/apidoc/wntr.network.elements.rst deleted file mode 100644 index 26cef395e..000000000 --- a/documentation/apidoc/wntr.network.elements.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.network.elements module -===================================== - -.. automodule:: wntr.network.elements - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.io.rst b/documentation/apidoc/wntr.network.io.rst deleted file mode 100644 index 190a5e351..000000000 --- a/documentation/apidoc/wntr.network.io.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.network.io module -=================================== - -.. automodule:: wntr.network.io - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.layer.rst b/documentation/apidoc/wntr.network.layer.rst deleted file mode 100644 index ef1a5c171..000000000 --- a/documentation/apidoc/wntr.network.layer.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.network.layer module -===================================== - -.. automodule:: wntr.network.layer - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.model.rst b/documentation/apidoc/wntr.network.model.rst deleted file mode 100644 index c40d391e4..000000000 --- a/documentation/apidoc/wntr.network.model.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.network.model module -===================================== - -.. automodule:: wntr.network.model - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.options.rst b/documentation/apidoc/wntr.network.options.rst deleted file mode 100644 index 69baf0350..000000000 --- a/documentation/apidoc/wntr.network.options.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.network.options module -===================================== - -.. automodule:: wntr.network.options - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.network.rst b/documentation/apidoc/wntr.network.rst deleted file mode 100644 index 05dbe11ca..000000000 --- a/documentation/apidoc/wntr.network.rst +++ /dev/null @@ -1,21 +0,0 @@ -wntr.network package -==================== - -.. automodule:: wntr.network - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.network.base - wntr.network.controls - wntr.network.elements - wntr.network.io - wntr.network.model - wntr.network.layer - wntr.network.options - diff --git a/documentation/apidoc/wntr.rst b/documentation/apidoc/wntr.rst deleted file mode 100644 index abab02a50..000000000 --- a/documentation/apidoc/wntr.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. _api_documentation: - -API documentation -=================== - -.. automodule:: wntr - :members: - :no-undoc-members: - :show-inheritance: - -Subpackages ------------ - -.. toctree:: - :maxdepth: 1 - - wntr.epanet - wntr.graphics - wntr.gis - wntr.metrics - wntr.morph - wntr.network - wntr.scenario - wntr.sim - wntr.utils - diff --git a/documentation/apidoc/wntr.scenario.earthquake.rst b/documentation/apidoc/wntr.scenario.earthquake.rst deleted file mode 100644 index 3daaddef7..000000000 --- a/documentation/apidoc/wntr.scenario.earthquake.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.scenario.earthquake module -=============================== - -.. automodule:: wntr.scenario.earthquake - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.scenario.fragility_curve.rst b/documentation/apidoc/wntr.scenario.fragility_curve.rst deleted file mode 100644 index 1fcd14d21..000000000 --- a/documentation/apidoc/wntr.scenario.fragility_curve.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.scenario.fragility_curve module -===================================== - -.. automodule:: wntr.scenario.fragility_curve - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.scenario.rst b/documentation/apidoc/wntr.scenario.rst deleted file mode 100644 index 88a7aec78..000000000 --- a/documentation/apidoc/wntr.scenario.rst +++ /dev/null @@ -1,16 +0,0 @@ -wntr.scenario package -===================== - -.. automodule:: wntr.scenario - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.scenario.earthquake - wntr.scenario.fragility_curve - diff --git a/documentation/apidoc/wntr.sim.aml.rst b/documentation/apidoc/wntr.sim.aml.rst deleted file mode 100644 index ffdb96180..000000000 --- a/documentation/apidoc/wntr.sim.aml.rst +++ /dev/null @@ -1,12 +0,0 @@ -wntr.sim.aml module -============================ - -.. automodule:: wntr.sim.aml.aml - :members: - :no-undoc-members: - :show-inheritance: - -.. automodule:: wntr.sim.aml.expr - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.sim.core.rst b/documentation/apidoc/wntr.sim.core.rst deleted file mode 100644 index fa5e1eb9c..000000000 --- a/documentation/apidoc/wntr.sim.core.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.sim.core module -============================= - -.. automodule:: wntr.sim.core - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.sim.epanet.rst b/documentation/apidoc/wntr.sim.epanet.rst deleted file mode 100644 index 2a6fab645..000000000 --- a/documentation/apidoc/wntr.sim.epanet.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.sim.epanet module -====================== - -.. automodule:: wntr.sim.epanet - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.sim.hydraulics.rst b/documentation/apidoc/wntr.sim.hydraulics.rst deleted file mode 100644 index 289b92411..000000000 --- a/documentation/apidoc/wntr.sim.hydraulics.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.sim.hydraulics module -============================== - -.. automodule:: wntr.sim.hydraulics - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.sim.results.rst b/documentation/apidoc/wntr.sim.results.rst deleted file mode 100644 index 6e6c78b6f..000000000 --- a/documentation/apidoc/wntr.sim.results.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.sim.results module -============================== - -.. automodule:: wntr.sim.results - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.sim.rst b/documentation/apidoc/wntr.sim.rst deleted file mode 100644 index cc230a09d..000000000 --- a/documentation/apidoc/wntr.sim.rst +++ /dev/null @@ -1,20 +0,0 @@ -wntr.sim package -================ - -.. automodule:: wntr.sim - :members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.sim.core - wntr.sim.epanet - wntr.sim.hydraulics - wntr.sim.results - wntr.sim.solvers - wntr.sim.aml - diff --git a/documentation/apidoc/wntr.sim.solvers.rst b/documentation/apidoc/wntr.sim.solvers.rst deleted file mode 100644 index 4bd3ac9b2..000000000 --- a/documentation/apidoc/wntr.sim.solvers.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.sim.solvers module -============================ - -.. automodule:: wntr.sim.solvers - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.utils.logger.rst b/documentation/apidoc/wntr.utils.logger.rst deleted file mode 100644 index a778dc33d..000000000 --- a/documentation/apidoc/wntr.utils.logger.rst +++ /dev/null @@ -1,7 +0,0 @@ -wntr.utils.logger module -======================== - -.. automodule:: wntr.utils.logger - :members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.utils.ordered_set.rst b/documentation/apidoc/wntr.utils.ordered_set.rst deleted file mode 100644 index 45610dd78..000000000 --- a/documentation/apidoc/wntr.utils.ordered_set.rst +++ /dev/null @@ -1,8 +0,0 @@ -wntr.utils.ordered_set module -=================================== - -.. automodule:: wntr.utils.ordered_set - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: diff --git a/documentation/apidoc/wntr.utils.rst b/documentation/apidoc/wntr.utils.rst deleted file mode 100644 index f613c8e99..000000000 --- a/documentation/apidoc/wntr.utils.rst +++ /dev/null @@ -1,17 +0,0 @@ -wntr.utils package -================== - -.. automodule:: wntr.utils - :members: - :inherited-members: - :no-undoc-members: - :show-inheritance: - -Submodules ----------- - -.. toctree:: - - wntr.utils.logger - wntr.utils.ordered_set - diff --git a/documentation/conf.py b/documentation/conf.py index 620bca164..cb5f112ca 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -128,6 +128,13 @@ # Usually you set "language" from the command line for these cases. language = 'en' +intersphinx_mapping = { + "python": ("https://docs.python.org/3", (None, "_local/python-objects.inv")), + "matplotlib": ("https://matplotlib.org/stable/", (None, "_local/matplotlib-objects.inv")), + "numpy": ("https://numpy.org/doc/stable/", (None, "_local/numpy-objects.inv")), + "pandas": ("https://pandas.pydata.org/docs/", (None, "_local/pandas-objects.inv")), +} + # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' @@ -355,7 +362,7 @@ def setup(app): # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - ('index_latex', 'wntr.tex', u'WNTR Documentation', + ('userguide', 'wntr.tex', u'WNTR Documentation', u'', 'howto', 'True'), #u'', 'manual'), ] diff --git a/documentation/environment.yml b/documentation/environment.yml index 5214169d3..70d8e9da3 100644 --- a/documentation/environment.yml +++ b/documentation/environment.yml @@ -9,3 +9,5 @@ dependencies: - sphinx - numpydoc - docutils<0.17 + - sphinx_design + - pydata_sphinx_theme diff --git a/documentation/index.rst b/documentation/index.rst index 7f944c99f..f3f63283b 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -1,7 +1,7 @@ .. figure:: figures/logo.jpg :scale: 10 % :alt: Logo - + Water Network Tool for Resilience (WNTR) ======================================== @@ -11,11 +11,11 @@ designed to simulate and analyze resilience of water distribution networks. .. rubric:: Contents .. toctree:: :maxdepth: 1 - + userguide wntr-api users - + .. rubric:: Citing WNTR To cite WNTR, use one of the following references: diff --git a/documentation/userguide.rst b/documentation/userguide.rst index 7d6d4cc5a..40dcd6d25 100644 --- a/documentation/userguide.rst +++ b/documentation/userguide.rst @@ -8,6 +8,26 @@ User Guide The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package designed to simulate and analyze resilience of water distribution networks. +US EPA Disclaimer +----------------- + +The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated +in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. +It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that +the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official +EPA approval, endorsement, or recommendation. + + +Sandia Funding Statement +------------------------ + +Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and +Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the +U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. + +Contents +-------- + .. toctree:: :maxdepth: 1 :hidden: @@ -38,6 +58,7 @@ designed to simulate and analyze resilience of water distribution networks. hydraulics waterquality + waterquality_msx resultsobject .. toctree:: @@ -76,20 +97,3 @@ To cite WNTR, use one of the following references: * Klise, K.A., Murray, R., Haxton, T. (2018). An overview of the Water Network Tool for Resilience (WNTR), In Proceedings of the 1st International WDSA/CCWI Joint Conference, Kingston, Ontario, Canada, July 23-25, 075, 8p. * Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 - -US EPA Disclaimer ---------------------- - -The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated -in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. -It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that -the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official -EPA approval, endorsement, or recommendation. - -Sandia Funding Statement --------------------------------- - -Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and -Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the -U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. - diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst index 509cb1f76..b5084a508 100644 --- a/documentation/wntr-api.rst +++ b/documentation/wntr-api.rst @@ -22,7 +22,6 @@ API documentation wntr.metrics wntr.morph wntr.network - wntr.msx wntr.scenario wntr.sim wntr.utils From caf89cc3139ec59fb60baf907ee199c832c0002d Mon Sep 17 00:00:00 2001 From: dbhart Date: Mon, 13 Nov 2023 16:54:17 -0700 Subject: [PATCH 04/29] Update to references to use bibtex and pybtex --- documentation/conf.py | 7 +- documentation/controls.rst | 2 +- documentation/criticality.rst | 2 +- documentation/disaster_models.rst | 8 +- documentation/environment.yml | 1 + documentation/fragility.rst | 2 +- documentation/framework.rst | 2 +- documentation/gis.rst | 4 +- documentation/graphics.rst | 8 +- documentation/hydraulics.rst | 14 +- documentation/installation.rst | 22 +- documentation/layers.rst | 2 +- documentation/morph.rst | 4 +- documentation/overview.rst | 10 +- documentation/reference.rst | 106 ++++++--- documentation/references.bib | 350 ++++++++++++++++++++++++++++++ documentation/resilience.rst | 34 +-- documentation/resultsobject.rst | 2 +- documentation/units.rst | 4 +- requirements.txt | 1 + wntr/metrics/economic.py | 14 +- wntr/metrics/hydraulic.py | 6 +- wntr/metrics/misc.py | 2 +- wntr/metrics/water_security.py | 6 +- 24 files changed, 504 insertions(+), 109 deletions(-) create mode 100644 documentation/references.bib diff --git a/documentation/conf.py b/documentation/conf.py index cb5f112ca..f10dfb24a 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -42,6 +42,7 @@ 'sphinx.ext.napoleon', 'sphinx.ext.intersphinx', 'sphinx_design', + 'sphinxcontrib.bibtex' ] add_function_parentheses = True @@ -112,6 +113,10 @@ copyright = u'2023 National Technology & Engineering Solutions of Sandia, LLC (NTESS)' author = u'WNTR Developers' +bibtex_bibfiles = ['references.bib'] +bibtex_default_style = 'plain' +bibtex_reference_style = 'author_year' + # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. @@ -229,7 +234,7 @@ def setup(app): "primary_sidebar_end": ["indices.html"], "show_toc_level": 2, # "secondary_sidebar_items": ["page-toc"], #["page-toc", "edit-this-page", "sourcelink"], - "navbar_end": ["search-field.html", "theme-switcher.html", "navbar-icon-links.html",], + "navbar_end": [ "theme-switcher.html", "navbar-icon-links.html",], } # Add any paths that contain custom themes here, relative to this directory. #html_theme_path = [] diff --git a/documentation/controls.rst b/documentation/controls.rst index d943a172b..9af1871c4 100644 --- a/documentation/controls.rst +++ b/documentation/controls.rst @@ -6,7 +6,7 @@ Water network controls ====================================== One of the key features of water network models is the ability to control pipes, pumps, and valves using simple and complex conditions. -EPANET uses "controls" and "rules" to define conditions [Ross00]_. WNTR replicates EPANET functionality, and includes additional options, as described below. The EPANET user manual provides more information on simple controls and rule-based controls (controls and rules, respectively in WNTR) [Ross00]_. +EPANET uses "controls" and "rules" to define conditions :cite:p:`Ross00`. WNTR replicates EPANET functionality, and includes additional options, as described below. The EPANET user manual provides more information on simple controls and rule-based controls (controls and rules, respectively in WNTR) :cite:p:`Ross00`. **Controls** are defined using an "IF condition; THEN action" format. Controls use a single action (i.e., closing/opening a link or changing the setting) based on a single condition (i.e., time based or tank level based). diff --git a/documentation/criticality.rst b/documentation/criticality.rst index ccc996c40..8910c744b 100644 --- a/documentation/criticality.rst +++ b/documentation/criticality.rst @@ -13,7 +13,7 @@ In threat agnostic analysis, the cause of the disruption is not modeled directly Rather, a series of simulations can be used to perform N-k contingency analysis, where N is the number of elements and k elements fail. -In water distribution systems analysis, N-1 contingency analysis is commonly called criticality analysis [WaWC06]_. +In water distribution systems analysis, N-1 contingency analysis is commonly called criticality analysis :cite:p:`WaWC06`. WNTR is commonly used to run criticality analysis, where a series of simulations are run to determine the impact of individual failures on the system. This framework can be expanded to include analysis where two or more elements fail at one time or in succession. diff --git a/documentation/disaster_models.rst b/documentation/disaster_models.rst index 8e86fdaa5..8797c0a99 100644 --- a/documentation/disaster_models.rst +++ b/documentation/disaster_models.rst @@ -30,14 +30,14 @@ and change demands for fire conditions, as described in the sections below. The :class:`~wntr.scenario.earthquake.Earthquake` class includes methods to compute peak ground acceleration, peak ground velocity, and repair rate based on the earthquake location and magnitude. -Alternatively, external earthquake models or databases (e.g., ShakeMap [WWQP06]_) can be used to compute earthquake properties and +Alternatively, external earthquake models or databases (e.g., ShakeMap :cite:p:`WWQP06`) can be used to compute earthquake properties and those properties can be loaded into Python for analysis in WNTR. When simulating the effects of an earthquake, fragility curves are commonly used to define the probability that a component is damaged with respect to peak ground acceleration, peak ground velocity, or repair rate. -The American Lifelines Alliance report [ALA01]_ includes seismic fragility curves +The American Lifelines Alliance report :cite:p:`ALA01` includes seismic fragility curves for water system components. See :ref:`fragility_curves` for more information. @@ -131,7 +131,7 @@ Power outage ------------- Power outages can be small and brief, or they can also span over several days and affect whole regions as seen in the 2003 Northeast Blackout. -While the Northeast Blackout was an extreme case, a 2012 Lawrence Berkeley National Laboratory study [ELLT12]_ +While the Northeast Blackout was an extreme case, a 2012 Lawrence Berkeley National Laboratory study :cite:p:`ELLT12` showed the frequency and duration of power outages are increasing domestically by a rate of two percent annually. In water distribution systems, a power outage can cause pump stations to shut down and result in @@ -163,7 +163,7 @@ Fires WNTR can be used to simulate damage caused to system components due to fire and/or to simulate water usage due to fighting fires. To fight fires, additional water is drawn from the system. Fire codes vary by state. Minimum required fire flow and duration are generally based on the building's area and purpose. While small residential fires might require 1500 gallons/minute for 2 hours, large commercial -spaces might require 8000 gallons/minute for 4 hours [ICC12]_. This additional demand can +spaces might require 8000 gallons/minute for 4 hours :cite:p:`ICC12`. This additional demand can have a large impact on water pressure in the system. WNTR can be used to simulate firefighting conditions in the system. diff --git a/documentation/environment.yml b/documentation/environment.yml index 70d8e9da3..f86e79869 100644 --- a/documentation/environment.yml +++ b/documentation/environment.yml @@ -11,3 +11,4 @@ dependencies: - docutils<0.17 - sphinx_design - pydata_sphinx_theme + - sphinxcontrib-bibtex diff --git a/documentation/fragility.rst b/documentation/fragility.rst index 693f89a91..8c04dd1ef 100644 --- a/documentation/fragility.rst +++ b/documentation/fragility.rst @@ -11,7 +11,7 @@ of exceeding a given damage state as a function of environmental change. Fragility curves are closely related to survival curves, which are used to define the probability of component failure due to age. For example, to estimate earthquake damage, fragility curves are defined as a function of peak ground acceleration, peak ground velocity, or repair rate. -The American Lifelines Alliance report [ALA01]_ +The American Lifelines Alliance report :cite:p:`ALA01` includes seismic fragility curves for water network components. Fragility curves can also be defined as a function of flood stage, wind speed, and temperature for other diff --git a/documentation/framework.rst b/documentation/framework.rst index d74d080fb..b8f7e656c 100644 --- a/documentation/framework.rst +++ b/documentation/framework.rst @@ -82,7 +82,7 @@ These classes are listed in :numref:`table-sim-subpackage`. ================================================= ============================================================================================================================================================================================================================================================================= Class Description ================================================= ============================================================================================================================================================================================================================================================================= - :class:`~wntr.sim.epanet.EpanetSimulator` The EpanetSimulator can run both the EPANET 2.00.12 Programmer's Toolkit [Ross00]_ and EPANET 2.2.0 Programmer's Toolkit [RWTS20]_ to run hydraulic and water quality simulations. + :class:`~wntr.sim.epanet.EpanetSimulator` The EpanetSimulator can run both the EPANET 2.00.12 Programmer's Toolkit :cite:p:`Ross00` and EPANET 2.2.0 Programmer's Toolkit :cite:p:`RWTS20` to run hydraulic and water quality simulations. EPANET 2.2.0 (which is used by default) includes both demand-driven and pressure dependent analysis, while EPANET 2.00.12 includes only demand-driven analysis. When using the EpanetSimulator, the water network model is written to an EPANET INP file which is used to run an EPANET simulation. This allows the user to run EPANET simulations, while taking advantage of additional analysis options in WNTR. diff --git a/documentation/gis.rst b/documentation/gis.rst index dd5cfe884..e04e6f7d1 100644 --- a/documentation/gis.rst +++ b/documentation/gis.rst @@ -46,8 +46,8 @@ Open source GIS platforms include QGIS and GRASS GIS. The following section describes capabilities in WTNR that use GeoPandas GeoDataFrames. .. note:: - Functions that use GeoDataFrames require the Python package **geopandas** [JVFM21]_ - and **rtree** [rtree]_. Both are optional dependencies of WNTR. + Functions that use GeoDataFrames require the Python package **geopandas** :cite:p:`JVFM21` + and **rtree** :cite:p:`rtree`. Both are optional dependencies of WNTR. Note that **shapely** is installed with geopandas. The following examples use a water network generated from Net1.inp. diff --git a/documentation/graphics.rst b/documentation/graphics.rst index c6f0dad30..9e7c6af01 100644 --- a/documentation/graphics.rst +++ b/documentation/graphics.rst @@ -137,7 +137,7 @@ As with basic network graphics, a wide range of plotting options can be supplied However, link attributes currently cannot be displayed on the graphic. .. note:: - This function requires the Python package **plotly** [SPHC16]_, which is an optional dependency of WNTR. + This function requires the Python package **plotly** :cite:p:`SPHC16`, which is an optional dependency of WNTR. The following example plots the network along with node population (:numref:`fig-plotly`). @@ -164,10 +164,10 @@ See :ref:`modify_node_coords` for more information on converting node coordinate As with basic network graphics, a wide range of plotting options can be supplied. .. note:: - This function requires the Python package **folium** [Folium]_, which is an optional dependency of WNTR. + This function requires the Python package **folium** :cite:p:`Folium`, which is an optional dependency of WNTR. The following example using EPANET Example Network 3 (Net3) converts node coordinates to longitude/latitude and plots the network along -with pipe length over the city of Albuquerque (for demonstration purposes only) (:numref:`fig-leaflet`). The longitude and latitude for two locations are needed to plot the network. For the EPANET Example Network 3, these locations are the reservoir 'Lake' and node '219'. This example requires the Python package **utm** [Bieni19]_ to convert the node coordinates. +with pipe length over the city of Albuquerque (for demonstration purposes only) (:numref:`fig-leaflet`). The longitude and latitude for two locations are needed to plot the network. For the EPANET Example Network 3, these locations are the reservoir 'Lake' and node '219'. This example requires the Python package **utm** :cite:p:`Bieni19` to convert the node coordinates. .. doctest:: @@ -246,7 +246,7 @@ Interactive time series graphics are useful when visualizing large datasets. Basic time series graphics can be converted to interactive time series graphics using the ``plotly.express`` module. .. note:: - This functionality requires the Python package **plotly** [SPHC16]_, which is an optional dependency of WNTR. + This functionality requires the Python package **plotly** :cite:p:`SPHC16`, which is an optional dependency of WNTR. The following example uses simulation results from above, and converts the graphic to an interactive graphic (:numref:`fig-interactive-timeseries`). diff --git a/documentation/hydraulics.rst b/documentation/hydraulics.rst index 0c755bda5..e2d6e5e21 100644 --- a/documentation/hydraulics.rst +++ b/documentation/hydraulics.rst @@ -12,7 +12,7 @@ See :ref:`software_framework` for more information on features and limitations o EpanetSimulator ----------------- -The EpanetSimulator can be used to run EPANET 2.00.12 Programmer's Toolkit [Ross00]_ or EPANET 2.2.0 Programmer's Toolkit [RWTS20]_. +The EpanetSimulator can be used to run EPANET 2.00.12 Programmer's Toolkit :cite:p:`Ross00` or EPANET 2.2.0 Programmer's Toolkit :cite:p:`RWTS20`. EPANET 2.2.0 is used by default and runs demand-driven and pressure dependent hydraulic analysis. EPANET 2.00.12 runs demand-driven hydraulic analysis only. Both versions can also run water quality simulations, as described in :ref:`water_quality_simulation`. @@ -111,7 +111,7 @@ More information on water network options can be found in :ref:`options`. Mass balance at nodes ------------------------- -Both simulators use the mass balance equations from EPANET [Ross00]_: +Both simulators use the mass balance equations from EPANET :cite:p:`Ross00`: .. math:: @@ -127,7 +127,7 @@ If water is flowing out of node :math:`n` and into pipe :math:`p`, then Headloss in pipes ------------------------- -Both simulators use conservation of energy formulas from EPANET [Ross00]_. +Both simulators use conservation of energy formulas from EPANET :cite:p:`Ross00`. While the EpanetSimulator can use the Hazen-Williams and Chezy-Manning pipe head loss formulas, the WNTRSimulator uses only the Hazen-Williams head loss formula, shown below. @@ -225,7 +225,7 @@ The mass balance and headloss equations described above are solved by simultaneously determining demand along with the network pressures and flow rates. Both simulators can run hydraulics using a pressure dependent demand simulation -according to the following pressure-demand relationship [WaSM88]_: +according to the following pressure-demand relationship :cite:p:`WaSM88`: .. math:: @@ -308,7 +308,7 @@ Users interested in using the EpanetSimulator to model leaks can still do so by emitter coefficients. When using the WNTRSimulator, leaks are modeled with a general form of the equation proposed by Crowl and Louvar -[CrLo02]_ where the mass flow rate of fluid through the hole is expressed as: +:cite:p:`CrLo02` where the mass flow rate of fluid through the hole is expressed as: .. math:: @@ -328,9 +328,9 @@ where :math:`g` is the acceleration of gravity (m/s²), and :math:`\rho` is the density of the fluid (kg/m³). -The default discharge coefficient is 0.75 (assuming turbulent flow) [Lamb01]_, but +The default discharge coefficient is 0.75 (assuming turbulent flow) :cite:p:`Lamb01`, but the user can specify other values if needed. -The value of :math:`\alpha` is set to 0.5 (assuming large leaks out of steel pipes) [Lamb01]_ and currently cannot be changed by the user. +The value of :math:`\alpha` is set to 0.5 (assuming large leaks out of steel pipes) :cite:p:`Lamb01` and currently cannot be changed by the user. Leaks can be added to junctions and tanks. A pipe break is modeled using a leak area large enough to drain the pipe. diff --git a/documentation/installation.rst b/documentation/installation.rst index da39dd135..1f1e22f62 100644 --- a/documentation/installation.rst +++ b/documentation/installation.rst @@ -237,15 +237,15 @@ Requirements Requirements for WNTR include 64-bit Python (tested on versions 3.7, 3.8, 3.9, and 3.10) along with several Python packages. Users should have experience using Python (https://www.python.org/), including the installation of additional Python packages. The following Python packages are required: -* NumPy [VaCV11]_: used to support large, multi-dimensional arrays and matrices, +* NumPy :cite:p:`VaCV11`: used to support large, multi-dimensional arrays and matrices, http://www.numpy.org/ -* SciPy [VaCV11]_: used to support efficient routines for numerical integration, +* SciPy :cite:p:`VaCV11`: used to support efficient routines for numerical integration, http://www.scipy.org/ -* NetworkX [HaSS08]_: used to create and analyze complex networks, +* NetworkX :cite:p:`HaSS08`: used to create and analyze complex networks, https://networkx.github.io/ -* pandas [Mcki13]_: used to analyze and store time series data, +* pandas :cite:p:`Mcki13`: used to analyze and store time series data, http://pandas.pydata.org/ -* Matplotlib [Hunt07]_: used to produce graphics, +* Matplotlib :cite:p:`Hunt07`: used to produce graphics, http://matplotlib.org/ These packages are included in the Anaconda Python distribution. @@ -257,17 +257,17 @@ Optional dependencies The following Python packages are optional: -* plotly [SPHC16]_: used to produce interactive scalable graphics, +* plotly :cite:p:`SPHC16`: used to produce interactive scalable graphics, https://plot.ly/ -* folium [Folium]_: used to produce Leaflet maps, +* folium :cite:p:`Folium`: used to produce Leaflet maps, http://python-visualization.github.io/folium/ -* utm [Bieni19]_: used to translate node coordinates to utm and lat/long, +* utm :cite:p:`Bieni19`: used to translate node coordinates to utm and lat/long, https://pypi.org/project/utm/ -* geopandas [JVFM21]_: used to work with geospatial data, +* geopandas :cite:p:`JVFM21`: used to work with geospatial data, https://geopandas.org/ -* rtree [rtree]_: used for overlay operations in geopandas, +* rtree :cite:p:`rtree`: used for overlay operations in geopandas, https://rtree.readthedocs.io/ -* openpyxl [GaCl18]_: used to read/write to Microsoft® Excel® spreadsheets, +* openpyxl :cite:p:`GaCl18`: used to read/write to Microsoft® Excel® spreadsheets, https://openpyxl.readthedocs.io All of these packages **except geopandas** are included in the Anaconda Python distribution. diff --git a/documentation/layers.rst b/documentation/layers.rst index 4c6457682..56b669f3f 100644 --- a/documentation/layers.rst +++ b/documentation/layers.rst @@ -89,7 +89,7 @@ The valve layer can be included in water network graphics (:numref:`fig-random-v Valve layer using random placement. The **strategic** placement specifies the number of pipes (n) from each node that do NOT contain a valve. -In this case, n is generally 0, 1, or 2 (i.e., N, N-1, or N-2 valve placement) [WaWC06]_ [LWFZ17]_. +In this case, n is generally 0, 1, or 2 (i.e., N, N-1, or N-2 valve placement) :cite:p:`WaWC06` :cite:p:`LWFZ17`. For example, if three pipes connect to a node and n = 2, then two of those pipes will not contain a valve and one pipe will contain a valve. The following example generates a strategic N-2 valve placement. The valve layer can be included in water network graphics (:numref:`fig-strategic-valve-layer`). diff --git a/documentation/morph.rst b/documentation/morph.rst index 88b503b43..9dcce13e8 100644 --- a/documentation/morph.rst +++ b/documentation/morph.rst @@ -13,7 +13,7 @@ splitting or breaking pipes. Network skeletonization ---------------------------- The goal of network skeletonization is to reduce the size of a water network model with minimal impact on system behavior. -Network skeletonization in WNTR follows the procedure outlined in [WCSG03]_. +Network skeletonization in WNTR follows the procedure outlined in :cite:p:`WCSG03`. The skeletonization process retains all tanks, reservoirs, valves, and pumps, along with all junctions and pipes that are associated with controls. Junction demands and demand patterns are retained in the skeletonized model, as described below. Merged pipes are assigned equivalent properties for diameter, length, and roughness to approximate the updated system behavior. @@ -241,7 +241,7 @@ WNTR includes several options to modify node coordinates, denoted as :math:`(x, the nodes could be in the upper right and lower left). .. note:: - Functions that convert coordinates to UTM and longitude/latitude require the Python package **utm** [Bieni19]_, which is an optional dependency of WNTR. + Functions that convert coordinates to UTM and longitude/latitude require the Python package **utm** :cite:p:`Bieni19`, which is an optional dependency of WNTR. The following example returns a copy of the water network model with node coordinates scaled by 100 m. diff --git a/documentation/overview.rst b/documentation/overview.rst index 87bfb9561..775fbda38 100644 --- a/documentation/overview.rst +++ b/documentation/overview.rst @@ -24,13 +24,13 @@ is a national priority. The National Infrastructure Advisory Council defined infrastructure resilience as “the ability to reduce the magnitude and/or duration of disruptive events. The effectiveness of a resilient infrastructure or enterprise depends upon its ability to anticipate, absorb, adapt to, and/or -rapidly recover from a potentially disruptive event” [NIAC09]_. +rapidly recover from a potentially disruptive event” :cite:p:`NIAC09`. Being able to predict how drinking water systems will perform during disruptive incidents and understanding how to best absorb, recover from, and more successfully adapt to such incidents can help enhance resilience. Simulation and analysis tools can help water utilities to explore the capacity of their systems to handle disruptive -incidents and guide the planning necessary to make systems more resilient over time [USEPA14]_. +incidents and guide the planning necessary to make systems more resilient over time :cite:p:`USEPA14`. The Water Network Tool for Resilience (WNTR, pronounced *winter*) is a Python package designed to simulate and analyze resilience of water distribution networks. @@ -44,7 +44,7 @@ constituents within distribution systems. Users are encouraged to be familiar wi EPANET and/or should have background knowledge in hydraulics and pressurized pipe network modeling before using WNTR. EPANET has a graphical user interface that might be a useful tool to facilitate the visualization of the network and the associated analysis results. Information on EPANET can be found at https://www.epa.gov/water-research/epanet. -**WNTR is compatible with EPANET 2.00.12** [Ross00]_ **and EPANET 2.2** [RWTS20]_. In addition, users should have +**WNTR is compatible with EPANET 2.00.12** :cite:p:`Ross00` **and EPANET 2.2** :cite:p:`RWTS20`. In addition, users should have experience using Python, including the installation of additional Python packages. General information on Python can be found at https://www.python.org/. @@ -63,7 +63,7 @@ generated by WNTR. WNTR includes capabilities to: -* **Generate water network models** from scratch or from existing EPANET-formatted water network model input (EPANET INP) files [Ross00]_ [RWTS20]_. See EPANET documentation on `INP file format `_ for more details. +* **Generate water network models** from scratch or from existing EPANET-formatted water network model input (EPANET INP) files :cite:p:`Ross00` :cite:p:`RWTS20`. See EPANET documentation on `INP file format `_ for more details. * **Modify network structure** by adding/removing components or changing component characteristics @@ -97,7 +97,7 @@ WNTR was developed to greatly extend these capabilities. WNTR provides a flexible platform for modeling a wide range of disruptive incidents and repair strategies, and includes an extensible hydraulic simulator. Furthermore, WNTR is compatible with widely used scientific computing packages for Python, -including NetworkX [HaSS08]_, pandas [Mcki13]_, NumPy [VaCV11]_, SciPy [VaCV11]_, and Matplotlib [Hunt07]_. +including NetworkX :cite:p:`HaSS08`, pandas :cite:p:`Mcki13`, NumPy :cite:p:`VaCV11`, SciPy :cite:p:`VaCV11`, and Matplotlib :cite:p:`Hunt07`. These packages allow the user to build custom analysis directly in Python, and gain access to tools that analyze the structure of complex water distribution networks, analyze time-series data from simulation results, diff --git a/documentation/reference.rst b/documentation/reference.rst index 15f12a23d..bd6bfa435 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -5,76 +5,110 @@ References ==================== -.. only:: html +.. + only:: html Due to limitations with cross referenced citations in reStructuredText (e.g., commas and spaces are not supported), citations are cross referenced using a 6 digit notation [*]_. -.. [ALA01] American Lifelines Alliance. (2001). Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance, ASCE (Ed.) Reston, VA: American Society of Civil Engineers. April 2001. +.. + [ALA01] American Lifelines Alliance. (2001). Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance, ASCE (Ed.) Reston, VA: American Society of Civil Engineers. April 2001. -.. [AwGB90] Awumah, K., Goulter, I., and Bhatt, S.K. (1990). Assessment of reliability in water distribution networks using entropy based measures. Stochastic Hydrology and Hydraulics, 4(4), 309-320. +.. + [AwGB90] Awumah, K., Goulter, I., and Bhatt, S.K. (1990). Assessment of reliability in water distribution networks using entropy based measures. Stochastic Hydrology and Hydraulics, 4(4), 309-320. -.. [BaRR13] Barker, K., Ramirez-Marquez, J.E., and Rocco, C.M. (2013). Resilience-based network component importance measures. Reliability Engineering and System Safety, 117, 89-97. +.. + [BaRR13] Barker, K., Ramirez-Marquez, J.E., and Rocco, C.M. (2013). Resilience-based network component importance measures. Reliability Engineering and System Safety, 117, 89-97. -.. [Bieni19] Bieniek, T., van Andel, B., and Bø, T.I. (2019). Bidirectional UTM-WGS84 converter for python, Retrieved on February 5, 2019 from https://github.com/Turbo87/utm. +.. + [Bieni19] Bieniek, T., van Andel, B., and Bø, T.I. (2019). Bidirectional UTM-WGS84 converter for python, Retrieved on February 5, 2019 from https://github.com/Turbo87/utm. -.. [CrLo02] Crowl, D.A., and Louvar, J.F. (2011). Chemical Process Safety: Fundamentals with Applications, 3 edition. Upper Saddle River, NJ: Prentice Hall, 720p. +.. + [CrLo02] Crowl, D.A., and Louvar, J.F. (2011). Chemical Process Safety: Fundamentals with Applications, 3 edition. Upper Saddle River, NJ: Prentice Hall, 720p. -.. [ELLT12] Eto, J.H., LaCommare, K.H., Larsen, P.H., Todd, A., and Fisher, E. (2012). An Examination of Temporal Trends in Electricity Reliability Based on Reports from U.S. Electric Utilities. Lawrence Berkeley National Laboratory Report Number LBNL-5268E. Berkeley, CA: Ernest Orlando Lawrence Berkeley National Laboratory, 68p. +.. + [ELLT12] Eto, J.H., LaCommare, K.H., Larsen, P.H., Todd, A., and Fisher, E. (2012). An Examination of Temporal Trends in Electricity Reliability Based on Reports from U.S. Electric Utilities. Lawrence Berkeley National Laboratory Report Number LBNL-5268E. Berkeley, CA: Ernest Orlando Lawrence Berkeley National Laboratory, 68p. -.. [JVFM21] Jordahl, K., Van den Bossche, J., Fleischmann, M, McBride, J. and others (2021) geopandas, 10.5281/zenodo.5573592. +.. + [JVFM21] Jordahl, K., Van den Bossche, J., Fleischmann, M, McBride, J. and others (2021) geopandas, 10.5281/zenodo.5573592. -.. [Folium] python-visualization/folium. (n.d.). Retrieved on February 5, 2019 from https://github.com/python-visualization/folium. +.. + [Folium] python-visualization/folium. (n.d.). Retrieved on February 5, 2019 from https://github.com/python-visualization/folium. -.. [GaCl18] Gazoni, E. and Clark, C. (2018) openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files, Retrieved on May 4, 2018 from https://openpyxl.readthedocs.io. +.. + [GaCl18] Gazoni, E. and Clark, C. (2018) openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files, Retrieved on May 4, 2018 from https://openpyxl.readthedocs.io. -.. [HaSS08] Hagberg, A.A., Schult, D.A., and Swart, P.J. (2008). Exploring network structure, dynamics, and function using NetworkX. In Proceedings of the 7th Python in Science Conference (SciPy2008), August 19-24, Pasadena, CA, USA. +.. + [HaSS08] Hagberg, A.A., Schult, D.A., and Swart, P.J. (2008). Exploring network structure, dynamics, and function using NetworkX. In Proceedings of the 7th Python in Science Conference (SciPy2008), August 19-24, Pasadena, CA, USA. -.. [Hunt07] Hunter, J.D. (2007). Matplotlib: A 2D graphics environment. Computing in Science and Engineering, 9(3), 90-95. +.. + [Hunt07] Hunter, J.D. (2007). Matplotlib: A 2D graphics environment. Computing in Science and Engineering, 9(3), 90-95. -.. [ICC12] International Code Council. (2011). 2012 International Fire Code, Appendix B - Fire-Flow Requirements for Buildings. Country Club Hills, IL: International Code Council, ISBN: 978-1-60983-046-5. +.. + [ICC12] International Code Council. (2011). 2012 International Fire Code, Appendix B - Fire-Flow Requirements for Buildings. Country Club Hills, IL: International Code Council, ISBN: 978-1-60983-046-5. -.. [JaSr08] Jayaram, N. and Srinivasan, K. (2008). Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing. Water resources research, 44(1). +.. + [JaSr08] Jayaram, N. and Srinivasan, K. (2008). Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing. Water resources research, 44(1). -.. [JCMG11] Joyner, D., Certik, O., Meurer, A., and Granger, B.E. (2012). Open source computer algebra systems, SymPy. ACM Communications in Computer Algebra, 45(4), 225-234. +.. + [JCMG11] Joyner, D., Certik, O., Meurer, A., and Granger, B.E. (2012). Open source computer algebra systems, SymPy. ACM Communications in Computer Algebra, 45(4), 225-234. -.. [Lamb01] Lambert, A. (2001). What do we know about pressure-leakage relationships in distribution systems. Proceedings of the IWA Specialised Conference ‘System Approach to Leakage Control and Water Distribution Systems Management’, Brno, Czech Republic, 2001, May 16-18, 89-96. +.. + [Lamb01] Lambert, A. (2001). What do we know about pressure-leakage relationships in distribution systems. Proceedings of the IWA Specialised Conference ‘System Approach to Leakage Control and Water Distribution Systems Management’, Brno, Czech Republic, 2001, May 16-18, 89-96. -.. [LWFZ17] Liu, H., Walski, T., Fu, G., Zhang, C. (2017). Failure Impact Analysis of Isolation Valves in a Water Distribution Network. Journal of Water Resources Planning and Management 143(7): 04017019. +.. + [LWFZ17] Liu, H., Walski, T., Fu, G., Zhang, C. (2017). Failure Impact Analysis of Isolation Valves in a Water Distribution Network. Journal of Water Resources Planning and Management 143(7): 04017019. -.. [Mcki13] McKinney, W. (2013). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. Sebastopal, CA: O'Reilly Media, 1 edition, 466p. +.. + [Mcki13] McKinney, W. (2013). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython. Sebastopal, CA: O'Reilly Media, 1 edition, 466p. -.. [NIAC09] National Infrastructure Advisory Council (NIAC). (2009). Critical Infrastructure Resilience, Final Report and Recommendations, U.S. Department of Homeland Security, Washington, D.C., Accessed September 20, 2014. http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf. +.. + [NIAC09] National Infrastructure Advisory Council (NIAC). (2009). Critical Infrastructure Resilience, Final Report and Recommendations, U.S. Department of Homeland Security, Washington, D.C., Accessed September 20, 2014. http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf. -.. [OsKS02] Ostfeld, A., Kogan, D., and Shamir, U. (2002). Reliability simulation of water distribution systems - single and multiquality. Urban Water, 4(1), 53-61. +.. + [OsKS02] Ostfeld, A., Kogan, D., and Shamir, U. (2002). Reliability simulation of water distribution systems - single and multiquality. Urban Water, 4(1), 53-61. -.. [Ross00] Rossman, L.A. (2000). EPANET 2 Users Manual. Cincinnati, OH: U.S. Environmental Protection Agency. U.S. Environmental Protection Agency Technical Report, EPA/600/R--00/057, 200p. +.. + [Ross00] Rossman, L.A. (2000). EPANET 2 Users Manual. Cincinnati, OH: U.S. Environmental Protection Agency. U.S. Environmental Protection Agency Technical Report, EPA/600/R--00/057, 200p. -.. [rtree] Toblerity/rtree. (n.d.). Retrieved on March 17, 2022 from https://github.com/Toblerity/rtree. +.. + [rtree] Toblerity/rtree. (n.d.). Retrieved on March 17, 2022 from https://github.com/Toblerity/rtree. -.. [RWTS20] Rossman, L., Woo, H., Tryby M., Shang, F., Janke, R., and Haxton, T. (2020) EPANET 2.2 User Manual. U.S. Environmental Protection Agency, Washington, DC, EPA/600/R-20/133. +.. + [RWTS20] Rossman, L., Woo, H., Tryby M., Shang, F., Janke, R., and Haxton, T. (2020) EPANET 2.2 User Manual. U.S. Environmental Protection Agency, Washington, DC, EPA/600/R-20/133. -.. [SOKZ12] Salomons, E., Ostfeld, A., Kapelan, Z., Zecchin, A., Marchi, A., and Simpson, A. (2012). The battle of the water networks II - Problem description. Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia. Retrieved on May 23, 2017 from https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf. +.. + [SOKZ12] Salomons, E., Ostfeld, A., Kapelan, Z., Zecchin, A., Marchi, A., and Simpson, A. (2012). The battle of the water networks II - Problem description. Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia. Retrieved on May 23, 2017 from https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf. -.. [SPHC16] Sievert, C., Parmer, C., Hocking, T., Chamberlain, S., Ram, K., Corvellec, M., and Despouy, P. (2016). plotly: Create interactive web graphics via Plotly’s JavaScript graphing library [Software]. +.. + [SPHC16] Sievert, C., Parmer, C., Hocking, T., Chamberlain, S., Ram, K., Corvellec, M., and Despouy, P. (2016). plotly: Create interactive web graphics via Plotly’s JavaScript graphing library [Software]. -.. [Todi00] Todini, E. (2000). Looped water distribution networks design using a resilience index based heuristic approach. Urban Water, 2(2), 115-122. +.. + [Todi00] Todini, E. (2000). Looped water distribution networks design using a resilience index based heuristic approach. Urban Water, 2(2), 115-122. -.. [USEPA14] United States Environmental Protection Agency. (2014). Systems Measures of Water Distribution System Resilience. Washington DC: U.S. Environmental Protection Agency. U.S. Environmental Protection Agency Technical Report, EPA 600/R--14/383, 58p. +.. + [USEPA14] United States Environmental Protection Agency. (2014). Systems Measures of Water Distribution System Resilience. Washington DC: U.S. Environmental Protection Agency. U.S. Environmental Protection Agency Technical Report, EPA 600/R--14/383, 58p. -.. [USEPA15] United States Environmental Protection Agency. (2015). Water Security Toolkit User Manual. Washington DC: U.S. Environmental Protection Agency. U.S. Environmental Protection Agency Technical Report, EPA/600/R-14/338, 187p. +.. + [USEPA15] United States Environmental Protection Agency. (2015). Water Security Toolkit User Manual. Washington DC: U.S. Environmental Protection Agency. U.S. Environmental Protection Agency Technical Report, EPA/600/R-14/338, 187p. -.. [VaCV11] van der Walt, S., Colbert, S.C., and Varoquaux, G. (2011). The NumPy array: A structure for efficient numerical computation. Computing in Science and Engineering, 13, 22-30. +.. + [VaCV11] van der Walt, S., Colbert, S.C., and Varoquaux, G. (2011). The NumPy array: A structure for efficient numerical computation. Computing in Science and Engineering, 13, 22-30. -.. [WaSM88] Wagner, J.M., Shamir, U., and Marks, D.H. (1988). Water distribution reliability: Simulation methods. Journal of Water Resources Planning and Management, 114(3), 276-294. +.. + [WaSM88] Wagner, J.M., Shamir, U., and Marks, D.H. (1988). Water distribution reliability: Simulation methods. Journal of Water Resources Planning and Management, 114(3), 276-294. -.. [WaWC06] Walski, T., Weiler, J. Culver, T. (2006). Using Criticality Analysis to Identify Impact of Valve Location. Water Distribution Systems Analysis Symposium. Cincinnati, OH, American Society of Civil Engineers: 1-9. +.. + [WaWC06] Walski, T., Weiler, J. Culver, T. (2006). Using Criticality Analysis to Identify Impact of Valve Location. Water Distribution Systems Analysis Symposium. Cincinnati, OH, American Society of Civil Engineers: 1-9. -.. [WWQP06] Wald, D.J., Worden, B.C., Quitoriano, V., and Pankow, K.L. (2006). ShakeMap manual: Technical manual, user's guide, and software guide. United States Geologic Survey, Retrieved on April 25, 2017 from http://pubs.usgs.gov/tm/2005/12A01/. +.. + [WWQP06] Wald, D.J., Worden, B.C., Quitoriano, V., and Pankow, K.L. (2006). ShakeMap manual: Technical manual, user's guide, and software guide. United States Geologic Survey, Retrieved on April 25, 2017 from http://pubs.usgs.gov/tm/2005/12A01/. -.. [WCSG03] Walski, T.M., Chase, D.V., Savic, D.A., Grayman, W., Beckwith, S. (2003). Advanced Water Distribution Modeling and Management. HAESTAD Press, Waterbury, CT, 693p. +.. + [WCSG03] Walski, T.M., Chase, D.V., Savic, D.A., Grayman, W., Beckwith, S. (2003). Advanced Water Distribution Modeling and Management. HAESTAD Press, Waterbury, CT, 693p. -.. [*] Cross reference labels begins with 4 letters: +.. + [*] Cross reference labels begins with 4 letters: * If the citation has one author, the first 4 letters of name are used * If the citation has two authors, the first 2 letters of author 1 and first 2 letters of author 2 are used @@ -86,3 +120,7 @@ References The next two digits are the year (century ignored). If the 6 digits match another citation, a lower case letter (a, b, ...) is added. Cross reference notation will be updated to a standard format when better options come available. + + +.. bibliography:: + diff --git a/documentation/references.bib b/documentation/references.bib new file mode 100644 index 000000000..02727583b --- /dev/null +++ b/documentation/references.bib @@ -0,0 +1,350 @@ +@techreport{ALA01, + label = {ALA01}, + author = {{American Lifelines Alliance}}, + institution = {American Society of Civil Engineers}, + title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2}, + subtitle = {Report for the American Lifelines Alliance}, + year = {2001}, + editor = {{ASCE}}, + address = {Reston, VA}, +} + +@article{AwGB90, + title={Assessment of reliability in water distribution networks using entropy based measures}, + author={Awumah, K and Goulter, I and Bhatt, SK}, + journal={Stochastic Hydrology and Hydraulics}, + volume={4}, + pages={309--320}, + year={1990}, + publisher={Springer}, + doi={10.1007/BF01544084}, +} + +@article{BaRR13, +title = {Resilience-based network component importance measures}, +journal = {Reliability Engineering & System Safety}, +volume = {117}, +pages = {89-97}, +year = {2013}, +issn = {0951-8320}, +doi = {https://doi.org/10.1016/j.ress.2013.03.012}, +OPTurl = {https://www.sciencedirect.com/science/article/pii/S0951832013000823}, +author = {Kash Barker and Jose Emmanuel Ramirez-Marquez and Claudio M. Rocco}, +keywords = {Network resilience, Component importance measure, Vulnerability, Recoverability}, +} + +@misc{Bieni19, + author = {Bieniek, T. and van Andel, B. and Bø, T.I}, + howpublished = {Software}, + url = {https://github.com/Turbo87/utm}, + urldate = {2019-02-05}, + title = {Bidirectional UTM-WGS84 converter for python}, + year = {2019}, + +} + +@book{CrLo02, + author = {Crowl, D.A. and Louvar, J.F.}, + edition = {3}, + publisher = {Prentice Hall}, + address = {Upper Saddle River, NJ}, + title = {Chemical Process Safety: Fundamentals with Applications}, + year = {2011}, + pages = {720}, + isbn = {0-13-138226-8}, +} + +@techreport{ELLT12, +title = {An Examination of Temporal Trends in Electricity Reliability Based on Reports from U.S. Electric Utilities}, +author = {Eto, Joseph H and LaCommare, Kristina Hamachi and Larsen, Peter and Todd, Annika and Fisher, Emily}, +doi = {10.2172/1055706}, +url = {https://www.osti.gov/biblio/1055706}, +place = {Berkeley, CA}, +institution = {Lawrence Berkeley National Laboratory}, +year = {2012}, +month = {1} +} + +@misc{JVFM21, + author = {Jordahl, K. and Van den Bossche, J. and Fleischmann, M, and McBride, J. and others}, + howpublished = {Software}, + title = {geopandas}, + year = {2021}, + doi = {10.5281/zenodo.5573592} +} + +@misc{Folium, + author = {python-visualization}, + howpublished = {Software}, + title = {folium}, + year = {2019}, + url = {https://github.com/python-visualization/folium}, + urldate = {2019-02-05}, +} + +@misc{GaCl18, + author = {Gazoni, E. and Clark, C.}, + title = {openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files}, + howpublished = {Software}, + year = {2018}, + url = {https://openpyxl.readthedocs.io}, + urldate = {2018-05-04}, +} + +@inproceedings{HaSS08, + author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart}, + title = {Exploring Network Structure, Dynamics, and Function using NetworkX}, + booktitle = {Proceedings of the 7th Python in Science Conference}, + pages = {11 - 15}, + address = {Pasadena, CA USA}, + year = {2008}, + editor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, + url = {https://www.osti.gov/biblio/960616}, +} + +@article{Hunt07, + author={Hunter, John D.}, + journal={Computing in Science & Engineering}, + title={Matplotlib: A 2D Graphics Environment}, + year={2007}, + volume={9}, + number={3}, + pages={90-95}, + doi={10.1109/MCSE.2007.55}} +} + +@book{ICC12, + author = {International Code Council}, + publisher = {International Code Council}, + title = {2012 International Fire Code, Appendix B - Fire-Flow Requirements for Buildings}, + year = {2011}, + isbn = {978-1-60983-046-5}, +} + +@article{JaSr08, +author = {Jayaram, Nirmal and Srinivasan, K.}, +title = {Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing}, +journal = {Water Resources Research}, +volume = {44}, +number = {1}, +pages = {}, +keywords = {reliability, design and rehabilitation, life cycle costing, multiobjective optimization, resilience index, heuristic method}, +doi = {https://doi.org/10.1029/2006WR005316}, +OPTurl = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2006WR005316}, +OPTeprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2006WR005316}, +year = {2008}} + +@article{JCMG11, +author = {Joyner, David and \v{C}ert\'{\i}k, Ond\v{r}ej and Meurer, Aaron and Granger, Brian E.}, +title = {Open Source Computer Algebra Systems: SymPy}, +year = {2012}, +issue_date = {September/December 2011}, +publisher = {Association for Computing Machinery}, +address = {New York, NY, USA}, +volume = {45}, +number = {3/4}, +issn = {1932-2240}, +OPTurl = {https://doi.org/10.1145/2110170.2110185}, +doi = {10.1145/2110170.2110185}, +journal = {ACM Communications in Computer Algebra}, +month = {jan}, +pages = {225–234}, +numpages = {10} +} + +@inproceedings{Lamb01, + title={What do we know about pressure-leakage relationships in distribution systems}, + author={Lambert, Allan}, + booktitle={Proceedings of the IWA Specialised Conference ‘System Approach to Leakage Control and Water Distribution Systems Management’}, + booksubtitle = {Brno, Czech Republic, May 16-18}, + year={2001}, +} + +@article{LWFZ17, +author = {Haixing Liu and Tom Walski and Guangtao Fu and Chi Zhang }, +title = {Failure Impact Analysis of Isolation Valves in a Water Distribution Network}, +journal = {Journal of Water Resources Planning and Management}, +volume = {143}, +number = {7}, +pages = {04017019}, +year = {2017}, +doi = {10.1061/(ASCE)WR.1943-5452.0000766}, +} + +@book{Mcki13, + title={Python for data analysis: Data wrangling with Pandas, NumPy, and IPython}, + author={McKinney, Wes}, + year={2012}, + publisher={O'Reilly Media, Inc.} +} + +@techreport{NIAC09, + author = {{National Infrastructure Advisory Council (NIAC)}}, + institution = {U.S. Department of Homeland Security}, + address = {Washington, D.C.}, + title = {Critical Infrastructure Resilience, Final Report and Recommendations}, + year = {2009}, + url = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, + urldate = {2014-09-20}, +} + +@article{OsKS02, +title = {Reliability simulation of water distribution systems – single and multiquality}, +journal = {Urban Water}, +volume = {4}, +number = {1}, +pages = {53-61}, +year = {2002}, +issn = {1462-0758}, +doi = {https://doi.org/10.1016/S1462-0758(01)00055-3}, +OPTurl = {https://www.sciencedirect.com/science/article/pii/S1462075801000553}, +author = {Avi Ostfeld and Dimitri Kogan and Uri Shamir}, +keywords = {Analysis, EPANET, Multiquality, Networks, Reliability, Software, Water distribution systems}, +} + +@techreport{Ross00, + title={EPANET 2.2 User Manual}, + author={Rossman, Lew}, + year = {2000}, + address = {Cincinnati, OH}, + institution = {U.S. Environmental Protection Agency}, + number = {EPA/600/R--00/057} +} + +@misc{rtree, + author = {Toblerity}, + howpublished = {Software}, + title = {rtree}, + url = {https://github.com/Toblerity/rtree}, + urldate = {2022-03-17}, + year = {2022} +} + +@techreport{RWTS20, + author = {Rossman, L. and Woo, H. and Tryby M. and Shang, F. and Janke, R. and and Haxton, T.}, + institution = {U.S. Environmental Protection Agency}, + location = {Washington, DC}, + title = {EPANET 2.2 User Manual}, + year = {2020}, + number = {EPA/600/R-20/133}, +} + +@article{doi:10.1061/(ASCE)WR.1943-5452.0000378, +author = {Angela Marchi and Elad Salomons and Avi Ostfeld and Zoran Kapelan and others}, +optAdditionalAuthors = {and Angus R. Simpson and Aaron C. Zecchin and Holger R. Maier and Zheng Yi Wu and Samir M. Elsayed and Yuan Song and Tom Walski and Christopher Stokes and Wenyan Wu and Graeme C. Dandy and Stefano Alvisi and Enrico Creaco and Marco Franchini and Juan Saldarriaga and Diego Páez and David Hernández and Jessica Bohórquez and Russell Bent and Carleton Coffrin and David Judi and Tim McPherson and Pascal van Hentenryck and José Pedro Matos and António Jorge Monteiro and Natércia Matias and Do Guen Yoo and Ho Min Lee and Joong Hoon Kim and Pedro L. Iglesias-Rey and Francisco J. Martínez-Solano and Daniel Mora-Meliá and José V. Ribelles-Aguilar and Michele Guidolin and Guangtao Fu and Patrick Reed and Qi Wang and Haixing Liu and Kent McClymont and Matthew Johns and Edward Keedwell and Venu Kandiah and Micah Nathanael Jasper and Kristen Drake and Ehsan Shafiee and Mehdy Amirkhanzadeh Barandouzi and Andrew David Berglund and Downey Brill and Gnanamanikam Mahinthakumar and Ranji Ranjithan and Emily Michelle Zechman and Mark S. Morley and Carla Tricarico and Giovanni de Marinis and Bryan A. Tolson and Ayman Khedr and Masoud Asadzadeh }, +title = {Battle of the Water Networks II}, +journal = {Journal of Water Resources Planning and Management}, +volume = {140}, +number = {7}, +pages = {04014009}, +year = {2014}, +doi = {10.1061/(ASCE)WR.1943-5452.0000378}, +optURL = {https://ascelibrary.org/doi/abs/10.1061/%28ASCE%29WR.1943-5452.0000378}, +opteprint = {https://ascelibrary.org/doi/pdf/10.1061/%28ASCE%29WR.1943-5452.0000378}, +} + +@inproceedings{SOKZ12, + author = {Salomons, E. and Ostfeld, A. and Kapelan, Z. and Zecchin, A. and Marchi, A. and Simpson, A.}, + booktitle = {Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia}, + publisher = {ASCE}, + title = {The battle of the water networks II - Problem description}, + year = {2012}, + OPTurl = {https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf}, + urldate = {2017-05-23}, +} + +@misc{SPHC16, + author = {Sievert, C. and Parmer, C. and Hocking, T. and Chamberlain, S. and Ram, K. and Corvellec, M. and Despouy, P.}, + howpublished = {Software}, + title = {plotly: Create interactive web graphics via Plotly’s JavaScript graphing library}, + year = {2016} +} + +@article{Todi00, +title = {Looped water distribution networks design using a resilience index based heuristic approach}, +journal = {Urban Water}, +volume = {2}, +number = {2}, +pages = {115-122}, +year = {2000}, +note = {Developments in water distribution systems}, +issn = {1462-0758}, +doi = {https://doi.org/10.1016/S1462-0758(00)00049-2}, +OPTurl = {https://www.sciencedirect.com/science/article/pii/S1462075800000492}, +author = {Ezio Todini}, +keywords = {Water distribution, Looped networks, Resilience, Reliability, Multi-objective, Optimisation, Heuristic}, +} + +@techreport{USEPA14, + author = {{U.S. EPA}}, + institution = {U.S. Environmental Protection Agency}, + title = {Systems Measures of Water Distribution System Resilience}, + year = {2014}, + address = {Washington DC}, + number = {EPA 600/R--14/383}, + pagetotal = {58}, +} + +@techreport{USEPA15, + author = {{U.S. EPA}}, + institution = {U.S. Environmental Protection Agency}, + title = {Water Security Toolkit User Manual}, + year = {2015}, + address = {Washington DC}, + number = {EPA/600/R--14/338}, + pagetotal = {187}, +} + +@article{VaCV11, + author={van der Walt, Stefan and Colbert, S. Chris and Varoquaux, Gael}, + journal={Computing in Science & Engineering}, + title={The NumPy Array: A Structure for Efficient Numerical Computation}, + year={2011}, + volume={13}, + number={2}, + pages={22-30}, + doi={10.1109/MCSE.2011.37} + } + +@article{WaSM88, +author = {Janet M. Wagner and Uri Shamir and David H. Marks }, +title = {Water Distribution Reliability: Simulation Methods}, +journal = {Journal of Water Resources Planning and Management}, +volume = {114}, +number = {3}, +pages = {276-294}, +year = {1988}, +doi = {10.1061/(ASCE)0733-9496(1988)114:3(276)}, +} + +@inproceedings{WaWC06, +author = {Thomas M. Walski and Justin Sterling Weiler and Teresa Culver }, +title = {Using Criticality Analysis to Identify Impact of Valve Location}, +booktitle = {Water Distribution Systems Analysis Symposium 2006}, +chapter = {}, +pages = {1-9}, +doi = {10.1061/40941(247)31}, +year= {2006} +} + +@techreport{WWQP06, + author = {Wald, D.J. and Worden, B.C. and Quitoriano, V. and Pankow, K.L. }, + institution = {United States Geologic Survey}, + title = {ShakeMap manual: Technical manual, user's guide, and software guide}, + year = {2006}, + url = {http://pubs.usgs.gov/tm/2005/12A01/}, + urldate = {2017-04-25}, +} + +@book{WCSG03, + author = {Walski, T.M. and Chase, D.V. and Savic, D.A. and Grayman, W. and Beckwith, S.}, + address = {Waterbury, CT}, + publisher = {Haestad Press}, + title = {Advanced Water Distribution Modeling and Management}, + series = {Civil and Environmental Engineering and Engineering Mechanics Faculty Publications}, + year = {2003}, + pagetotal = {693}, + isbn = {978-0971414129}, + number = {18}, +} + diff --git a/documentation/resilience.rst b/documentation/resilience.rst index 9cdd28e4a..b7b9ac3cd 100644 --- a/documentation/resilience.rst +++ b/documentation/resilience.rst @@ -9,8 +9,8 @@ Resilience of water distribution systems refers to the design, maintenance, and operations of that system. All these aspects must work together to limit the effects of disasters and enable rapid return to normal delivery of safe water to customers. -Numerous resilience metrics have been suggested [USEPA14]_. -These metrics generally fall into five categories: topographic, hydraulic, water quality, water security, and economic [USEPA14]_. +Numerous resilience metrics have been suggested :cite:p:`USEPA14`. +These metrics generally fall into five categories: topographic, hydraulic, water quality, water security, and economic :cite:p:`USEPA14`. When quantifying resilience, it is important to understand which metric best defines resilience for a particular scenario. WNTR includes many metrics to help @@ -30,7 +30,7 @@ The following sections outline metrics that can be computed using WNTR, includin While some metrics define resilience as a single system-wide quantity, other metrics define quantities that are a function of time, space, or both. -For this reason, state transition plots [BaRR13]_ and network graphics +For this reason, state transition plots :cite:p:`BaRR13` and network graphics are useful ways to visualize resilience and compare metrics, as shown in :numref:`fig-metrics`. In the state transition plot, the x-axis represents time (before, during, and after a disruptive incident). The y-axis represents performance. This can be any time varying resilience metric that responds to the disruptive state. @@ -279,19 +279,19 @@ Hydraulic metrics included in WNTR are listed in :numref:`table-hydraulic-metri Demand To determine the number of node-time pairs above or below a specified demand threshold, use the :class:`~wntr.metrics.misc.query` method on results.node['demand']. - This method can be used to compute the fraction of delivered demand, from [OsKS02]_. + This method can be used to compute the fraction of delivered demand, from :cite:p:`OsKS02`. Water service availability Water service availability is the ratio of delivered demand to the expected demand. This metric can be computed as a function of time or space using the :class:`~wntr.metrics.hydraulic.water_service_availability` method. - This method can be used to compute the fraction of delivered volume, from [OsKS02]_. + This method can be used to compute the fraction of delivered volume, from :cite:p:`OsKS02`. - Todini index The Todini index [Todi00]_ is related to the capability of a system to overcome + Todini index The Todini index :cite:p:`Todi00` is related to the capability of a system to overcome failures while still meeting demands and pressures at nodes. The Todini index defines resilience at a specific time as a measure of surplus power at each node. The Todini index can be computed using the :class:`~wntr.metrics.hydraulic.todini_index` method. - Modified resilience index The modified resilience index [JaSr08]_ is similar to the Todini index, but is only computed at junctions. + Modified resilience index The modified resilience index :cite:p:`JaSr08` is similar to the Todini index, but is only computed at junctions. The metric defines resilience at a specific time as a measure of surplus power at each junction or as a system average. The modified resilience index can be computed using the :class:`~wntr.metrics.hydraulic.modified_resilience_index` method. @@ -301,7 +301,7 @@ Hydraulic metrics included in WNTR are listed in :numref:`table-hydraulic-metri A value of 1 indicates that tank storage is maximized, while a value of 0 means there is no water stored in the tank. Tank capacity can be computed using the :class:`~wntr.metrics.hydraulic.tank_capacity` method. - Entropy Entropy [AwGB90]_ is a measure of uncertainty in a random variable. + Entropy Entropy :cite:p:`AwGB90` is a measure of uncertainty in a random variable. In a water distribution network model, the random variable is flow in the pipes and entropy can be used to measure alternate flow paths when a network component fails. A network that carries maximum entropy @@ -310,11 +310,11 @@ Hydraulic metrics included in WNTR are listed in :numref:`table-hydraulic-metri The :class:`~wntr.network.model.WaterNetworkModel.to_graph` method can be used to generate a weighted graph. Entropy can be computed using the :class:`~wntr.metrics.hydraulic.entropy` method. - Expected demand Expected demand is computed at each node and timestep based on node demand, demand pattern, and demand multiplier [USEPA15]_. + Expected demand Expected demand is computed at each node and timestep based on node demand, demand pattern, and demand multiplier :cite:p:`USEPA15`. The metric can be computed using the :class:`~wntr.metrics.hydraulic.expected_demand` method. This method does not require running a hydraulic simulation. - Average expected demand Average expected demand per day is computed at each node based on node demand, demand pattern, and demand multiplier [USEPA15]_. + Average expected demand Average expected demand per day is computed at each node based on node demand, demand pattern, and demand multiplier :cite:p:`USEPA15`. The metric can be computed using the :class:`~wntr.metrics.hydraulic.average_expected_demand` method. This method does not require running a hydraulic simulation. @@ -385,7 +385,7 @@ Water quality metrics included in WNTR are listed in :numref:`table-water-quali Concentration To determine the number of node-time pairs above or below a specified concentration threshold, use the :class:`~wntr.metrics.misc.query` method on results.node['quality'] after a simulation using CHEM or TRACE. - This method can be used to compute the fraction of delivered quality, from [OsKS02]_. + This method can be used to compute the fraction of delivered quality, from :cite:p:`OsKS02`. Population impacted As stated above, population that is impacted by a specific quantity can be computed using the :class:`~wntr.metrics.misc.population_impacted` method. This can be applied to water quality metrics. @@ -434,7 +434,7 @@ The following examples compute water quality metrics, including: Water security metrics ----------------------- -Water security metrics quantify potential consequences of contamination scenarios. These metrics are documented in [USEPA15]_. +Water security metrics quantify potential consequences of contamination scenarios. These metrics are documented in :cite:p:`USEPA15`. Water security metrics included in WNTR are listed in :numref:`table-water-security-metrics`. .. _table-water-security-metrics: @@ -443,13 +443,13 @@ Water security metrics included in WNTR are listed in :numref:`table-water-secu ===================================== ================================================================================================================================================ Metric Description ===================================== ================================================================================================================================================ - Mass consumed Mass consumed is the mass of a contaminant that exits the network via node demand at each node-time pair [USEPA15]_. + Mass consumed Mass consumed is the mass of a contaminant that exits the network via node demand at each node-time pair :cite:p:`USEPA15`. The metric can be computed using the :class:`~wntr.metrics.water_security.mass_contaminant_consumed` method. - Volume consumed Volume consumed is the volume of a contaminant that exits the network via node demand at each node-time pair [USEPA15]_. + Volume consumed Volume consumed is the volume of a contaminant that exits the network via node demand at each node-time pair :cite:p:`USEPA15`. The metric can be computed using the :class:`~wntr.metrics.water_security.volume_contaminant_consumed` method. - Extent of contamination Extent of contamination is the length of contaminated pipe at each node-time pair [USEPA15]_. + Extent of contamination Extent of contamination is the length of contaminated pipe at each node-time pair :cite:p:`USEPA15`. The metric can be computed using the :class:`~wntr.metrics.water_security.extent_contaminant` method. Population impacted As stated above, population that is impacted by a specific quantity can be computed using the @@ -510,12 +510,12 @@ Economic metrics included in WNTR are listed in :numref:`table-economic-metrics Metric Description ===================================== ================================================================================================================================================ Network cost Network cost is the annual maintenance and operations cost of tanks, pipes, valves, and pumps based on the equations from the Battle of - Water Networks II [SOKZ12]_. + Water Networks II :cite:p:`SOKZ12`. Default values can be included in the calculation. Network cost can be computed using the :class:`~wntr.metrics.economic.annual_network_cost` method. - Greenhouse gas emissions Greenhouse gas emissions is the annual emissions associated with pipes based on equations from the Battle of Water Networks II [SOKZ12]_. + Greenhouse gas emissions Greenhouse gas emissions is the annual emissions associated with pipes based on equations from the Battle of Water Networks II :cite:p:`SOKZ12`. Default values can be included in the calculation. Greenhouse gas emissions can be computed using the :class:`~wntr.metrics.economic.annual_ghg_emissions` method. diff --git a/documentation/resultsobject.rst b/documentation/resultsobject.rst index 76480a7a4..37657db02 100644 --- a/documentation/resultsobject.rst +++ b/documentation/resultsobject.rst @@ -205,4 +205,4 @@ For example, DataFrames can be saved to Excel files using: >>> pressure.to_excel('pressure.xlsx') .. note:: - The Pandas method ``to_excel`` requires the Python package **openpyxl** [GaCl18]_, which is an optional dependency of WNTR. + The Pandas method ``to_excel`` requires the Python package **openpyxl** :cite:p:`GaCl18`, which is an optional dependency of WNTR. diff --git a/documentation/units.rst b/documentation/units.rst index 3c55d6337..da75b8a73 100644 --- a/documentation/units.rst +++ b/documentation/units.rst @@ -27,7 +27,7 @@ All data in WNTR is stored in the following SI (International System) units: When setting up analysis in WNTR, all input values should be specified in SI units. All simulation results are also stored in SI units and can be converted to other units if desired, -for instance by using the SymPy Python package [JCMG11]_. +for instance by using the SymPy Python package :cite:p:`JCMG11`. EPANET unit conventions ------------------------ @@ -40,7 +40,7 @@ These options define the mass and flow units used in the file. Some units also depend on the equation used for pipe roughness headloss and on the reaction order specified. -For reference, :numref:`table-epanet-units` includes EPANET unit conventions [Ross00]_. +For reference, :numref:`table-epanet-units` includes EPANET unit conventions :cite:p:`Ross00`. .. _table-epanet-units: .. table:: EPANET INP File Unit Conventions diff --git a/requirements.txt b/requirements.txt index d1b60d772..b719f3ed8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,6 +18,7 @@ sphinx sphinx_design sphinx_rtd_theme pydata_sphinx_theme +sphinxcontrib-bibtex # Testing pytest diff --git a/wntr/metrics/economic.py b/wntr/metrics/economic.py index 38434aa46..6372fa70c 100644 --- a/wntr/metrics/economic.py +++ b/wntr/metrics/economic.py @@ -24,7 +24,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, pump_cost=None): """ - Compute annual network cost [SOKZ12]_. + Compute annual network cost :cite:p:`SOKZ12`. Use the closest value from the lookup tables to compute annual cost for each component in the network. @@ -37,7 +37,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, tank_cost : pandas Series, optional Annual tank cost indexed by volume - (default values below, from [SOKZ12]_). + (default values below, from :cite:p:`SOKZ12`). ============= ================================ Volume (m3) Annual Cost ($/yr) @@ -52,7 +52,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, pipe_cost : pandas Series, optional Annual pipe cost per pipe length indexed by diameter - (default values below, from [SOKZ12]_). + (default values below, from :cite:p:`SOKZ12`). ============= ============= ================================ Diameter (in) Diameter (m) Annual Cost ($/m/yr) @@ -73,7 +73,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, prv_cost : pandas Series, optional Annual PRV valve cost indexed by diameter - (default values below, from [SOKZ12]_). + (default values below, from :cite:p:`SOKZ12`). ============= ============= ================================ Diameter (in) Diameter (m) Annual Cost ($/m/yr) @@ -94,7 +94,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, pump_cost : pd.Series, optional Annual pump cost indexed by maximum power input to pump - (default values below, from [SOKZ12]_). + (default values below, from :cite:p:`SOKZ12`). Maximum Power for a HeadPump is computed from the pump curve as follows: @@ -205,7 +205,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, def annual_ghg_emissions(wn, pipe_ghg=None): """ - Compute annual greenhouse gas emissions [SOKZ12]_. + Compute annual greenhouse gas emissions :cite:p:`SOKZ12`. Use the closest value in the lookup table to compute annual GHG emissions for each pipe in the network. @@ -218,7 +218,7 @@ def annual_ghg_emissions(wn, pipe_ghg=None): pipe_ghg : pandas Series, optional Annual GHG emissions indexed by pipe diameter - (default values below, from [SOKZ12]_). + (default values below, from :cite:p:`SOKZ12`). ============= ================================ Diameter (mm) Annualized EE (kg-CO2-e/m/yr) diff --git a/wntr/metrics/hydraulic.py b/wntr/metrics/hydraulic.py index 3d273e7fa..cba3824e8 100644 --- a/wntr/metrics/hydraulic.py +++ b/wntr/metrics/hydraulic.py @@ -181,7 +181,7 @@ def water_service_availability(expected_demand, demand): def todini_index(head, pressure, demand, flowrate, wn, Pstar): """ - Compute Todini index, equations from [Todi00]_. + Compute Todini index, equations from :cite:p:`Todi00`. The Todini index is related to the capability of a system to overcome failures while still meeting demands and pressures at the nodes. The @@ -241,7 +241,7 @@ def todini_index(head, pressure, demand, flowrate, wn, Pstar): def modified_resilience_index(pressure, elevation, Pstar, demand=None, per_junction=True): """ - Compute the modified resilience index, equations from [JaSr08]_. + Compute the modified resilience index, equations from :cite:p:`JaSr08`. The modified resilience index is the total surplus power available at demand junctions as a percentage of the total minimum required power at @@ -331,7 +331,7 @@ def tank_capacity(pressure, wn): def entropy(G, sources=None, sinks=None): """ - Compute entropy, equations from [AwGB90]_. + Compute entropy, equations from :cite:p:`AwGB90`. Entropy is a measure of uncertainty in a random variable. In a water distribution network model, the random variable is diff --git a/wntr/metrics/misc.py b/wntr/metrics/misc.py index 5326e15c5..1147991e3 100644 --- a/wntr/metrics/misc.py +++ b/wntr/metrics/misc.py @@ -47,7 +47,7 @@ def query(arg1, operation, arg2): def population(wn, R=0.00000876157): r""" - Compute population per node, rounded to the nearest integer [USEPA15]_. + Compute population per node, rounded to the nearest integer :cite:p:`USEPA15`. .. math:: pop=\dfrac{Average\ expected\ demand}{R} diff --git a/wntr/metrics/water_security.py b/wntr/metrics/water_security.py index dcef2d89c..a502535ba 100644 --- a/wntr/metrics/water_security.py +++ b/wntr/metrics/water_security.py @@ -18,7 +18,7 @@ logger = logging.getLogger(__name__) def mass_contaminant_consumed(demand, quality, detection_limit=0): - """ Mass of contaminant consumed [USEPA15]_. + """ Mass of contaminant consumed :cite:p:`USEPA15`. Parameters ---------- @@ -46,7 +46,7 @@ def mass_contaminant_consumed(demand, quality, detection_limit=0): return MC def volume_contaminant_consumed(demand, quality, detection_limit=0): - """ Volume of contaminant consumed [USEPA15]_. + """ Volume of contaminant consumed :cite:p:`USEPA15`. Parameters ---------- @@ -75,7 +75,7 @@ def volume_contaminant_consumed(demand, quality, detection_limit=0): def extent_contaminant(quality, flowrate, wn, detection_limit=0): """ - Extent of contaminant in the pipes [USEPA15]_. + Extent of contaminant in the pipes :cite:p:`USEPA15`. Parameters ---------- From 4292e90b016a3f227f6179b3572d1f4658fbe558 Mon Sep 17 00:00:00 2001 From: dbhart Date: Mon, 13 Nov 2023 22:26:33 -0700 Subject: [PATCH 05/29] Update to references --- documentation/reference.rst | 3 + documentation/references.bib | 504 +++++++++++++++++------------------ wntr/epanet/io.py | 17 +- 3 files changed, 252 insertions(+), 272 deletions(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index bd6bfa435..db3b0bbe1 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -123,4 +123,7 @@ References .. bibliography:: + :list: bullet + +References are available in BibTeX format in the repository at diff --git a/documentation/references.bib b/documentation/references.bib index 02727583b..3e2e644db 100644 --- a/documentation/references.bib +++ b/documentation/references.bib @@ -1,350 +1,334 @@ + @techreport{ALA01, - label = {ALA01}, - author = {{American Lifelines Alliance}}, - institution = {American Society of Civil Engineers}, - title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2}, - subtitle = {Report for the American Lifelines Alliance}, - year = {2001}, - editor = {{ASCE}}, - address = {Reston, VA}, + address = {Reston, VA}, + author = {{American Lifelines Alliance}}, + editor = {{ASCE}}, + institution = {American Society of Civil Engineers}, + subtitle = {Report for the American Lifelines Alliance}, + title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2}, + year = {2001} } @article{AwGB90, - title={Assessment of reliability in water distribution networks using entropy based measures}, - author={Awumah, K and Goulter, I and Bhatt, SK}, - journal={Stochastic Hydrology and Hydraulics}, - volume={4}, - pages={309--320}, - year={1990}, - publisher={Springer}, - doi={10.1007/BF01544084}, + author = {Awumah, K and Goulter, I and Bhatt, SK}, + doi = {10.1007/BF01544084}, + journal = {Stochastic Hydrology and Hydraulics}, + pages = {309--320}, + publisher = {Springer}, + title = {Assessment of reliability in water distribution networks using entropy based measures}, + volume = {4}, + year = {1990} } @article{BaRR13, -title = {Resilience-based network component importance measures}, -journal = {Reliability Engineering & System Safety}, -volume = {117}, -pages = {89-97}, -year = {2013}, -issn = {0951-8320}, -doi = {https://doi.org/10.1016/j.ress.2013.03.012}, -OPTurl = {https://www.sciencedirect.com/science/article/pii/S0951832013000823}, -author = {Kash Barker and Jose Emmanuel Ramirez-Marquez and Claudio M. Rocco}, -keywords = {Network resilience, Component importance measure, Vulnerability, Recoverability}, + author = {Kash Barker and Jose Emmanuel Ramirez-Marquez and Claudio M. Rocco}, + doi = {10.1016/j.ress.2013.03.012}, + issn = {0951-8320}, + journal = {Reliability Engineering \& System Safety}, + keywords = {Network resilience, Component importance measure, Vulnerability, Recoverability}, + pages = {89-97}, + title = {Resilience-based network component importance measures}, + volume = {117}, + year = {2013} } @misc{Bieni19, - author = {Bieniek, T. and van Andel, B. and Bø, T.I}, - howpublished = {Software}, - url = {https://github.com/Turbo87/utm}, - urldate = {2019-02-05}, - title = {Bidirectional UTM-WGS84 converter for python}, - year = {2019}, - + author = {Bieniek, T. and van Andel, B. and B{\o}, T.I}, + howpublished = {Software}, + title = {Bidirectional {UTM}-{WGS84} converter for python}, + url = {https://github.com/Turbo87/utm}, + urldate = {2019-02-05}, + year = {2019} } @book{CrLo02, - author = {Crowl, D.A. and Louvar, J.F.}, - edition = {3}, - publisher = {Prentice Hall}, - address = {Upper Saddle River, NJ}, - title = {Chemical Process Safety: Fundamentals with Applications}, - year = {2011}, - pages = {720}, - isbn = {0-13-138226-8}, + address = {Upper Saddle River, NJ}, + author = {Crowl, D.A. and Louvar, J.F.}, + edition = {3}, + isbn = {0-13-138226-8}, + pages = {720}, + publisher = {Prentice Hall}, + title = {Chemical Process Safety: Fundamentals with Applications}, + year = {2011} } @techreport{ELLT12, -title = {An Examination of Temporal Trends in Electricity Reliability Based on Reports from U.S. Electric Utilities}, -author = {Eto, Joseph H and LaCommare, Kristina Hamachi and Larsen, Peter and Todd, Annika and Fisher, Emily}, -doi = {10.2172/1055706}, -url = {https://www.osti.gov/biblio/1055706}, -place = {Berkeley, CA}, -institution = {Lawrence Berkeley National Laboratory}, -year = {2012}, -month = {1} -} + author = {Eto, Joseph H and LaCommare, Kristina Hamachi and Larsen, Peter and Todd, Annika and Fisher, Emily}, + doi = {10.2172/1055706}, + institution = {Lawrence Berkeley National Laboratory}, + month = {1}, + place = {Berkeley, CA}, + title = {An Examination of Temporal Trends in Electricity Reliability Based on Reports from {U.S.} Electric Utilities}, + year = {2012} +} @misc{JVFM21, - author = {Jordahl, K. and Van den Bossche, J. and Fleischmann, M, and McBride, J. and others}, - howpublished = {Software}, - title = {geopandas}, - year = {2021}, - doi = {10.5281/zenodo.5573592} + author = {Jordahl, K. and Van den Bossche, J. and Fleischmann, M, and McBride, J. and others}, + doi = {10.5281/zenodo.5573592}, + howpublished = {Software}, + title = {geopandas}, + year = {2021} } @misc{Folium, - author = {python-visualization}, - howpublished = {Software}, - title = {folium}, - year = {2019}, - url = {https://github.com/python-visualization/folium}, - urldate = {2019-02-05}, + author = {python-visualization}, + howpublished = {Software}, + title = {folium}, + url = {https://github.com/python-visualization/folium}, + urldate = {2019-02-05}, + year = {2019} } @misc{GaCl18, - author = {Gazoni, E. and Clark, C.}, - title = {openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files}, - howpublished = {Software}, - year = {2018}, - url = {https://openpyxl.readthedocs.io}, - urldate = {2018-05-04}, + author = {Gazoni, E. and Clark, C.}, + howpublished = {Software}, + title = {openpyxl - A Python library to read/write {Excel} 2010 xlsx/xlsm files}, + url = {https://openpyxl.readthedocs.io}, + urldate = {2018-05-04}, + year = {2018} } @inproceedings{HaSS08, - author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart}, - title = {Exploring Network Structure, Dynamics, and Function using NetworkX}, - booktitle = {Proceedings of the 7th Python in Science Conference}, - pages = {11 - 15}, - address = {Pasadena, CA USA}, - year = {2008}, - editor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, - url = {https://www.osti.gov/biblio/960616}, + address = {Pasadena, CA}, + author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart}, + booktitle = {Proceedings of the 7th {Python} in Science Conference}, + editor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, + pages = {11 - 15}, + title = {Exploring Network Structure, Dynamics, and Function using {NetworkX}}, + url = {https://www.osti.gov/biblio/960616}, + year = {2008} } @article{Hunt07, - author={Hunter, John D.}, - journal={Computing in Science & Engineering}, - title={Matplotlib: A 2D Graphics Environment}, - year={2007}, - volume={9}, - number={3}, - pages={90-95}, - doi={10.1109/MCSE.2007.55}} + author = {Hunter, John D.}, + doi = {10.1109/MCSE.2007.55}, + journal = {Computing in Science & Engineering}, + number = {3}, + pages = {90-95}, + title = {Matplotlib: A {2D} Graphics Environment}, + volume = {9}, + year = {2007} } @book{ICC12, - author = {International Code Council}, - publisher = {International Code Council}, - title = {2012 International Fire Code, Appendix B - Fire-Flow Requirements for Buildings}, - year = {2011}, - isbn = {978-1-60983-046-5}, -} + author = {International Code Council}, + isbn = {978-1-60983-046-5}, + publisher = {International Code Council}, + title = {2012 International Fire Code, Appendix B - Fire-Flow Requirements for Buildings}, + year = {2011}} @article{JaSr08, -author = {Jayaram, Nirmal and Srinivasan, K.}, -title = {Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing}, -journal = {Water Resources Research}, -volume = {44}, -number = {1}, -pages = {}, -keywords = {reliability, design and rehabilitation, life cycle costing, multiobjective optimization, resilience index, heuristic method}, -doi = {https://doi.org/10.1029/2006WR005316}, -OPTurl = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2006WR005316}, -OPTeprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2006WR005316}, -year = {2008}} + author = {Jayaram, Nirmal and Srinivasan, K.}, + doi = {10.1029/2006WR005316}, + journal = {Water Resources Research}, + keywords = {reliability, design and rehabilitation, life cycle costing, multiobjective optimization, resilience index, heuristic method}, + number = {1}, + title = {Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing}, + volume = {44}, + year = {2008} +} @article{JCMG11, -author = {Joyner, David and \v{C}ert\'{\i}k, Ond\v{r}ej and Meurer, Aaron and Granger, Brian E.}, -title = {Open Source Computer Algebra Systems: SymPy}, -year = {2012}, -issue_date = {September/December 2011}, -publisher = {Association for Computing Machinery}, -address = {New York, NY, USA}, -volume = {45}, -number = {3/4}, -issn = {1932-2240}, -OPTurl = {https://doi.org/10.1145/2110170.2110185}, -doi = {10.1145/2110170.2110185}, -journal = {ACM Communications in Computer Algebra}, -month = {jan}, -pages = {225–234}, -numpages = {10} + address = {New York, NY, USA}, + author = {Joyner, David and \v{C}ert\'{i}k, Ond\v{r}ej and Meurer, Aaron and Granger, Brian E.}, + doi = {10.1145/2110170.2110185}, + issn = {1932-2240}, + issue_date = {September/December 2011}, + journal = {ACM Communications in Computer Algebra}, + month = {jan}, + number = {3/4}, + numpages = {10}, + pages = {225--234}, + publisher = {Association for Computing Machinery}, + title = {Open Source Computer Algebra Systems: SymPy}, + volume = {45}, + year = {2012} } @inproceedings{Lamb01, - title={What do we know about pressure-leakage relationships in distribution systems}, - author={Lambert, Allan}, - booktitle={Proceedings of the IWA Specialised Conference ‘System Approach to Leakage Control and Water Distribution Systems Management’}, - booksubtitle = {Brno, Czech Republic, May 16-18}, - year={2001}, + author = {Lambert, Allan}, + booksubtitle = {Brno, Czech Republic, May 16-18}, + booktitle = {Proceedings of the {IWA} Specialised Conference 'System Approach to Leakage Control and Water Distribution Systems Management'}, + title = {What do we know about pressure-leakage relationships in distribution systems}, + year = {2001} } @article{LWFZ17, -author = {Haixing Liu and Tom Walski and Guangtao Fu and Chi Zhang }, -title = {Failure Impact Analysis of Isolation Valves in a Water Distribution Network}, -journal = {Journal of Water Resources Planning and Management}, -volume = {143}, -number = {7}, -pages = {04017019}, -year = {2017}, -doi = {10.1061/(ASCE)WR.1943-5452.0000766}, + author = {Haixing Liu and Tom Walski and Guangtao Fu and Chi Zhang}, + doi = {10.1061/(ASCE)WR.1943-5452.0000766}, + journal = {Journal of Water Resources Planning and Management}, + number = {7}, + pages = {04017019}, + title = {Failure Impact Analysis of Isolation Valves in a Water Distribution Network}, + volume = {143}, + year = {2017} } @book{Mcki13, - title={Python for data analysis: Data wrangling with Pandas, NumPy, and IPython}, - author={McKinney, Wes}, - year={2012}, - publisher={O'Reilly Media, Inc.} + author = {McKinney, Wes}, + publisher = {O'Reilly Media, Inc.}, + title = {Python for data analysis: Data wrangling with Pandas, NumPy, and IPython}, + year = {2012} } @techreport{NIAC09, - author = {{National Infrastructure Advisory Council (NIAC)}}, - institution = {U.S. Department of Homeland Security}, - address = {Washington, D.C.}, - title = {Critical Infrastructure Resilience, Final Report and Recommendations}, - year = {2009}, - url = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, - urldate = {2014-09-20}, + address = {Washington, D.C.}, + author = {{National Infrastructure Advisory Council (NIAC)}}, + institution = {U.S. Department of Homeland Security}, + title = {Critical Infrastructure Resilience, Final Report and Recommendations}, + url = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, + urldate = {2014-09-20}, + year = {2009} } @article{OsKS02, -title = {Reliability simulation of water distribution systems – single and multiquality}, -journal = {Urban Water}, -volume = {4}, -number = {1}, -pages = {53-61}, -year = {2002}, -issn = {1462-0758}, -doi = {https://doi.org/10.1016/S1462-0758(01)00055-3}, -OPTurl = {https://www.sciencedirect.com/science/article/pii/S1462075801000553}, -author = {Avi Ostfeld and Dimitri Kogan and Uri Shamir}, -keywords = {Analysis, EPANET, Multiquality, Networks, Reliability, Software, Water distribution systems}, + author = {Avi Ostfeld and Dimitri Kogan and Uri Shamir}, + doi = {10.1016/S1462-0758(01)00055-3}, + issn = {1462-0758}, + journal = {Urban Water}, + keywords = {Analysis, EPANET, Multiquality, Networks, Reliability, Software, Water distribution systems}, + number = {1}, + pages = {53--61}, + title = {Reliability simulation of water distribution systems - single and multiquality}, + volume = {4}, + year = {2002} } @techreport{Ross00, - title={EPANET 2.2 User Manual}, - author={Rossman, Lew}, - year = {2000}, - address = {Cincinnati, OH}, - institution = {U.S. Environmental Protection Agency}, - number = {EPA/600/R--00/057} -} + address = {Cincinnati, OH}, + author = {Rossman, Lew}, + institution = {U.S. Environmental Protection Agency}, + number = {EPA/600/R--00/057}, + title = {{EPANET} 2.2 User Manual}, + year = {2000}} @misc{rtree, - author = {Toblerity}, - howpublished = {Software}, - title = {rtree}, - url = {https://github.com/Toblerity/rtree}, - urldate = {2022-03-17}, - year = {2022} + author = {Toblerity}, + howpublished = {Software}, + title = {rtree}, + url = {https://github.com/Toblerity/rtree}, + urldate = {2022-03-17}, + year = {2022} } @techreport{RWTS20, - author = {Rossman, L. and Woo, H. and Tryby M. and Shang, F. and Janke, R. and and Haxton, T.}, - institution = {U.S. Environmental Protection Agency}, - location = {Washington, DC}, - title = {EPANET 2.2 User Manual}, - year = {2020}, - number = {EPA/600/R-20/133}, -} - -@article{doi:10.1061/(ASCE)WR.1943-5452.0000378, -author = {Angela Marchi and Elad Salomons and Avi Ostfeld and Zoran Kapelan and others}, -optAdditionalAuthors = {and Angus R. Simpson and Aaron C. Zecchin and Holger R. Maier and Zheng Yi Wu and Samir M. Elsayed and Yuan Song and Tom Walski and Christopher Stokes and Wenyan Wu and Graeme C. Dandy and Stefano Alvisi and Enrico Creaco and Marco Franchini and Juan Saldarriaga and Diego Páez and David Hernández and Jessica Bohórquez and Russell Bent and Carleton Coffrin and David Judi and Tim McPherson and Pascal van Hentenryck and José Pedro Matos and António Jorge Monteiro and Natércia Matias and Do Guen Yoo and Ho Min Lee and Joong Hoon Kim and Pedro L. Iglesias-Rey and Francisco J. Martínez-Solano and Daniel Mora-Meliá and José V. Ribelles-Aguilar and Michele Guidolin and Guangtao Fu and Patrick Reed and Qi Wang and Haixing Liu and Kent McClymont and Matthew Johns and Edward Keedwell and Venu Kandiah and Micah Nathanael Jasper and Kristen Drake and Ehsan Shafiee and Mehdy Amirkhanzadeh Barandouzi and Andrew David Berglund and Downey Brill and Gnanamanikam Mahinthakumar and Ranji Ranjithan and Emily Michelle Zechman and Mark S. Morley and Carla Tricarico and Giovanni de Marinis and Bryan A. Tolson and Ayman Khedr and Masoud Asadzadeh }, -title = {Battle of the Water Networks II}, -journal = {Journal of Water Resources Planning and Management}, -volume = {140}, -number = {7}, -pages = {04014009}, -year = {2014}, -doi = {10.1061/(ASCE)WR.1943-5452.0000378}, -optURL = {https://ascelibrary.org/doi/abs/10.1061/%28ASCE%29WR.1943-5452.0000378}, -opteprint = {https://ascelibrary.org/doi/pdf/10.1061/%28ASCE%29WR.1943-5452.0000378}, + author = {Rossman, L. and Woo, H. and Tryby M. and Shang, F. and Janke, R. and and Haxton, T.}, + institution = {U.S. Environmental Protection Agency}, + location = {Washington, DC}, + number = {EPA/600/R-20/133}, + title = {{EPANET} 2.2 User Manual}, + year = {2020}} + +@article{MarEtAl14, + author = {Angela Marchi and others}, + doi = {10.1061/(ASCE)WR.1943-5452.0000378}, + journal = {Journal of Water Resources Planning and Management}, + number = {7}, + pages = {04014009}, + title = {Battle of the Water Networks {II}}, + volume = {140}, + year = {2014} } @inproceedings{SOKZ12, - author = {Salomons, E. and Ostfeld, A. and Kapelan, Z. and Zecchin, A. and Marchi, A. and Simpson, A.}, - booktitle = {Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia}, - publisher = {ASCE}, - title = {The battle of the water networks II - Problem description}, - year = {2012}, - OPTurl = {https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf}, - urldate = {2017-05-23}, + author = {Salomons, E. and Ostfeld, A. and Kapelan, Z. and Zecchin, A. and Marchi, A. and Simpson, A.}, + booktitle = {Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia}, + url = {https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf}, + publisher = {American Society of Civil Engineers}, + title = {The battle of the water networks {II} - Problem description}, + urldate = {2017-05-23}, + year = {2012} } @misc{SPHC16, - author = {Sievert, C. and Parmer, C. and Hocking, T. and Chamberlain, S. and Ram, K. and Corvellec, M. and Despouy, P.}, - howpublished = {Software}, - title = {plotly: Create interactive web graphics via Plotly’s JavaScript graphing library}, - year = {2016} + author = {Sievert, C. and Parmer, C. and Hocking, T. and Chamberlain, S. and Ram, K. and Corvellec, M. and Despouy, P.}, + howpublished = {Software}, + title = {plotly: Create interactive web graphics via Plotly's {JavaScript} graphing library}, + year = {2016} } @article{Todi00, -title = {Looped water distribution networks design using a resilience index based heuristic approach}, -journal = {Urban Water}, -volume = {2}, -number = {2}, -pages = {115-122}, -year = {2000}, -note = {Developments in water distribution systems}, -issn = {1462-0758}, -doi = {https://doi.org/10.1016/S1462-0758(00)00049-2}, -OPTurl = {https://www.sciencedirect.com/science/article/pii/S1462075800000492}, -author = {Ezio Todini}, -keywords = {Water distribution, Looped networks, Resilience, Reliability, Multi-objective, Optimisation, Heuristic}, + author = {Ezio Todini}, + doi = {10.1016/S1462-0758(00)00049-2}, + issn = {1462-0758}, + journal = {Urban Water}, + keywords = {Water distribution, Looped networks, Resilience, Reliability, Multi-objective, Optimisation, Heuristic}, + note = {Developments in water distribution systems}, + number = {2}, + pages = {115--122}, + title = {Looped water distribution networks design using a resilience index based heuristic approach}, + volume = {2}, + year = {2000} } @techreport{USEPA14, - author = {{U.S. EPA}}, - institution = {U.S. Environmental Protection Agency}, - title = {Systems Measures of Water Distribution System Resilience}, - year = {2014}, - address = {Washington DC}, - number = {EPA 600/R--14/383}, - pagetotal = {58}, + address = {Washington DC}, + author = {{U.S. EPA}}, + institution = {U.S. Environmental Protection Agency}, + number = {EPA 600/R--14/383}, + pagetotal = {58}, + title = {Systems Measures of Water Distribution System Resilience}, + year = {2014} } @techreport{USEPA15, - author = {{U.S. EPA}}, - institution = {U.S. Environmental Protection Agency}, - title = {Water Security Toolkit User Manual}, - year = {2015}, - address = {Washington DC}, - number = {EPA/600/R--14/338}, - pagetotal = {187}, + address = {Washington DC}, + author = {{U.S. EPA}}, + institution = {U.S. Environmental Protection Agency}, + number = {EPA/600/R--14/338}, + pagetotal = {187}, + title = {Water Security Toolkit User Manual}, + year = {2015} } @article{VaCV11, - author={van der Walt, Stefan and Colbert, S. Chris and Varoquaux, Gael}, - journal={Computing in Science & Engineering}, - title={The NumPy Array: A Structure for Efficient Numerical Computation}, - year={2011}, - volume={13}, - number={2}, - pages={22-30}, - doi={10.1109/MCSE.2011.37} - } + author = {van der Walt, Stefan and Colbert, S. Chris and Varoquaux, Gael}, + doi = {10.1109/MCSE.2011.37}, + journal = {Computing in Science \& Engineering}, + number = {2}, + pages = {22--30}, + title = {The {NumPy} Array: A Structure for Efficient Numerical Computation}, + volume = {13}, + year = {2011} +} @article{WaSM88, -author = {Janet M. Wagner and Uri Shamir and David H. Marks }, -title = {Water Distribution Reliability: Simulation Methods}, -journal = {Journal of Water Resources Planning and Management}, -volume = {114}, -number = {3}, -pages = {276-294}, -year = {1988}, -doi = {10.1061/(ASCE)0733-9496(1988)114:3(276)}, + author = {Janet M. Wagner and Uri Shamir and David H. Marks}, + doi = {10.1061/(ASCE)0733-9496(1988)114:3(276)}, + journal = {Journal of Water Resources Planning and Management}, + number = {3}, + pages = {276--294}, + title = {Water Distribution Reliability: Simulation Methods}, + volume = {114}, + year = {1988} } @inproceedings{WaWC06, -author = {Thomas M. Walski and Justin Sterling Weiler and Teresa Culver }, -title = {Using Criticality Analysis to Identify Impact of Valve Location}, -booktitle = {Water Distribution Systems Analysis Symposium 2006}, -chapter = {}, -pages = {1-9}, -doi = {10.1061/40941(247)31}, -year= {2006} + author = {Thomas M. Walski and Justin Sterling Weiler and Teresa Culver}, + booktitle = {Water Distribution Systems Analysis Symposium 2006}, + doi = {10.1061/40941(247)31}, + pages = {1--9}, + title = {Using Criticality Analysis to Identify Impact of Valve Location}, + year = {2006} } @techreport{WWQP06, - author = {Wald, D.J. and Worden, B.C. and Quitoriano, V. and Pankow, K.L. }, - institution = {United States Geologic Survey}, - title = {ShakeMap manual: Technical manual, user's guide, and software guide}, - year = {2006}, - url = {http://pubs.usgs.gov/tm/2005/12A01/}, - urldate = {2017-04-25}, + author = {Wald, D.J. and Worden, B.C. and Quitoriano, V. and Pankow, K.L.}, + institution = {United States Geologic Survey}, + title = {{ShakeMap} manual: Technical manual, user's guide, and software guide}, + url = {http://pubs.usgs.gov/tm/2005/12A01/}, + urldate = {2017-04-25}, + year = {2006} } @book{WCSG03, - author = {Walski, T.M. and Chase, D.V. and Savic, D.A. and Grayman, W. and Beckwith, S.}, - address = {Waterbury, CT}, - publisher = {Haestad Press}, - title = {Advanced Water Distribution Modeling and Management}, - series = {Civil and Environmental Engineering and Engineering Mechanics Faculty Publications}, - year = {2003}, - pagetotal = {693}, - isbn = {978-0971414129}, - number = {18}, + address = {Waterbury, CT}, + author = {Walski, T.M. and Chase, D.V. and Savic, D.A. and Grayman, W. and Beckwith, S.}, + isbn = {978-0971414129}, + number = {18}, + pagetotal = {693}, + publisher = {Haestad Press}, + series = {Civil and Environmental Engineering and Engineering Mechanics Faculty Publications}, + title = {Advanced Water Distribution Modeling and Management}, + year = {2003} } - diff --git a/wntr/epanet/io.py b/wntr/epanet/io.py index 27936ba3c..07b0ab0fe 100644 --- a/wntr/epanet/io.py +++ b/wntr/epanet/io.py @@ -1,13 +1,5 @@ """ The wntr.epanet.io module contains methods for reading/writing EPANET input and output files. - -.. rubric:: Contents - -.. autosummary:: - - InpFile - BinFile - """ from __future__ import absolute_import @@ -2458,10 +2450,10 @@ class BinFile(object): Parameters ---------- - results_type : list of :class:`~wntr.epanet.util.ResultType`, default=None + results_type : list of ResultType, default=None This parameter is *only* active when using a subclass of the BinFile that implements a custom reader or writer. - If ``None``, then all results will be saved (node quality, demand, link flow, etc.). + If None, then all results will be saved (node quality, demand, link flow, etc.). Otherwise, a list of result types can be passed to limit the memory used. network : bool, default=False Save a new WaterNetworkModel from the description in the output binary file. Certain @@ -2476,9 +2468,10 @@ class BinFile(object): default, this is done, and the encoded-cause status values are converted simple state values, instead. + Returns - ---------- - :class:`~wntr.sim.results.SimulationResults` + ------- + SimulationResults A WNTR results object will be created and added to the instance after read. """ From 7a539b7e28bccfa3d3ce7529b199b16361f0421e Mon Sep 17 00:00:00 2001 From: dbhart Date: Mon, 13 Nov 2023 22:40:07 -0700 Subject: [PATCH 06/29] Fixing some references --- documentation/references.bib | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/documentation/references.bib b/documentation/references.bib index 3e2e644db..687b1dd19 100644 --- a/documentation/references.bib +++ b/documentation/references.bib @@ -1,10 +1,8 @@ @techreport{ALA01, address = {Reston, VA}, - author = {{American Lifelines Alliance}}, - editor = {{ASCE}}, - institution = {American Society of Civil Engineers}, - subtitle = {Report for the American Lifelines Alliance}, + author = {ALA}, + institution = {American Lifelines Alliance (ALA)}, title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2}, year = {2001} } @@ -173,8 +171,8 @@ @book{Mcki13 @techreport{NIAC09, address = {Washington, D.C.}, - author = {{National Infrastructure Advisory Council (NIAC)}}, - institution = {U.S. Department of Homeland Security}, + author = {NIAC}, + institution = {National Infrastructure Advisory Council (NIAC), U.S. Department of Homeland Security}, title = {Critical Infrastructure Resilience, Final Report and Recommendations}, url = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, urldate = {2014-09-20}, @@ -199,7 +197,7 @@ @techreport{Ross00 author = {Rossman, Lew}, institution = {U.S. Environmental Protection Agency}, number = {EPA/600/R--00/057}, - title = {{EPANET} 2.2 User Manual}, + title = {{EPANET} 2 User Manual}, year = {2000}} @misc{rtree, @@ -263,7 +261,7 @@ @article{Todi00 @techreport{USEPA14, address = {Washington DC}, - author = {{U.S. EPA}}, + author = {USEPA}, institution = {U.S. Environmental Protection Agency}, number = {EPA 600/R--14/383}, pagetotal = {58}, @@ -273,7 +271,7 @@ @techreport{USEPA14 @techreport{USEPA15, address = {Washington DC}, - author = {{U.S. EPA}}, + author = {USEPA}, institution = {U.S. Environmental Protection Agency}, number = {EPA/600/R--14/338}, pagetotal = {187}, From 6abc8e678534d9edfe444a6fcbacf5e3d6cb6d76 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 08:12:37 -0700 Subject: [PATCH 07/29] Attempt 3 with references --- documentation/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/conf.py b/documentation/conf.py index f10dfb24a..3ff8e8eaa 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -114,8 +114,8 @@ author = u'WNTR Developers' bibtex_bibfiles = ['references.bib'] -bibtex_default_style = 'plain' -bibtex_reference_style = 'author_year' +bibtex_default_style = 'unsrt' +bibtex_reference_style = 'label' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the From f89f46dec02152938443020b50f8685897b74351 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 08:17:22 -0700 Subject: [PATCH 08/29] Forgot to fix bibliography --- documentation/reference.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index db3b0bbe1..5a259a398 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -123,7 +123,6 @@ References .. bibliography:: - :list: bullet References are available in BibTeX format in the repository at From b78e6962d5bfd6ae810e462208afa4e07c0c4280 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 08:23:25 -0700 Subject: [PATCH 09/29] Reference attempt 4 --- documentation/conf.py | 2 +- documentation/reference.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/conf.py b/documentation/conf.py index 3ff8e8eaa..ebdb8ea12 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -114,7 +114,7 @@ author = u'WNTR Developers' bibtex_bibfiles = ['references.bib'] -bibtex_default_style = 'unsrt' +bibtex_default_style = 'plain' bibtex_reference_style = 'label' # The version info for the project you're documenting, acts as replacement for diff --git a/documentation/reference.rst b/documentation/reference.rst index 5a259a398..a7e845597 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -123,6 +123,6 @@ References .. bibliography:: + :style: label - -References are available in BibTeX format in the repository at +`These references `_ are also available in BibTeX format. From e9054f2268aded298e82c9efe20a862e182ccf81 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 08:25:42 -0700 Subject: [PATCH 10/29] And one more (last?) time --- documentation/reference.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index a7e845597..538ee3a94 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -123,6 +123,9 @@ References .. bibliography:: - :style: label + + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + `These references `_ are also available in BibTeX format. From 55a9dabb89f4276c85935125c3bed8f8fdf0821e Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 08:36:53 -0700 Subject: [PATCH 11/29] References worked, fixing html layout. --- documentation/reference.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index 538ee3a94..e9b0c529c 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -123,9 +123,11 @@ References .. bibliography:: + :cited: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +................... `These references `_ are also available in BibTeX format. + From 6c0f60f86b8e794087b1f29e1da2a5ccc70082ba Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 09:12:39 -0700 Subject: [PATCH 12/29] References update --- documentation/conf.py | 5 ----- documentation/reference.rst | 26 +------------------------- documentation/references.bib | 32 ++++++++++++++++++-------------- 3 files changed, 19 insertions(+), 44 deletions(-) diff --git a/documentation/conf.py b/documentation/conf.py index ebdb8ea12..addd6a9df 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -212,11 +212,6 @@ def setup(app): # The type of image to be used (see below for details) "type": "fontawesome", }, - { - "name": "PyPI", - "url": "https://pypi.org/project/wntr", - "icon": "fa-brands fa-pypi", - }, { "name": "Sandia National Laboratories", "url": "https://sandia.gov", # required diff --git a/documentation/reference.rst b/documentation/reference.rst index e9b0c529c..3c6617277 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -5,11 +5,7 @@ References ==================== -.. - only:: html - - Due to limitations with cross referenced citations in reStructuredText (e.g., commas and spaces are not supported), - citations are cross referenced using a 6 digit notation [*]_. +`These references `_ are also available in BibTeX format. .. [ALA01] American Lifelines Alliance. (2001). Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance, ASCE (Ed.) Reston, VA: American Society of Civil Engineers. April 2001. @@ -107,27 +103,7 @@ References .. [WCSG03] Walski, T.M., Chase, D.V., Savic, D.A., Grayman, W., Beckwith, S. (2003). Advanced Water Distribution Modeling and Management. HAESTAD Press, Waterbury, CT, 693p. -.. - [*] Cross reference labels begins with 4 letters: - - * If the citation has one author, the first 4 letters of name are used - * If the citation has two authors, the first 2 letters of author 1 and first 2 letters of author 2 are used - * If the citation has three authors, the first 2 letters of author 1, first letter of author 2, and first letter of author 3 are used - * If the citation has four authors, the first letter of each author is used - * If the citation has more than four authors, the first letter of first four authors is used - * Exceptions are made for American Lifelines Alliance (ALA) and United States Environmental Protection Agency (USEPA) - - The next two digits are the year (century ignored). - If the 6 digits match another citation, a lower case letter (a, b, ...) is added. - Cross reference notation will be updated to a standard format when better options come available. - .. bibliography:: :cited: - - -................... - -`These references `_ are also available in BibTeX format. - diff --git a/documentation/references.bib b/documentation/references.bib index 687b1dd19..c1a314689 100644 --- a/documentation/references.bib +++ b/documentation/references.bib @@ -1,14 +1,16 @@ @techreport{ALA01, address = {Reston, VA}, - author = {ALA}, - institution = {American Lifelines Alliance (ALA)}, + editor = {ASCE}, + institution = {American Society of Civil Engineers}, title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2}, - year = {2001} + subtitle = {Report for the American Lifelines Alliance}, + year = {2001}, + month = {4}, } @article{AwGB90, - author = {Awumah, K and Goulter, I and Bhatt, SK}, + author = {K. Awumah and I. Goulter and S. K. Bhatt}, doi = {10.1007/BF01544084}, journal = {Stochastic Hydrology and Hydraulics}, pages = {309--320}, @@ -22,16 +24,16 @@ @article{BaRR13 author = {Kash Barker and Jose Emmanuel Ramirez-Marquez and Claudio M. Rocco}, doi = {10.1016/j.ress.2013.03.012}, issn = {0951-8320}, - journal = {Reliability Engineering \& System Safety}, + journal = {Reliability Engineering and System Safety}, keywords = {Network resilience, Component importance measure, Vulnerability, Recoverability}, - pages = {89-97}, + pages = {89--97}, title = {Resilience-based network component importance measures}, volume = {117}, year = {2013} } @misc{Bieni19, - author = {Bieniek, T. and van Andel, B. and B{\o}, T.I}, + author = {Bieniek, T. and van Andel, B. and B{\o}, T.I.}, howpublished = {Software}, title = {Bidirectional {UTM}-{WGS84} converter for python}, url = {https://github.com/Turbo87/utm}, @@ -44,7 +46,7 @@ @book{CrLo02 author = {Crowl, D.A. and Louvar, J.F.}, edition = {3}, isbn = {0-13-138226-8}, - pages = {720}, + pagetotal = {720}, publisher = {Prentice Hall}, title = {Chemical Process Safety: Fundamentals with Applications}, year = {2011} @@ -55,6 +57,8 @@ @techreport{ELLT12 doi = {10.2172/1055706}, institution = {Lawrence Berkeley National Laboratory}, month = {1}, + number = {LBNL-5268E}, + pagetotal = {68}, place = {Berkeley, CA}, title = {An Examination of Temporal Trends in Electricity Reliability Based on Reports from {U.S.} Electric Utilities}, year = {2012} @@ -87,9 +91,9 @@ @misc{GaCl18 } @inproceedings{HaSS08, - address = {Pasadena, CA}, author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart}, booktitle = {Proceedings of the 7th {Python} in Science Conference}, + booksubtitle = {August 19-24, 2008, Pasadena, CA, USA}, editor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, pages = {11 - 15}, title = {Exploring Network Structure, Dynamics, and Function using {NetworkX}}, @@ -102,24 +106,24 @@ @article{Hunt07 doi = {10.1109/MCSE.2007.55}, journal = {Computing in Science & Engineering}, number = {3}, - pages = {90-95}, + pages = {90--95}, title = {Matplotlib: A {2D} Graphics Environment}, volume = {9}, year = {2007} } @book{ICC12, - author = {International Code Council}, + address = {Country Club Hills, IL}, + author = {ICC}, isbn = {978-1-60983-046-5}, publisher = {International Code Council}, - title = {2012 International Fire Code, Appendix B - Fire-Flow Requirements for Buildings}, + title = {2012 International Fire Code, Appendix {B} - Fire-Flow Requirements for Buildings}, year = {2011}} @article{JaSr08, author = {Jayaram, Nirmal and Srinivasan, K.}, doi = {10.1029/2006WR005316}, journal = {Water Resources Research}, - keywords = {reliability, design and rehabilitation, life cycle costing, multiobjective optimization, resilience index, heuristic method}, number = {1}, title = {Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing}, volume = {44}, @@ -132,7 +136,7 @@ @article{JCMG11 doi = {10.1145/2110170.2110185}, issn = {1932-2240}, issue_date = {September/December 2011}, - journal = {ACM Communications in Computer Algebra}, + journal = {{ACM} Communications in Computer Algebra}, month = {jan}, number = {3/4}, numpages = {10}, From 648ac2c26add851fcca4d5ef43d1c17261615e50 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 11:49:01 -0700 Subject: [PATCH 13/29] More citation updates --- documentation/reference.rst | 10 ++- documentation/references.bib | 154 +++++++++++++++++++---------------- 2 files changed, 92 insertions(+), 72 deletions(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index 3c6617277..a9eada2d9 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -5,8 +5,6 @@ References ==================== -`These references `_ are also available in BibTeX format. - .. [ALA01] American Lifelines Alliance. (2001). Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance, ASCE (Ed.) Reston, VA: American Society of Civil Engineers. April 2001. @@ -101,9 +99,15 @@ References [WWQP06] Wald, D.J., Worden, B.C., Quitoriano, V., and Pankow, K.L. (2006). ShakeMap manual: Technical manual, user's guide, and software guide. United States Geologic Survey, Retrieved on April 25, 2017 from http://pubs.usgs.gov/tm/2005/12A01/. .. - [WCSG03] Walski, T.M., Chase, D.V., Savic, D.A., Grayman, W., Beckwith, S. (2003). Advanced Water Distribution Modeling and Management. HAESTAD Press, Waterbury, CT, 693p. + [WCSG03] Walski, T.M., Chase, D.V., Savic, D.A., Grayman, W., Beckwith, S. (2003). Advanced Water Distribution Modeling and Management. HAESTAD Press, Waterbury, CT, 800. .. bibliography:: :cited: + + +Data file +--------- +These `references `_ +are also available in BibTeX format in the source code repository. diff --git a/documentation/references.bib b/documentation/references.bib index c1a314689..31bffadab 100644 --- a/documentation/references.bib +++ b/documentation/references.bib @@ -1,12 +1,11 @@ -@techreport{ALA01, +@book{ALA01, address = {Reston, VA}, + author = {American Lifelines Alliance, (ALA)}, editor = {ASCE}, - institution = {American Society of Civil Engineers}, - title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2}, - subtitle = {Report for the American Lifelines Alliance}, + publisher = {American Society of Civil Engineers}, + title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance}, year = {2001}, - month = {4}, } @article{AwGB90, @@ -17,19 +16,19 @@ @article{AwGB90 publisher = {Springer}, title = {Assessment of reliability in water distribution networks using entropy based measures}, volume = {4}, - year = {1990} + number = {4}, + year = {1990}, } @article{BaRR13, author = {Kash Barker and Jose Emmanuel Ramirez-Marquez and Claudio M. Rocco}, doi = {10.1016/j.ress.2013.03.012}, issn = {0951-8320}, - journal = {Reliability Engineering and System Safety}, - keywords = {Network resilience, Component importance measure, Vulnerability, Recoverability}, + journal = {Reliability Engineering \& System Safety}, pages = {89--97}, title = {Resilience-based network component importance measures}, volume = {117}, - year = {2013} + year = {2013}, } @misc{Bieni19, @@ -38,7 +37,7 @@ @misc{Bieni19 title = {Bidirectional {UTM}-{WGS84} converter for python}, url = {https://github.com/Turbo87/utm}, urldate = {2019-02-05}, - year = {2019} + year = {2019}, } @book{CrLo02, @@ -49,27 +48,18 @@ @book{CrLo02 pagetotal = {720}, publisher = {Prentice Hall}, title = {Chemical Process Safety: Fundamentals with Applications}, - year = {2011} + year = {2011}, } @techreport{ELLT12, author = {Eto, Joseph H and LaCommare, Kristina Hamachi and Larsen, Peter and Todd, Annika and Fisher, Emily}, doi = {10.2172/1055706}, institution = {Lawrence Berkeley National Laboratory}, - month = {1}, number = {LBNL-5268E}, pagetotal = {68}, place = {Berkeley, CA}, title = {An Examination of Temporal Trends in Electricity Reliability Based on Reports from {U.S.} Electric Utilities}, - year = {2012} -} - -@misc{JVFM21, - author = {Jordahl, K. and Van den Bossche, J. and Fleischmann, M, and McBride, J. and others}, - doi = {10.5281/zenodo.5573592}, - howpublished = {Software}, - title = {geopandas}, - year = {2021} + year = {2012}, } @misc{Folium, @@ -78,7 +68,7 @@ @misc{Folium title = {folium}, url = {https://github.com/python-visualization/folium}, urldate = {2019-02-05}, - year = {2019} + year = {2019}, } @misc{GaCl18, @@ -87,47 +77,56 @@ @misc{GaCl18 title = {openpyxl - A Python library to read/write {Excel} 2010 xlsx/xlsm files}, url = {https://openpyxl.readthedocs.io}, urldate = {2018-05-04}, - year = {2018} + year = {2018}, } @inproceedings{HaSS08, author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart}, - booktitle = {Proceedings of the 7th {Python} in Science Conference}, - booksubtitle = {August 19-24, 2008, Pasadena, CA, USA}, - editor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, - pages = {11 - 15}, + booktitle = {Proceedings of the 7th {Python} in Science Conference ({SciPy2008}), August 19-24, Pasadena, CA, USA}, + OPTeditor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, + pages = {11--15}, title = {Exploring Network Structure, Dynamics, and Function using {NetworkX}}, url = {https://www.osti.gov/biblio/960616}, - year = {2008} + year = {2008}, } @article{Hunt07, - author = {Hunter, John D.}, + author = {Hunter, John D. and others}, doi = {10.1109/MCSE.2007.55}, - journal = {Computing in Science & Engineering}, + journal = {Computing in Science \& Engineering}, number = {3}, pages = {90--95}, title = {Matplotlib: A {2D} Graphics Environment}, volume = {9}, - year = {2007} + year = {2007}, } @book{ICC12, address = {Country Club Hills, IL}, - author = {ICC}, + author = {International Code Council, (ICC)}, isbn = {978-1-60983-046-5}, publisher = {International Code Council}, title = {2012 International Fire Code, Appendix {B} - Fire-Flow Requirements for Buildings}, - year = {2011}} + year = {2011}, +} @article{JaSr08, author = {Jayaram, Nirmal and Srinivasan, K.}, doi = {10.1029/2006WR005316}, journal = {Water Resources Research}, - number = {1}, + number = {1}, + volume = {44}, + pages = {n.p.}, title = {Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing}, - volume = {44}, - year = {2008} + year = {2008}, +} + +@misc{JVFM21, + author = {Jordahl, K. and Van den Bossche, J. and Fleischmann, M. and McBride, J. and others}, + doi = {10.5281/zenodo.5573592}, + howpublished = {Software}, + title = {geopandas}, + year = {2021}, } @article{JCMG11, @@ -137,22 +136,24 @@ @article{JCMG11 issn = {1932-2240}, issue_date = {September/December 2011}, journal = {{ACM} Communications in Computer Algebra}, - month = {jan}, number = {3/4}, numpages = {10}, pages = {225--234}, publisher = {Association for Computing Machinery}, title = {Open Source Computer Algebra Systems: SymPy}, volume = {45}, - year = {2012} + year = {2012}, } @inproceedings{Lamb01, author = {Lambert, Allan}, - booksubtitle = {Brno, Czech Republic, May 16-18}, - booktitle = {Proceedings of the {IWA} Specialised Conference 'System Approach to Leakage Control and Water Distribution Systems Management'}, - title = {What do we know about pressure-leakage relationships in distribution systems}, - year = {2001} + booktitle = {Proceedings of the {IWA} International Specialised Conference: System Approach to Leakage Control and Water Distribution Systems Management, May 16-18, 2001, Brno, Czech Republic}, + OPTeditor={Tuhov{\v{c}}{\'a}k, L.}, + isbn = {9788072041978}, + title = {What do we know about pressure-leakage relationships in distribution systems}, + year = {2001}, + pages = {89--96}, + publisher = {CERM}, } @article{LWFZ17, @@ -163,24 +164,30 @@ @article{LWFZ17 pages = {04017019}, title = {Failure Impact Analysis of Isolation Valves in a Water Distribution Network}, volume = {143}, - year = {2017} + year = {2017}, } @book{Mcki13, author = {McKinney, Wes}, publisher = {O'Reilly Media, Inc.}, - title = {Python for data analysis: Data wrangling with Pandas, NumPy, and IPython}, - year = {2012} + title = {Python for data analysis: Data wrangling with {Pandas}, {NumPy}, and {IPython}}, + year = {2012}, + address = {Sebastopal, CA}, + edition = {1}, + pagetotal = {463}, + isbn = {978-1449319793}, } @techreport{NIAC09, address = {Washington, D.C.}, - author = {NIAC}, - institution = {National Infrastructure Advisory Council (NIAC), U.S. Department of Homeland Security}, + author = {National Infrastructure Advisory Council, (NIAC)}, + institution = {U.S. Department of Homeland Security}, title = {Critical Infrastructure Resilience, Final Report and Recommendations}, - url = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, - urldate = {2014-09-20}, - year = {2009} + OPTurl = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, + OPTurldate = {2014-09-20}, + year = {2009}, + url = {https://www.cisa.gov/resources-tools/resources/niac-critical-infrastructure-resilience-final-report-and-recommendations}, + urldate = {2023-11-14}, } @article{OsKS02, @@ -188,7 +195,6 @@ @article{OsKS02 doi = {10.1016/S1462-0758(01)00055-3}, issn = {1462-0758}, journal = {Urban Water}, - keywords = {Analysis, EPANET, Multiquality, Networks, Reliability, Software, Water distribution systems}, number = {1}, pages = {53--61}, title = {Reliability simulation of water distribution systems - single and multiquality}, @@ -198,11 +204,13 @@ @article{OsKS02 @techreport{Ross00, address = {Cincinnati, OH}, - author = {Rossman, Lew}, + author = {Rossman, L. A.}, institution = {U.S. Environmental Protection Agency}, number = {EPA/600/R--00/057}, title = {{EPANET} 2 User Manual}, - year = {2000}} + year = {2000}, + pagetotal = {200}, +} @misc{rtree, author = {Toblerity}, @@ -216,10 +224,11 @@ @misc{rtree @techreport{RWTS20, author = {Rossman, L. and Woo, H. and Tryby M. and Shang, F. and Janke, R. and and Haxton, T.}, institution = {U.S. Environmental Protection Agency}, - location = {Washington, DC}, + address = {Washington, DC}, number = {EPA/600/R-20/133}, title = {{EPANET} 2.2 User Manual}, - year = {2020}} + year = {2020}, +} @article{MarEtAl14, author = {Angela Marchi and others}, @@ -239,23 +248,29 @@ @inproceedings{SOKZ12 publisher = {American Society of Civil Engineers}, title = {The battle of the water networks {II} - Problem description}, urldate = {2017-05-23}, - year = {2012} + year = {2012}, + crossref = {MarEtAl14}, } @misc{SPHC16, author = {Sievert, C. and Parmer, C. and Hocking, T. and Chamberlain, S. and Ram, K. and Corvellec, M. and Despouy, P.}, howpublished = {Software}, - title = {plotly: Create interactive web graphics via Plotly's {JavaScript} graphing library}, - year = {2016} + title = {plotly: Create interactive web graphics via {Plotly}'s {JavaScript} graphing library}, + year = {2016}, + url = {https://plot.ly}, + publisher = {Plotly Technologies Inc.}, + address = {Montreal, QC}, + OPTcomment = {modified from below preferred citation, per Plotly} } +@misc{plotly, author = {Plotly Technologies Inc.}, title = {Collaborative data science}, publisher = {Plotly Technologies Inc.}, address = {Montreal, QC}, year = {2015}, url = {https://plot.ly} } + @article{Todi00, author = {Ezio Todini}, doi = {10.1016/S1462-0758(00)00049-2}, issn = {1462-0758}, journal = {Urban Water}, - keywords = {Water distribution, Looped networks, Resilience, Reliability, Multi-objective, Optimisation, Heuristic}, - note = {Developments in water distribution systems}, + OPTnote = {Developments in water distribution systems}, number = {2}, pages = {115--122}, title = {Looped water distribution networks design using a resilience index based heuristic approach}, @@ -265,7 +280,7 @@ @article{Todi00 @techreport{USEPA14, address = {Washington DC}, - author = {USEPA}, + author = {U.S. Environmental Protection Agency, (U.S. EPA)}, institution = {U.S. Environmental Protection Agency}, number = {EPA 600/R--14/383}, pagetotal = {58}, @@ -275,18 +290,18 @@ @techreport{USEPA14 @techreport{USEPA15, address = {Washington DC}, - author = {USEPA}, + author = {U.S. Environmental Protection Agency, (U.S. EPA)}, institution = {U.S. Environmental Protection Agency}, number = {EPA/600/R--14/338}, pagetotal = {187}, - title = {Water Security Toolkit User Manual}, + title = {{Water} {Security} {Toolkit} User Manual}, year = {2015} } @article{VaCV11, author = {van der Walt, Stefan and Colbert, S. Chris and Varoquaux, Gael}, doi = {10.1109/MCSE.2011.37}, - journal = {Computing in Science \& Engineering}, + journal = {Computing in Science and Engineering}, number = {2}, pages = {22--30}, title = {The {NumPy} Array: A Structure for Efficient Numerical Computation}, @@ -307,11 +322,14 @@ @article{WaSM88 @inproceedings{WaWC06, author = {Thomas M. Walski and Justin Sterling Weiler and Teresa Culver}, - booktitle = {Water Distribution Systems Analysis Symposium 2006}, + booktitle = {Proceedings of the Eighth Annual Water Distribution Systems Analysis ({WDSA}) Symposium, August 27-30, 2006, Cincinnati, OH}, + OPTeditor = {Steven G. Buchberger and Robert M. Clark and Walter M. Grayman and James G. Uber}, + publisher = {American Society of Civil Engineers}, doi = {10.1061/40941(247)31}, + isbn = {9780784409411}, pages = {1--9}, title = {Using Criticality Analysis to Identify Impact of Valve Location}, - year = {2006} + year = {2008} } @techreport{WWQP06, @@ -327,10 +345,8 @@ @book{WCSG03 address = {Waterbury, CT}, author = {Walski, T.M. and Chase, D.V. and Savic, D.A. and Grayman, W. and Beckwith, S.}, isbn = {978-0971414129}, - number = {18}, - pagetotal = {693}, + pagetotal = {800}, publisher = {Haestad Press}, - series = {Civil and Environmental Engineering and Engineering Mechanics Faculty Publications}, title = {Advanced Water Distribution Modeling and Management}, year = {2003} } From e5505fe11d2c86950f2a142335c913d5e5247555 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 13:29:38 -0700 Subject: [PATCH 14/29] Still trying to get the output of bibliography right --- documentation/index.rst | 1 - documentation/reference.rst | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/documentation/index.rst b/documentation/index.rst index f3f63283b..94626d32a 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -8,7 +8,6 @@ Water Network Tool for Resilience (WNTR) The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package designed to simulate and analyze resilience of water distribution networks. -.. rubric:: Contents .. toctree:: :maxdepth: 1 diff --git a/documentation/reference.rst b/documentation/reference.rst index a9eada2d9..36c733476 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -2,8 +2,16 @@ \clearpage + References -==================== +========== + +.. raw:: latex + + \begingroup + \def\section#1#2{} + \def\chapter#1#2{} + \begin{thebibliography}{1234} .. [ALA01] American Lifelines Alliance. (2001). Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance, ASCE (Ed.) Reston, VA: American Society of Civil Engineers. April 2001. @@ -103,11 +111,12 @@ References .. bibliography:: - :cited: +.. raw:: latex + + \end{thebibliography} + \endgroup -Data file ---------- These `references `_ are also available in BibTeX format in the source code repository. From ad7d96e8ca1c0a92568b05bb17515f663017ce0c Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 13:30:44 -0700 Subject: [PATCH 15/29] Still trying to get the output of bibliography right --- documentation/reference.rst | 4 ---- 1 file changed, 4 deletions(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index 36c733476..0baed4a55 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -116,7 +116,3 @@ References \end{thebibliography} \endgroup - - -These `references `_ -are also available in BibTeX format in the source code repository. From cb99b4f2a260dc15db7253a09cba679ab0ee4b99 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 13:42:25 -0700 Subject: [PATCH 16/29] Fix logo link and try to fix the bibliography div --- README.md | 2 +- documentation/index.rst | 2 +- documentation/reference.rst | 4 ++++ documentation/userguide.rst | 2 +- documentation/wntr-api.rst | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e89bd6905..7a92e9c6c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- +


[![build](https://github.com/USEPA/WNTR/workflows/build/badge.svg)](https://github.com/USEPA/WNTR/actions/workflows/build_tests.yml) diff --git a/documentation/index.rst b/documentation/index.rst index 94626d32a..bb33720f1 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -1,4 +1,4 @@ -.. figure:: figures/logo.jpg +.. figure:: _static/logo.jpg :scale: 10 % :alt: Logo diff --git a/documentation/reference.rst b/documentation/reference.rst index 0baed4a55..217c80e78 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -116,3 +116,7 @@ References \end{thebibliography} \endgroup + +.. raw:: html + +
\ No newline at end of file diff --git a/documentation/userguide.rst b/documentation/userguide.rst index 40dcd6d25..e1b6e85cc 100644 --- a/documentation/userguide.rst +++ b/documentation/userguide.rst @@ -1,4 +1,4 @@ -.. figure:: figures/logo.jpg +.. figure:: _static/logo.jpg :scale: 10 % :alt: Logo diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst index b5084a508..84f0fbd57 100644 --- a/documentation/wntr-api.rst +++ b/documentation/wntr-api.rst @@ -17,8 +17,8 @@ API documentation :template: autosummary/module.rst wntr.epanet - wntr.graphics wntr.gis + wntr.graphics wntr.metrics wntr.morph wntr.network From c6cb5e508443b38963bc0df412e9f8d3100ffa18 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 13:52:11 -0700 Subject: [PATCH 17/29] Updates to docstrings to remove duplicate contents --- documentation/figures/logo.jpg | Bin 298722 -> 0 bytes wntr/epanet/__init__.py | 3 +-- wntr/metrics/economic.py | 12 ------------ wntr/metrics/hydraulic.py | 13 ------------- wntr/metrics/misc.py | 9 --------- wntr/metrics/topographic.py | 14 -------------- wntr/metrics/water_security.py | 9 --------- wntr/network/base.py | 16 ---------------- wntr/network/controls.py | 22 ---------------------- wntr/network/elements.py | 25 ------------------------- wntr/network/io.py | 19 ------------------- wntr/network/layer.py | 6 ------ wntr/network/model.py | 12 ------------ wntr/network/options.py | 16 ---------------- wntr/sim/core.py | 3 +++ wntr/sim/epanet.py | 3 +++ wntr/sim/hydraulics.py | 2 ++ wntr/sim/results.py | 2 ++ wntr/sim/solvers.py | 2 ++ 19 files changed, 13 insertions(+), 175 deletions(-) delete mode 100644 documentation/figures/logo.jpg diff --git a/documentation/figures/logo.jpg b/documentation/figures/logo.jpg deleted file mode 100644 index cd589502237bfeacae856ac0424223e598562502..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 298722 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

4JLXOmVjv;?XPvdFBT1Dl9 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�H-Ka_V>#g4_@CjBXR$WZkJ# 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

From 7da5e0b22bbf0bcc819ffc19a5d4841180cc4db7 Mon Sep 17 00:00:00 2001 From: dbhart Date: Tue, 14 Nov 2023 14:01:58 -0700 Subject: [PATCH 19/29] Last time --- documentation/reference.rst | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index 7ac45228a..c37b8c934 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -109,6 +109,9 @@ References .. [WCSG03] Walski, T.M., Chase, D.V., Savic, D.A., Grayman, W., Beckwith, S. (2003). Advanced Water Distribution Modeling and Management. HAESTAD Press, Waterbury, CT, 800. +.. raw:: html + +
.. bibliography:: @@ -116,7 +119,3 @@ References \end{thebibliography} \endgroup - -.. raw:: html - -
From c59cf7823a9ec7b97488200ae0036f585fb3e7be Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 11:41:09 -0700 Subject: [PATCH 20/29] Changing to bibtex for user citations --- documentation/citations.bib | 410 +++++++++++++++++++++ documentation/conf.py | 4 +- documentation/references.bib | 681 +++++++++++++++++------------------ documentation/users.rst | 81 +++-- 4 files changed, 788 insertions(+), 388 deletions(-) create mode 100644 documentation/citations.bib diff --git a/documentation/citations.bib b/documentation/citations.bib new file mode 100644 index 000000000..6e5b3eef6 --- /dev/null +++ b/documentation/citations.bib @@ -0,0 +1,410 @@ +@article{abdelmottaleb2019, + author = "Abdel-Mottaleb, N. and Ghasemi Saghand, P. and Charkhgard, H. and Zhang, Q.", + title = "An Exact Multiobjective Optimization Approach for Evaluating Water Distribution Infrastructure Criticality and Geospatial Interdependence", + journal = "Water Resources Research", + volume = "55", + number = "7", + pages = "5255--5276", + keywords = "interdependency, critical infrastructure, water distribution resilience, criticality analysis, transportation networks, decision making", + doi = "10.1029/2018WR024063", + year = "2019" +} + +@inproceedings{antonowicz2019, + author = "Antonowicz, Ariel and Bałut, Alicja and Urbaniak, Andrzej and Zakrzewski, Przemysław", + booktitle = "2019 20th International Carpathian Control Conference (ICCC)", + title = "Algorithm for Early Warning System for Contamination in Water Network", + year = "2019", + pages = "1--5", + doi = "10.1109/CarpathianCC.2019.8765966" +} + +@article{antonowicz2022, + author = "Antonowicz, Ariel and Urbaniak, Andrzej", + volume = "70", + number = "4", + journal = "Bulletin of the Polish Academy of Sciences: Technical Sciences", + pages = "e141594", + howpublished = "online", + year = "2022", + title = "Optimization of the process of restoring the continuity of the WDS based on the matrix and genetic algorithm approach", + doi = "10.24425/bpasts.2022.141594", + keywords = "WNTR, aggregation of failures, water distribution system, EPANET Solver, graph searching algorithm, genetic algorithm, optimization, post-disaster events" +} + +@mastersthesis{bjerke2019, + author = "Bjerke, Martin", + school = "Norwegian University of Science and Technology (NTNU)", + title = "Leak Detection in Water Distribution Networks using Gated Recurrent Neural Networks", + year = "2019", + url = "http://hdl.handle.net/11250/2625834" +} + +@mastersthesis{bunn2018, + author = "Bunn, Brendan B.", + school = "Naval Postgraduate School", + title = "An operational model of interdependent water and power distribution infrastructure systems", + year = "2018", + address = "Monterey, CA", + url = "https://apps.dtic.mil/sti/citations/AD1065269" +} + +@article{fan2021, + author = "Fan, Xudong and Zhang, Xijin and Yu, Xiong (Bill)", + title = "Machine learning model and strategy for fast and accurate detection of leaks in water supply network", + journal = "Journal of Infrastructure Preservation and Resilience", + year = "2021", + month = "Apr", + day = "15", + volume = "2", + number = "1", + pages = "10", + issn = "2662--2521", + doi = "10.1186/s43065-021-00021-6" +} + +@inproceedings{han2018, + author = "Han, Qing and Eguchi, Ronald and Mehrotra, Sharad and Venkatasubramanian, Nalini", + booktitle = "2018 IEEE 37th Symposium on Reliable Distributed Systems (SRDS)", + title = "Enabling State Estimation for Fault Identification in Water Distribution Systems Under Large Disasters", + year = "2018", + pages = "161-170", + doi = "10.1109/SRDS.2018.00027" +} + +@inproceedings{han2019, + author = "Han, Qing and Mehrotra, Sharad and Venkatasubramanian, Nalini", + title = "AquaEIS: Middleware Support for Event Identification in Community Water Infrastructures", + year = "2019", + isbn = "9781450370097", + publisher = "Association for Computing Machinery", + address = "New York, NY, USA", + doi = "10.1145/3361525.3361554", + booktitle = "Proceedings of the 20th International Middleware Conference (Middleware '19)", + pages = "293--305", + numpages = "13", + keywords = "Human Engagement, In-situ Sensing, Event Processing, Complex System, Event Identification", + location = "Davis, CA, USA", +} + +@article{huang2022, + author = "Huang, Honglan and Burton, Henry V.", + title = "Dynamic seismic damage assessment of distributed infrastructure systems using graph neural networks and semi-supervised machine learning", + journal = "Advances in Engineering Software", + volume = "168", + pages = "103113", + year = "2022", + issn = "0965--9978", + doi = "10.1016/j.advengsoft.2022.103113", + keywords = "Graph neural network, Seismic risk assessment, Distributed infrastructure systems, Water distribution system, Damage assessment" +} + +@article{iannacone2022, + author = "Iannacone, Leandro and Sharma, Neetesh and Tabandeh, Armin and Gardoni, Paolo", + title = "Modeling Time-varying Reliability and Resilience of Deteriorating Infrastructure", + journal = "Reliability Engineering \& System Safety", + volume = "217", + pages = "108074", + year = "2022", + issn = "0951-8320", + doi = "10.1016/j.ress.2021.108074", + keywords = "Resilience, Recovery, Deterioration, Water Infrastructure, Physics-based models" +} + +@article{kammoun2022, + author = "Kammoun, Maryam and Kammoun, Amina and Abid, Mohamed", + title = "Experiments based comparative evaluations of machine learning techniques for leak detection in water distribution systems", + journal = "Water Supply", + volume = "22", + number = "1", + pages = "628--642", + year = "2022", + publisher = "IWA Publishing", + doi = "10.2166/ws.2021.248" +} + +@article{liu2022, + author = "Liu, Jun and Kang, Yinyin", + year = "2022", + month = "11", + pages = "100--109", + title = "Segment-based resilience response and intervention evaluation of water distribution systems", + volume = "71", + number = "1", + journal = "AQUA -- Water Infrastructure, Ecosystems and Society", + doi = "10.2166/aqua.2021.133" +} + +@article{liu2020, + author = "Liu, Yang and Barrows, Clayton and Macknick, Jordan and Mauter, Meagan", + title = "Optimization Framework to Assess the Demand Response Capacity of a Water Distribution System", + journal = "Journal of Water Resources Planning and Management", + volume = "146", + number = "8", + pages = "04020063", + year = "2020", + doi = "10.1061/(ASCE)WR.1943-5452.0001258" +} + +@article{logan2021, + author = "Logan, Kevin T. and Leštáková, Michaela and Thiessen, Nadja and Engels, Jens Ivo and Pelz, Peter F.", + title = "Water Distribution in a Socio-Technical System: Resilience Assessment for Critical Events Causing Demand Relocation", + journal = "Water", + volume = "13", + year = "2021", + number = "15", + pages = "2062", + issn = "2073-4441", + doi = "10.3390/w13152062" +} + +@article{lorenz2020, + author = "Lorenz, Imke-Sophie and Pelz, Peter F.", + title = "Optimal Resilience Enhancement of Water Distribution Systems", + journal = "Water", + volume = "12", + year = "2020", + number = "9", + pages = "2602", + issn = "2073-4441", + doi = "10.3390/w12092602" +} + +@article{marlim2022, + author = "Marlim, Malvin S. and Kang, Doosun", + title = "Contaminant Flushing in Water Distribution Networks Incorporating Customer Faucet Control", + journal = "Sustainability", + volume = "14", + year = "2022", + number = "4", + pages = "2249", + issn = "2071-1050", + doi = "10.3390/su14042249" +} + +@inproceedings{mazumder2019, + author = "Mazumder, Ram Krishna and Salman, Abdullahi and Li, Yue and Yu, Xiong", + year = "2019", + pages = "", + booktitle = "13th International Conference on Applications of Statistics and Probability in Civil Engineering, ICASP13, May 26-30, 2019, Seoul, South Korea", + title = "A Decision-making Framework for Water Distribution Systems using Fuzzy Inference and Centrality Analysis" +} + +@article{mazumder2022, + author = "Ram K. Mazumder and Abdullahi M. Salman and Li, Yue", + title = "Post-disaster sequential recovery planning for water distribution systems using topological and hydraulic metrics", + journal = "Structure and Infrastructure Engineering", + volume = "18", + number = "5", + pages = "728--743", + year = "2022", + publisher = "Taylor \\& Francis", + doi = "10.1080/15732479.2020.1864415" +} + +@inproceedings{mulrillo2021, + author = "Murillo, Andres and Taormina, Riccardo and Tippenhauer, Nils and Galelli, Stefano", + title = "Co-Simulating Physical Processes and Network Data for High-Fidelity Cyber-Security Experiments", + year = "2021", + isbn = "9781450390026", + publisher = "Association for Computing Machinery", + address = "New York, NY", + doi = "10.1145/3442144.3442147", + booktitle = "Sixth Annual Industrial Control System Security (ICSS) Workshop", + pages = "13--20", + numpages = "8", + location = "Austin, TX, USA", +} + +@article{nikolopoulos2020, + author = "Nikolopoulos, Dionysios and Moraitis, Georgios and Bouziotas, Dimitrios and Lykou, Archontia and Karavokiros, George and Makropoulos, Christos", + title = "Cyber-Physical Stress-Testing Platform for Water Distribution Networks", + journal = "Journal of Environmental Engineering", + volume = "146", + number = "7", + pages = "04020061", + year = "2020", + doi = "10.1061/(ASCE)EE.1943-7870.0001722" +} + +@article{nikolopoulos2021, + author = "Nikolopoulos, Dionysios and Ostfeld, Avi and Salomons, Elad and Makropoulos, Christos", + title = "Resilience Assessment of Water Quality Sensor Designs under Cyber-Physical Attacks", + journal = "Water", + volume = "13", + year = "2021", + number = "5", + pages = "647", + issn = "2073-4441", + doi = "10.3390/w13050647" +} + +@article{nikolopoulos2022a, + author = "Nikolopoulos, Dionysios and Kossieris, Panagiotis and Tsoukalas, Ioannis and Makropoulos, Christos", + title = "Stress-Testing Framework for Urban Water Systems: A Source to Tap Approach for Stochastic Resilience Assessment", + journal = "Water", + volume = "14", + year = "2022", + number = "2", + pages = "154", + issn = "2073-4441", + doi = "10.3390/w14020154" +} + +@article{nikolopoulos2020b, + author = "Nikolopoulos, Dionysios and Makropoulos, Christos", + title = "Stress-testing water distribution networks for cyber-physical attacks on water quality", + journal = "Urban Water Journal", + volume = "19", + number = "3", + pages = "256--270", + year = "2022", + publisher = "Taylor \\& Francis", + doi = "10.1080/1573062X.2021.1995446" +} + +@article{nyahora2020, + author = "Nyahora, Passwell Pepukai and Babel, Mukand Singh and Ferras, David and Emen, Andres", + title = "Multi-objective optimization for improving equity and reliability in intermittent water supply systems", + journal = "Water Supply", + volume = "20", + number = "5", + pages = "1592--1603", + year = "2020", + issn = "1606-9749", + doi = "10.2166/ws.2020.066" +} + +@article{pagani2021, + author = "Pagani, Alessio and Wei, Zhuangkun and Silva, Ricardo and Guo, Weisi", + title = "Neural Network Approximation of Graph Fourier Transform for Sparse Sampling of Networked Dynamics", + year = "2021", + issue_date = "February 2022", + publisher = "Association for Computing Machinery", + address = "New York, NY, USA", + volume = "22", + number = "1", + issn = "1533-5399", + doi = "10.1145/3461838", + journal = "ACM Trans. Internet Technol.", + articleno = "21", + numpages = "18", + keywords = "neural networks, graph fourier transform, Sampling theory", + eprint = "2002.05508" +} + +@article{rahimigolkhandan2022, + author = "Rahimi-Golkhandan, Armin and Aslani, Babak and Mohebbi, Shima", + title = "Predictive resilience of interdependent water and transportation infrastructures: A sociotechnical approach", + journal = "Socio-Economic Planning Sciences", + volume = "80", + pages = "101166", + year = "2022", + issn = "0038-0121", + doi = "10.1016/j.seps.2021.101166", + keywords = "Infrastructure systems, Interdependency, Social vulnerability, Predictive analytics, Natural disasters, Cascading random failure, Community detection" +} + +@article{randeniya2022, + author = "Randeniya, Aruna and Radhakrishnan, Mohanasundar and Sirisena, T. A. J. G. and Masih, Ilyas and Pathirana, Assela", + title = "Equity--performance trade-off in water rationing regimes with domestic storage", + journal = "Water Supply", + volume = "22", + number = "5", + pages = "4781-4797", + year = "2022", + issn = "1606-9749", + doi = "10.2166/ws.2022.188" +} + +@inproceedings{sharma2019, + author = "Sharma, Neetesh and Tabandeh, Armin and Gardoni, Paolo", + title = "Recovery optimization of interdependent infrastructure: A multi-scale approach", + year = "2019", + language = "English (US)", + booktitle = "13th International Conference on Applications of Statistics and Probability in Civil Engineering, ICASP13, Seoul, South Korea" +} + +@article{sharma2020, + author = "Sharma, Neetesh and Tabandeh, Armin and Gardoni, Paolo", + title = "Regional resilience analysis: A multiscale approach to optimize the resilience of interdependent infrastructure", + journal = "Computer-Aided Civil and Infrastructure Engineering", + volume = "35", + number = "12", + pages = "1315-1330", + doi = "10.1111/mice.12606", + year = "2020" +} + +@phdthesis{tabandeh2018, + author = "Tabandeh, Seyedarmin", + school = "University of Illinois at Urbana-Champaign", + title = "Societal risk and resilience analysis: A multi-scale approach to model the dynamics of infrastructure-social systems", + year = "2018" +} + +@article{tabandeh2022, + author = "Tabandeh, Armin and Sharma, Neetesh and Gardoni, Paolo", + title = "Uncertainty propagation in risk and resilience analysis of hierarchical systems", + journal = "Reliability Engineering \& System Safety", + volume = "219", + pages = "108208", + year = "2022", + issn = "0951-8320", + doi = "10.1016/j.ress.2021.108208", + keywords = "Sensitivity analysis, Uncertainty quantification, Hierarchical systems, Risk and resilience analysis, Infrastructure" +} + +@article{tomar2020, + author = "Tomar, Agam and Burton, Henry V. and Mosleh, Ali and Lee, Ji Yun", + title = "Hindcasting the Functional Loss and Restoration of the Napa Water System Following the 2014 Earthquake Using Discrete-Event Simulation", + journal = "Journal of Infrastructure Systems", + volume = "26", + number = "4", + pages = "04020035", + year = "2020", + doi = "10.1061/(ASCE)IS.1943-555X.0000574" +} + +@inproceedings{vrachimis2018a, + author = "Vrachimis, S.G. and Kyriakou, M.S. and Demetrios G. Eliades, and Marios M.Polycarpou", + booktitle = "1st International WDSA/CCWI Joint Conference Proceedings", + volume = "1", + number = "146", + title = "LeakDB: A benchmark dataset for leakage diagnosis in water distribution networks", + year = "2018", + url = "https://ojs.library.queensu.ca/index.php/wdsa-ccw/article/view/12315", +} + +@inproceedings{vrachimis2018b, + author = "Vrachimis, Stelios G. and Eliades, Demetrios G. and Polycarpou, Marios M.", + booktitle = "2018 IEEE Conference on Control Technology and Applications (CCTA)", + title = "Leak Detection in Water Distribution Systems Using Hydraulic Interval State Estimation", + year = "2018", + volume = "", + number = "", + pages = "565--570", + doi = "10.1109/CCTA.2018.8511516" +} + +@phdthesis{wille2019, + author = "Wille, Dominik", + school = "Naval Postgraduate School", + address = "Monterey, CA", + title = "Simulation-optimization for operational resilience of interdependent water-power systems in the {US} {Virgin} {Islands}", + year = "2019", + type = "Doctoral dissertation", + url = "https://hdl.handle.net/10945/64098", +} + +@article{xing2020, + author = "Xing, Lu and Sela, Lina", + title = "Transient simulations in water distribution networks: {TSNet} python package", + journal = "Advances in Engineering Software", + volume = "149", + pages = "102884", + year = "2020", + issn = "0965-9978", + doi = "10.1016/j.advengsoft.2020.102884", + keywords = "Transient simulation, Python, Open source software, Water distribution networks" +} diff --git a/documentation/conf.py b/documentation/conf.py index addd6a9df..d841b1b3a 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -31,7 +31,6 @@ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - # 'numpydoc', 'sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', @@ -70,7 +69,6 @@ # viewcode_import = False autodoc_default_options = { - # 'members': True, 'undoc-members': True, 'private-members': False, 'special-members': False, @@ -113,7 +111,7 @@ copyright = u'2023 National Technology & Engineering Solutions of Sandia, LLC (NTESS)' author = u'WNTR Developers' -bibtex_bibfiles = ['references.bib'] +bibtex_bibfiles = ['references.bib', 'citations.bib'] bibtex_default_style = 'plain' bibtex_reference_style = 'label' diff --git a/documentation/references.bib b/documentation/references.bib index 31bffadab..40f09982c 100644 --- a/documentation/references.bib +++ b/documentation/references.bib @@ -1,352 +1,337 @@ - -@book{ALA01, - address = {Reston, VA}, - author = {American Lifelines Alliance, (ALA)}, - editor = {ASCE}, - publisher = {American Society of Civil Engineers}, - title = {Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance}, - year = {2001}, -} - -@article{AwGB90, - author = {K. Awumah and I. Goulter and S. K. Bhatt}, - doi = {10.1007/BF01544084}, - journal = {Stochastic Hydrology and Hydraulics}, - pages = {309--320}, - publisher = {Springer}, - title = {Assessment of reliability in water distribution networks using entropy based measures}, - volume = {4}, - number = {4}, - year = {1990}, -} - -@article{BaRR13, - author = {Kash Barker and Jose Emmanuel Ramirez-Marquez and Claudio M. Rocco}, - doi = {10.1016/j.ress.2013.03.012}, - issn = {0951-8320}, - journal = {Reliability Engineering \& System Safety}, - pages = {89--97}, - title = {Resilience-based network component importance measures}, - volume = {117}, - year = {2013}, -} - -@misc{Bieni19, - author = {Bieniek, T. and van Andel, B. and B{\o}, T.I.}, - howpublished = {Software}, - title = {Bidirectional {UTM}-{WGS84} converter for python}, - url = {https://github.com/Turbo87/utm}, - urldate = {2019-02-05}, - year = {2019}, -} - -@book{CrLo02, - address = {Upper Saddle River, NJ}, - author = {Crowl, D.A. and Louvar, J.F.}, - edition = {3}, - isbn = {0-13-138226-8}, - pagetotal = {720}, - publisher = {Prentice Hall}, - title = {Chemical Process Safety: Fundamentals with Applications}, - year = {2011}, -} - -@techreport{ELLT12, - author = {Eto, Joseph H and LaCommare, Kristina Hamachi and Larsen, Peter and Todd, Annika and Fisher, Emily}, - doi = {10.2172/1055706}, - institution = {Lawrence Berkeley National Laboratory}, - number = {LBNL-5268E}, - pagetotal = {68}, - place = {Berkeley, CA}, - title = {An Examination of Temporal Trends in Electricity Reliability Based on Reports from {U.S.} Electric Utilities}, - year = {2012}, -} - -@misc{Folium, - author = {python-visualization}, - howpublished = {Software}, - title = {folium}, - url = {https://github.com/python-visualization/folium}, - urldate = {2019-02-05}, - year = {2019}, -} - -@misc{GaCl18, - author = {Gazoni, E. and Clark, C.}, - howpublished = {Software}, - title = {openpyxl - A Python library to read/write {Excel} 2010 xlsx/xlsm files}, - url = {https://openpyxl.readthedocs.io}, - urldate = {2018-05-04}, - year = {2018}, -} - -@inproceedings{HaSS08, - author = {Aric A. Hagberg and Daniel A. Schult and Pieter J. Swart}, - booktitle = {Proceedings of the 7th {Python} in Science Conference ({SciPy2008}), August 19-24, Pasadena, CA, USA}, - OPTeditor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, - pages = {11--15}, - title = {Exploring Network Structure, Dynamics, and Function using {NetworkX}}, - url = {https://www.osti.gov/biblio/960616}, - year = {2008}, -} - -@article{Hunt07, - author = {Hunter, John D. and others}, - doi = {10.1109/MCSE.2007.55}, - journal = {Computing in Science \& Engineering}, - number = {3}, - pages = {90--95}, - title = {Matplotlib: A {2D} Graphics Environment}, - volume = {9}, - year = {2007}, -} - -@book{ICC12, - address = {Country Club Hills, IL}, - author = {International Code Council, (ICC)}, - isbn = {978-1-60983-046-5}, - publisher = {International Code Council}, - title = {2012 International Fire Code, Appendix {B} - Fire-Flow Requirements for Buildings}, - year = {2011}, -} - -@article{JaSr08, - author = {Jayaram, Nirmal and Srinivasan, K.}, - doi = {10.1029/2006WR005316}, - journal = {Water Resources Research}, - number = {1}, - volume = {44}, - pages = {n.p.}, - title = {Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing}, - year = {2008}, -} - -@misc{JVFM21, - author = {Jordahl, K. and Van den Bossche, J. and Fleischmann, M. and McBride, J. and others}, - doi = {10.5281/zenodo.5573592}, - howpublished = {Software}, - title = {geopandas}, - year = {2021}, -} - -@article{JCMG11, - address = {New York, NY, USA}, - author = {Joyner, David and \v{C}ert\'{i}k, Ond\v{r}ej and Meurer, Aaron and Granger, Brian E.}, - doi = {10.1145/2110170.2110185}, - issn = {1932-2240}, - issue_date = {September/December 2011}, - journal = {{ACM} Communications in Computer Algebra}, - number = {3/4}, - numpages = {10}, - pages = {225--234}, - publisher = {Association for Computing Machinery}, - title = {Open Source Computer Algebra Systems: SymPy}, - volume = {45}, - year = {2012}, -} - -@inproceedings{Lamb01, - author = {Lambert, Allan}, - booktitle = {Proceedings of the {IWA} International Specialised Conference: System Approach to Leakage Control and Water Distribution Systems Management, May 16-18, 2001, Brno, Czech Republic}, - OPTeditor={Tuhov{\v{c}}{\'a}k, L.}, - isbn = {9788072041978}, - title = {What do we know about pressure-leakage relationships in distribution systems}, - year = {2001}, - pages = {89--96}, - publisher = {CERM}, -} - -@article{LWFZ17, - author = {Haixing Liu and Tom Walski and Guangtao Fu and Chi Zhang}, - doi = {10.1061/(ASCE)WR.1943-5452.0000766}, - journal = {Journal of Water Resources Planning and Management}, - number = {7}, - pages = {04017019}, - title = {Failure Impact Analysis of Isolation Valves in a Water Distribution Network}, - volume = {143}, - year = {2017}, -} - -@book{Mcki13, - author = {McKinney, Wes}, - publisher = {O'Reilly Media, Inc.}, - title = {Python for data analysis: Data wrangling with {Pandas}, {NumPy}, and {IPython}}, - year = {2012}, - address = {Sebastopal, CA}, - edition = {1}, - pagetotal = {463}, - isbn = {978-1449319793}, -} - -@techreport{NIAC09, - address = {Washington, D.C.}, - author = {National Infrastructure Advisory Council, (NIAC)}, - institution = {U.S. Department of Homeland Security}, - title = {Critical Infrastructure Resilience, Final Report and Recommendations}, - OPTurl = {http://www.dhs.gov/xlibrary/assets/niac/niac_critical_infrastructure_resilience.pdf}, - OPTurldate = {2014-09-20}, - year = {2009}, - url = {https://www.cisa.gov/resources-tools/resources/niac-critical-infrastructure-resilience-final-report-and-recommendations}, - urldate = {2023-11-14}, -} - -@article{OsKS02, - author = {Avi Ostfeld and Dimitri Kogan and Uri Shamir}, - doi = {10.1016/S1462-0758(01)00055-3}, - issn = {1462-0758}, - journal = {Urban Water}, - number = {1}, - pages = {53--61}, - title = {Reliability simulation of water distribution systems - single and multiquality}, - volume = {4}, - year = {2002} -} - -@techreport{Ross00, - address = {Cincinnati, OH}, - author = {Rossman, L. A.}, - institution = {U.S. Environmental Protection Agency}, - number = {EPA/600/R--00/057}, - title = {{EPANET} 2 User Manual}, - year = {2000}, - pagetotal = {200}, +@book{ala01, + author = "American Lifelines Alliance, (ALA)", + editor = "ASCE", + address = "Reston, VA", + publisher = "American Society of Civil Engineers", + title = "Seismic Fragility Formulations for Water Systems, Part 1 and 2. Report for the American Lifelines Alliance", + year = "2001" +} + +@article{awgb90, + author = "Awumah, K. and Goulter, I. and Bhatt, S. K.", + doi = "10.1007/BF01544084", + journal = "Stochastic Hydrology and Hydraulics", + pages = "309--320", + publisher = "Springer", + title = "Assessment of reliability in water distribution networks using entropy based measures", + volume = "4", + number = "4", + year = "1990" +} + +@article{barr13, + author = "Barker, Kash and Ramirez-Marquez, Jose Emmanuel and Rocco, Claudio M.", + doi = "10.1016/j.ress.2013.03.012", + issn = "0951-8320", + journal = "Reliability Engineering \\& System Safety", + pages = "89--97", + title = "Resilience-based network component importance measures", + volume = "117", + year = "2013" +} + +@misc{bieni19, + author = "Bieniek, T. and van Andel, B. and B{\o}, T.I.", + howpublished = "Software", + title = "Bidirectional {UTM}-{WGS84} converter for python", + url = "https://github.com/Turbo87/utm", + urldate = "2019-02-05", + year = "2019" +} + +@book{crlo02, + author = "Crowl, D.A. and Louvar, J.F.", + address = "Upper Saddle River, NJ", + edition = "3", + isbn = "0-13-138226-8", + pagetotal = "720", + publisher = "Prentice Hall", + title = "Chemical Process Safety: Fundamentals with Applications", + year = "2011" +} + +@techreport{ellt12, + author = "Eto, Joseph H and LaCommare, Kristina Hamachi and Larsen, Peter and Todd, Annika and Fisher, Emily", + doi = "10.2172/1055706", + institution = "Lawrence Berkeley National Laboratory", + number = "LBNL-5268E", + pagetotal = "68", + place = "Berkeley, CA", + title = "An Examination of Temporal Trends in Electricity Reliability Based on Reports from {U.S.} Electric Utilities", + year = "2012" +} + +@misc{folium, + author = "python-visualization", + howpublished = "Software", + title = "folium", + url = "https://github.com/python-visualization/folium", + urldate = "2019-02-05", + year = "2019" +} + +@misc{gacl18, + author = "Gazoni, E. and Clark, C.", + howpublished = "Software", + title = "openpyxl - A Python library to read/write {Excel} 2010 xlsx/xlsm files", + url = "https://openpyxl.readthedocs.io", + urldate = "2018-05-04", + year = "2018" +} + +@inproceedings{hass08, + author = "Hagberg, Aric A. and Schult, Daniel A. and Swart, Pieter J.", + booktitle = "Proceedings of the 7th {Python} in Science Conference ({SciPy2008}), August 19-24, Pasadena, CA, USA", + opteditor = {Ga\"el Varoquaux and Travis Vaught and Jarrod Millman}, + pages = "11--15", + title = "Exploring Network Structure, Dynamics, and Function using {NetworkX}", + url = "https://www.osti.gov/biblio/960616", + year = "2008" +} + +@article{hunt07, + author = "Hunter, John D. and others", + doi = "10.1109/MCSE.2007.55", + journal = "Computing in Science \\& Engineering", + number = "3", + pages = "90--95", + title = "Matplotlib: A {2D} Graphics Environment", + volume = "9", + year = "2007" +} + +@book{icc12, + author = "International Code Council, (ICC)", + address = "Country Club Hills, IL", + isbn = "978-1-60983-046-5", + publisher = "International Code Council", + title = "2012 International Fire Code, Appendix {B} - Fire-Flow Requirements for Buildings", + year = "2011" +} + +@article{jasr08, + author = "Jayaram, Nirmal and Srinivasan, K.", + doi = "10.1029/2006WR005316", + journal = "Water Resources Research", + number = "1", + volume = "44", + pages = "n.p.", + title = "Performance-based optimal design and rehabilitation of water distribution networks using life cycle costing", + year = "2008" +} + +@misc{jvfm21, + author = "Jordahl, K. and Van den Bossche, J. and Fleischmann, M. and McBride, J. and others", + doi = "10.5281/zenodo.5573592", + howpublished = "Software", + title = "geopandas", + year = "2021" +} + +@article{jcmg11, + author = "Joyner, David and \v{C}ert\'{i}k, Ond\v{r}ej and Meurer, Aaron and Granger, Brian E.", + address = "New York, NY, USA", + doi = "10.1145/2110170.2110185", + issn = "1932-2240", + issue_date = "September/December 2011", + journal = "{ACM} Communications in Computer Algebra", + number = "3/4", + numpages = "10", + pages = "225--234", + publisher = "Association for Computing Machinery", + title = "Open Source Computer Algebra Systems: SymPy", + volume = "45", + year = "2012" +} + +@inproceedings{lamb01, + author = "Lambert, Allan", + booktitle = "Proceedings of the {IWA} International Specialised Conference: System Approach to Leakage Control and Water Distribution Systems Management, May 16-18, 2001, Brno, Czech Republic", + opteditor = "Tuhov{\v{c}}{\'a}k, L.", + isbn = "9788072041978", + title = "What do we know about pressure-leakage relationships in distribution systems", + year = "2001", + pages = "89--96", + publisher = "CERM" +} + +@article{lwfz17, + author = "Liu, Haixing and Walski, Tom and Fu, Guangtao and Zhang, Chi", + doi = "10.1061/(ASCE)WR.1943-5452.0000766", + journal = "Journal of Water Resources Planning and Management", + number = "7", + pages = "04017019", + title = "Failure Impact Analysis of Isolation Valves in a Water Distribution Network", + volume = "143", + year = "2017" +} + +@book{mcki13, + author = "McKinney, Wes", + publisher = "O'Reilly Media, Inc.", + title = "Python for data analysis: Data wrangling with {Pandas}, {NumPy}, and {IPython}", + year = "2012", + address = "Sebastopal, CA", + edition = "1", + pagetotal = "463", + isbn = "978-1449319793" +} + +@techreport{niac09, + author = "National Infrastructure Advisory Council, (NIAC)", + address = "Washington, D.C.", + institution = "U.S. Department of Homeland Security", + title = "Critical Infrastructure Resilience, Final Report and Recommendations", + opturl = "http://www.dhs.gov/xlibrary/assets/niac/niac\_critical\_infrastructure\_resilience.pdf", + opturldate = "2014-09-20", + year = "2009", + url = "https://www.cisa.gov/resources-tools/resources/niac-critical-infrastructure-resilience-final-report-and-recommendations", + urldate = "2023-11-14" +} + +@article{osks02, + author = "Ostfeld, Avi and Kogan, Dimitri and Shamir, Uri", + doi = "10.1016/S1462-0758(01)00055-3", + issn = "1462-0758", + journal = "Urban Water", + number = "1", + pages = "53--61", + title = "Reliability simulation of water distribution systems - single and multiquality", + volume = "4", + year = "2002" +} + +@techreport{ross00, + author = "Rossman, L. A.", + address = "Cincinnati, OH", + institution = "U.S. Environmental Protection Agency", + number = "EPA/600/R--00/057", + title = "{EPANET} 2 User Manual", + year = "2000", + pagetotal = "200" } @misc{rtree, - author = {Toblerity}, - howpublished = {Software}, - title = {rtree}, - url = {https://github.com/Toblerity/rtree}, - urldate = {2022-03-17}, - year = {2022} -} - -@techreport{RWTS20, - author = {Rossman, L. and Woo, H. and Tryby M. and Shang, F. and Janke, R. and and Haxton, T.}, - institution = {U.S. Environmental Protection Agency}, - address = {Washington, DC}, - number = {EPA/600/R-20/133}, - title = {{EPANET} 2.2 User Manual}, - year = {2020}, -} - -@article{MarEtAl14, - author = {Angela Marchi and others}, - doi = {10.1061/(ASCE)WR.1943-5452.0000378}, - journal = {Journal of Water Resources Planning and Management}, - number = {7}, - pages = {04014009}, - title = {Battle of the Water Networks {II}}, - volume = {140}, - year = {2014} -} - -@inproceedings{SOKZ12, - author = {Salomons, E. and Ostfeld, A. and Kapelan, Z. and Zecchin, A. and Marchi, A. and Simpson, A.}, - booktitle = {Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia}, - url = {https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf}, - publisher = {American Society of Civil Engineers}, - title = {The battle of the water networks {II} - Problem description}, - urldate = {2017-05-23}, - year = {2012}, - crossref = {MarEtAl14}, -} - -@misc{SPHC16, - author = {Sievert, C. and Parmer, C. and Hocking, T. and Chamberlain, S. and Ram, K. and Corvellec, M. and Despouy, P.}, - howpublished = {Software}, - title = {plotly: Create interactive web graphics via {Plotly}'s {JavaScript} graphing library}, - year = {2016}, - url = {https://plot.ly}, - publisher = {Plotly Technologies Inc.}, - address = {Montreal, QC}, - OPTcomment = {modified from below preferred citation, per Plotly} -} - -@misc{plotly, author = {Plotly Technologies Inc.}, title = {Collaborative data science}, publisher = {Plotly Technologies Inc.}, address = {Montreal, QC}, year = {2015}, url = {https://plot.ly} } - -@article{Todi00, - author = {Ezio Todini}, - doi = {10.1016/S1462-0758(00)00049-2}, - issn = {1462-0758}, - journal = {Urban Water}, - OPTnote = {Developments in water distribution systems}, - number = {2}, - pages = {115--122}, - title = {Looped water distribution networks design using a resilience index based heuristic approach}, - volume = {2}, - year = {2000} -} - -@techreport{USEPA14, - address = {Washington DC}, - author = {U.S. Environmental Protection Agency, (U.S. EPA)}, - institution = {U.S. Environmental Protection Agency}, - number = {EPA 600/R--14/383}, - pagetotal = {58}, - title = {Systems Measures of Water Distribution System Resilience}, - year = {2014} -} - -@techreport{USEPA15, - address = {Washington DC}, - author = {U.S. Environmental Protection Agency, (U.S. EPA)}, - institution = {U.S. Environmental Protection Agency}, - number = {EPA/600/R--14/338}, - pagetotal = {187}, - title = {{Water} {Security} {Toolkit} User Manual}, - year = {2015} -} - -@article{VaCV11, - author = {van der Walt, Stefan and Colbert, S. Chris and Varoquaux, Gael}, - doi = {10.1109/MCSE.2011.37}, - journal = {Computing in Science and Engineering}, - number = {2}, - pages = {22--30}, - title = {The {NumPy} Array: A Structure for Efficient Numerical Computation}, - volume = {13}, - year = {2011} -} - -@article{WaSM88, - author = {Janet M. Wagner and Uri Shamir and David H. Marks}, - doi = {10.1061/(ASCE)0733-9496(1988)114:3(276)}, - journal = {Journal of Water Resources Planning and Management}, - number = {3}, - pages = {276--294}, - title = {Water Distribution Reliability: Simulation Methods}, - volume = {114}, - year = {1988} -} - -@inproceedings{WaWC06, - author = {Thomas M. Walski and Justin Sterling Weiler and Teresa Culver}, - booktitle = {Proceedings of the Eighth Annual Water Distribution Systems Analysis ({WDSA}) Symposium, August 27-30, 2006, Cincinnati, OH}, - OPTeditor = {Steven G. Buchberger and Robert M. Clark and Walter M. Grayman and James G. Uber}, - publisher = {American Society of Civil Engineers}, - doi = {10.1061/40941(247)31}, - isbn = {9780784409411}, - pages = {1--9}, - title = {Using Criticality Analysis to Identify Impact of Valve Location}, - year = {2008} -} - -@techreport{WWQP06, - author = {Wald, D.J. and Worden, B.C. and Quitoriano, V. and Pankow, K.L.}, - institution = {United States Geologic Survey}, - title = {{ShakeMap} manual: Technical manual, user's guide, and software guide}, - url = {http://pubs.usgs.gov/tm/2005/12A01/}, - urldate = {2017-04-25}, - year = {2006} -} - -@book{WCSG03, - address = {Waterbury, CT}, - author = {Walski, T.M. and Chase, D.V. and Savic, D.A. and Grayman, W. and Beckwith, S.}, - isbn = {978-0971414129}, - pagetotal = {800}, - publisher = {Haestad Press}, - title = {Advanced Water Distribution Modeling and Management}, - year = {2003} + author = "Toblerity", + howpublished = "Software", + title = "rtree", + url = "https://github.com/Toblerity/rtree", + urldate = "2022-03-17", + year = "2022" +} + +@techreport{rwts20, + author = "Rossman, L. and Woo, H. and M., Tryby and Shang, F. and Janke, R. and and Haxton, T.", + institution = "U.S. Environmental Protection Agency", + address = "Washington, DC", + number = "EPA/600/R-20/133", + title = "{EPANET} 2.2 User Manual", + year = "2020" +} + +@inproceedings{sokz12, + author = "Salomons, E. and Ostfeld, A. and Kapelan, Z. and Zecchin, A. and Marchi, A. and Simpson, A.", + booktitle = "Water Distribution Systems Analysis Conference 2012, September 24-27, Adelaide, South Australia, Australia", + url = "https://emps.exeter.ac.uk/media/universityofexeter/emps/research/cws/downloads/WDSA2012-BWNII-ProblemDescription.pdf", + publisher = "American Society of Civil Engineers", + title = "The battle of the water networks {II} - Problem description", + urldate = "2017-05-23", + year = "2012" +} + +@misc{sphc16, + author = "Sievert, C. and Parmer, C. and Hocking, T. and Chamberlain, S. and Ram, K. and Corvellec, M. and Despouy, P.", + howpublished = "Software", + title = "plotly: Create interactive web graphics via {Plotly}'s {JavaScript} graphing library", + year = "2016", + url = "https://plot.ly", + publisher = "Plotly Technologies Inc.", + address = "Montreal, QC", + optcomment = "modified from below preferred citation, per Plotly" +} + +@article{todi00, + author = "Todini, Ezio", + doi = "10.1016/S1462-0758(00)00049-2", + issn = "1462-0758", + journal = "Urban Water", + optnote = "Developments in water distribution systems", + number = "2", + pages = "115--122", + title = "Looped water distribution networks design using a resilience index based heuristic approach", + volume = "2", + year = "2000" +} + +@techreport{usepa14, + author = "U.S. Environmental Protection Agency, (U.S. EPA)", + address = "Washington DC", + institution = "U.S. Environmental Protection Agency", + number = "EPA 600/R--14/383", + pagetotal = "58", + title = "Systems Measures of Water Distribution System Resilience", + year = "2014" +} + +@techreport{usepa15, + author = "U.S. Environmental Protection Agency, (U.S. EPA)", + address = "Washington DC", + institution = "U.S. Environmental Protection Agency", + number = "EPA/600/R--14/338", + pagetotal = "187", + title = "{Water} {Security} {Toolkit} User Manual", + year = "2015" +} + +@article{vacv11, + author = "van der Walt, Stefan and Colbert, S. Chris and Varoquaux, Gael", + doi = "10.1109/MCSE.2011.37", + journal = "Computing in Science and Engineering", + number = "2", + pages = "22--30", + title = "The {NumPy} Array: A Structure for Efficient Numerical Computation", + volume = "13", + year = "2011" +} + +@article{wasm88, + author = "Wagner, Janet M. and Shamir, Uri and Marks, David H.", + doi = "10.1061/(ASCE)0733-9496(1988)114:3(276)", + journal = "Journal of Water Resources Planning and Management", + number = "3", + pages = "276--294", + title = "Water Distribution Reliability: Simulation Methods", + volume = "114", + year = "1988" +} + +@inproceedings{wawc06, + author = "Walski, Thomas M. and Weiler, Justin Sterling and Culver, Teresa", + booktitle = "Proceedings of the Eighth Annual Water Distribution Systems Analysis ({WDSA}) Symposium, August 27-30, 2006, Cincinnati, OH", + opteditor = "Steven G. Buchberger and Robert M. Clark and Walter M. Grayman and James G. Uber", + publisher = "American Society of Civil Engineers", + doi = "10.1061/40941(247)31", + isbn = "9780784409411", + pages = "1--9", + title = "Using Criticality Analysis to Identify Impact of Valve Location", + year = "2008" +} + +@techreport{wwqp06, + author = "Wald, D.J. and Worden, B.C. and Quitoriano, V. and Pankow, K.L.", + institution = "United States Geologic Survey", + title = "{ShakeMap} manual: Technical manual, user's guide, and software guide", + url = "http://pubs.usgs.gov/tm/2005/12A01/", + urldate = "2017-04-25", + year = "2006" +} + +@book{wcsg03, + author = "Walski, T.M. and Chase, D.V. and Savic, D.A. and Grayman, W. and Beckwith, S.", + address = "Waterbury, CT", + isbn = "978-0971414129", + pagetotal = "800", + publisher = "Haestad Press", + title = "Advanced Water Distribution Modeling and Management", + year = "2003" } diff --git a/documentation/users.rst b/documentation/users.rst index 2d1c5e9c5..0fa282b46 100644 --- a/documentation/users.rst +++ b/documentation/users.rst @@ -36,76 +36,83 @@ Related software * VisWaterNet: https://github.com/tylertrimble/viswaternet Publications ------------------ +------------ + +.. + - Abdel-Mottaleb, N., Ghasemi Saghand, P., Charkhgard, H., & Zhang, Q. (2019). An exact multiobjective optimization approach for evaluating water distribution infrastructure criticality and geospatial interdependence. Water Resources Research, 55(7), 5255-5276. + + - Antonowicz, A., Bałut, A., Urbaniak, A., & Zakrzewski, P. (2019). Algorithm for Early Warning System for Contamination in Water Network. In 2019 20th International Carpathian Control Conference (ICCC) (pp. 1-5). IEEE. + + - Antonowicz, A., & Urbaniak, A. (2022). Optimization of the process of restoring the continuity of the WDS based on the matrix and genetic algorithm approach. Bulletin of the Polish Academy of Sciences: Technical Sciences, e141594-e141594. -* Abdel-Mottaleb, N., Ghasemi Saghand, P., Charkhgard, H., & Zhang, Q. (2019). An exact multiobjective optimization approach for evaluating water distribution infrastructure criticality and geospatial interdependence. Water Resources Research, 55(7), 5255-5276. + - Bjerke, M. (2019). Leak Detection in Water Distribution Networks using Gated Recurrent Neural Networks, Master's thesis, Norwegian University of Science and Technology (NTNU). -* Antonowicz, A., Bałut, A., Urbaniak, A., & Zakrzewski, P. (2019). Algorithm for Early Warning System for Contamination in Water Network. In 2019 20th International Carpathian Control Conference (ICCC) (pp. 1-5). IEEE. + - Bunn, B. B. (2018). An operational model of interdependent water and power distribution infrastructure systems. Naval Postgraduate School, Monterey, CA. -* Antonowicz, A., & Urbaniak, A. (2022). Optimization of the process of restoring the continuity of the WDS based on the matrix and genetic algorithm approach. Bulletin of the Polish Academy of Sciences: Technical Sciences, e141594-e141594. + - Fan, X., Zhang, X., & Yu, X. B. (2021). Machine learning model and strategy for fast and accurate detection of leaks in water supply network. Journal of Infrastructure Preservation and Resilience, 2(1), 1-21. -* Bjerke, M. (2019). Leak Detection in Water Distribution Networks using Gated Recurrent Neural Networks, Master's thesis, Norwegian University of Science and Technology (NTNU). + - Han, Q., Eguchi, R., Mehrotra, S., & Venkatasubramanian, N. (2018). Enabling state estimation for fault identification in water distribution systems under large disasters. In 2018 IEEE 37th Symposium on Reliable Distributed Systems (SRDS) (pp. 161-170). IEEE. -* Bunn, B. B. (2018). An operational model of interdependent water and power distribution infrastructure systems. Naval Postgraduate School, Monterey, CA. + - Han, Q., Mehrotra, S., & Venkatasubramanian, N. (2019). Aquaeis: Middleware support for event identification in community water infrastructures. In Proceedings of the 20th International Middleware Conference (pp. 293-305). -* Fan, X., Zhang, X., & Yu, X. B. (2021). Machine learning model and strategy for fast and accurate detection of leaks in water supply network. Journal of Infrastructure Preservation and Resilience, 2(1), 1-21. + - Huang, H., & Burton, H. V. (2022). Dynamic seismic damage assessment of distributed infrastructure systems using graph neural networks and semi-supervised machine learning. Advances in Engineering Software, 168, 103113. -* Han, Q., Eguchi, R., Mehrotra, S., & Venkatasubramanian, N. (2018). Enabling state estimation for fault identification in water distribution systems under large disasters. In 2018 IEEE 37th Symposium on Reliable Distributed Systems (SRDS) (pp. 161-170). IEEE. + - Iannacone, L., Sharma, N., Tabandeh, A., & Gardoni, P. (2022). Modeling time-varying reliability and resilience of deteriorating infrastructure. Reliability Engineering & System Safety, 217, 108074. -* Han, Q., Mehrotra, S., & Venkatasubramanian, N. (2019). Aquaeis: Middleware support for event identification in community water infrastructures. In Proceedings of the 20th International Middleware Conference (pp. 293-305). + - Kammoun, M., Kammoun, A., & Abid, M. (2022). Experiments based comparative evaluations of machine learning techniques for leak detection in water distribution systems. Water Supply, 22(1), 628-642. -* Huang, H., & Burton, H. V. (2022). Dynamic seismic damage assessment of distributed infrastructure systems using graph neural networks and semi-supervised machine learning. Advances in Engineering Software, 168, 103113. + - Liu, J., & Kang, Y. (2022). Segment-based resilience response and intervention evaluation of water distribution systems. AQUA—Water Infrastructure, Ecosystems and Society, 71(1), 100-119. -* Iannacone, L., Sharma, N., Tabandeh, A., & Gardoni, P. (2022). Modeling time-varying reliability and resilience of deteriorating infrastructure. Reliability Engineering & System Safety, 217, 108074. + - Liu, Y., Barrows, C., Macknick, J., & Mauter, M. (2020). Optimization Framework to Assess the Demand Response Capacity of a Water Distribution System. Journal of Water Resources Planning and Management, 146(8), 04020063. -* Kammoun, M., Kammoun, A., & Abid, M. (2022). Experiments based comparative evaluations of machine learning techniques for leak detection in water distribution systems. Water Supply, 22(1), 628-642. + - Logan, K. T., Lestakova, M., Thiessen, N., Engels, J. I., & Pelz, P. F. (2021). Water Distribution in a Socio-Technical System: Resilience Assessment for Critical Events Causing Demand Relocation. Water, 13(15), 2062. -* Liu, J., & Kang, Y. (2022). Segment-based resilience response and intervention evaluation of water distribution systems. AQUA—Water Infrastructure, Ecosystems and Society, 71(1), 100-119. + - Lorenz, I. S., & Pelz, P. F. (2020). Optimal resilience enhancement of water distribution systems. Water, 12(9), 2602. -* Liu, Y., Barrows, C., Macknick, J., & Mauter, M. (2020). Optimization Framework to Assess the Demand Response Capacity of a Water Distribution System. Journal of Water Resources Planning and Management, 146(8), 04020063. + - Marlim, M. S., & Kang, D. (2022). Contaminant Flushing in Water Distribution Networks Incorporating Customer Faucet Control. Sustainability, 14(4), 2249. -* Logan, K. T., Lestakova, M., Thiessen, N., Engels, J. I., & Pelz, P. F. (2021). Water Distribution in a Socio-Technical System: Resilience Assessment for Critical Events Causing Demand Relocation. Water, 13(15), 2062. + - Mazumder, R. K., Salman, A. M., Li, Y., & Yu, X. (2019). A Decision-making Framework for Water Distribution Systems using Fuzzy Inference and Centrality Analysis. 13th International Conference on Applications of Statistics and Probability in Civil Engineering, ICASP13, Seoul, South Korea, May 26-30, 2019. -* Lorenz, I. S., & Pelz, P. F. (2020). Optimal resilience enhancement of water distribution systems. Water, 12(9), 2602. + - Mazumder, R. K., Salman, A. M., & Li, Y. (2020). Post-disaster sequential recovery planning for water distribution systems using topological and hydraulic metrics. Structure and Infrastructure Engineering, 1-16. -* Marlim, M. S., & Kang, D. (2022). Contaminant Flushing in Water Distribution Networks Incorporating Customer Faucet Control. Sustainability, 14(4), 2249. + - Murillo, A., Taormina, R., Tippenhauer, N., & Galelli, S. (2020). Co-Simulating Physical Processes and Network Data for High-Fidelity Cyber-Security Experiments. In Sixth Annual Industrial Control System Security (ICSS) Workshop (pp. 13-20). -* Mazumder, R. K., Salman, A. M., Li, Y., & Yu, X. (2019). A Decision-making Framework for Water Distribution Systems using Fuzzy Inference and Centrality Analysis. 13th International Conference on Applications of Statistics and Probability in Civil Engineering, ICASP13, Seoul, South Korea, May 26-30, 2019. + - Nikolopoulos, D., Moraitis, G., Bouziotas, D., Lykou, A., Karavokiros, G., & Makropoulos, C. (2020). Cyber-physical stress-testing platform for water distribution networks. Journal of Environmental Engineering, 146(7), 04020061. -* Mazumder, R. K., Salman, A. M., & Li, Y. (2020). Post-disaster sequential recovery planning for water distribution systems using topological and hydraulic metrics. Structure and Infrastructure Engineering, 1-16. + - Nikolopoulos, D., Ostfeld, A., Salomons, E., & Makropoulos, C. (2021). Resilience Assessment of Water Quality Sensor Designs under Cyber-Physical Attacks. Water, 13(5), 647. -* Murillo, A., Taormina, R., Tippenhauer, N., & Galelli, S. (2020). Co-Simulating Physical Processes and Network Data for High-Fidelity Cyber-Security Experiments. In Sixth Annual Industrial Control System Security (ICSS) Workshop (pp. 13-20). + - Nikolopoulos, D., Kossieris, P., Tsoukalas, I., & Makropoulos, C. (2022). Stress-testing framework for urban water systems: A source to tap approach for stochastic resilience assessment. Water, 14(2), 154. -* Nikolopoulos, D., Moraitis, G., Bouziotas, D., Lykou, A., Karavokiros, G., & Makropoulos, C. (2020). Cyber-physical stress-testing platform for water distribution networks. Journal of Environmental Engineering, 146(7), 04020061. + - Nikolopoulos, D., & Makropoulos, C. (2022). Stress-testing water distribution networks for cyber-physical attacks on water quality. Urban Water Journal, 19(3), 256-270. -* Nikolopoulos, D., Ostfeld, A., Salomons, E., & Makropoulos, C. (2021). Resilience Assessment of Water Quality Sensor Designs under Cyber-Physical Attacks. Water, 13(5), 647. + - Nyahora, P. P., Babel, M. S., Ferras, D., & Emen, A. (2020). Multi-objective optimization for improving equity and reliability in intermittent water supply systems. Water Supply, 20(5), 1592-1603. -* Nikolopoulos, D., Kossieris, P., Tsoukalas, I., & Makropoulos, C. (2022). Stress-testing framework for urban water systems: A source to tap approach for stochastic resilience assessment. Water, 14(2), 154. + - Pagani, A., Wei, Z., Silva, R., & Guo, W. (2020). Neural Network Approximation of Graph Fourier Transforms for Sparse Sampling of Networked Flow Dynamics. arXiv preprint arXiv:2002.05508. -* Nikolopoulos, D., & Makropoulos, C. (2022). Stress-testing water distribution networks for cyber-physical attacks on water quality. Urban Water Journal, 19(3), 256-270. + - Rahimi-Golkhandan, A., Aslani, B., & Mohebbi, S. (2022). Predictive resilience of interdependent water and transportation infrastructures: A sociotechnical approach. Socio-Economic Planning Sciences, 80, 101166. -* Nyahora, P. P., Babel, M. S., Ferras, D., & Emen, A. (2020). Multi-objective optimization for improving equity and reliability in intermittent water supply systems. Water Supply, 20(5), 1592-1603. + - Randeniya, A., Radhakrishnan, M., Sirisena, T. A. J. G., Maish, I., & Pathirana, A. (2022). Equity-performance trade-off in water rationing regimes with domestic storage. Water Supply, 22(5), 4781-4797. -* Pagani, A., Wei, Z., Silva, R., & Guo, W. (2020). Neural Network Approximation of Graph Fourier Transforms for Sparse Sampling of Networked Flow Dynamics. arXiv preprint arXiv:2002.05508. + - Sharma, N., Tabandeh, A., & Gardoni, P. (2019). Recovery optimization of interdependent infrastructure: a multi-scale approach. 13th International Conference on Applications of Statistics and Probability in Civil Engineering, ICASP13. -* Rahimi-Golkhandan, A., Aslani, B., & Mohebbi, S. (2022). Predictive resilience of interdependent water and transportation infrastructures: A sociotechnical approach. Socio-Economic Planning Sciences, 80, 101166. + - Sharma, N., Tabandeh, A., & Gardoni, P. (2020). Regional resilience analysis: A multiscale approach to optimize the resilience of interdependent infrastructure. Computer-Aided Civil and Infrastructure Engineering, 35(12), 1315-1330. -* Randeniya, A., Radhakrishnan, M., Sirisena, T. A. J. G., Maish, I., & Pathirana, A. (2022). Equity–performance trade-off in water rationing regimes with domestic storage. Water Supply, 22(5), 4781-4797. + - Tabandeh, S. (2018). Societal risk and resilience analysis: A multi-scale approach to model the dynamics of infrastructure-social systems (Doctoral dissertation, University of Illinois at Urbana-Champaign). -* Sharma, N., Tabandeh, A., & Gardoni, P. (2019). Recovery optimization of interdependent infrastructure: a multi-scale approach. 13th International Conference on Applications of Statistics and Probability in Civil Engineering, ICASP13. + - Tabandeh, A., Sharma, N., & Gardoni, P. (2022). Uncertainty propagation in risk and resilience analysis of hierarchical systems. Reliability Engineering & System Safety, 219, 108208. -* Sharma, N., Tabandeh, A., & Gardoni, P. (2020). Regional resilience analysis: A multiscale approach to optimize the resilience of interdependent infrastructure. Computer-Aided Civil and Infrastructure Engineering, 35(12), 1315-1330. + - Tomar, A., Burton, H. V., Mosleh, A., & Yun Lee, J. (2020). Hindcasting the Functional Loss and Restoration of the Napa Water System Following the 2014 Earthquake Using Discrete-Event Simulation. Journal of Infrastructure Systems, 26(4), 04020035. -* Tabandeh, S. (2018). Societal risk and resilience analysis: A multi-scale approach to model the dynamics of infrastructure-social systems (Doctoral dissertation, University of Illinois at Urbana-Champaign). + - Vrachimis, S. G., & Kyriakou, M. S. (2018). LeakDB: A benchmark dataset for leakage diagnosis in water distribution networks. In WDSA/CCWI Joint Conference Proceedings (Vol. 1). -* Tabandeh, A., Sharma, N., & Gardoni, P. (2022). Uncertainty propagation in risk and resilience analysis of hierarchical systems. Reliability Engineering & System Safety, 219, 108208. + - Vrachimis, S. G., Eliades, D. G., & Polycarpou, M. M. (2018). Leak detection in water distribution systems using hydraulic interval state estimation. In 2018 IEEE Conference on Control Technology and Applications (CCTA) (pp. 565-570). IEEE. -* Tomar, A., Burton, H. V., Mosleh, A., & Yun Lee, J. (2020). Hindcasting the Functional Loss and Restoration of the Napa Water System Following the 2014 Earthquake Using Discrete-Event Simulation. Journal of Infrastructure Systems, 26(4), 04020035. + - Wille, D. (2019). Simulation-optimization for operational resilience of interdependent water-power systems in the US Virgin Islands (Doctoral dissertation, Monterey, CA; Naval Postgraduate School). -* Vrachimis, S. G., & Kyriakou, M. S. (2018). LeakDB: A benchmark dataset for leakage diagnosis in water distribution networks. In WDSA/CCWI Joint Conference Proceedings (Vol. 1). + - Xing, L., & Sela, L. (2020). Transient simulations in water distribution networks: TSNet python package. Advances in Engineering Software, 149, 102884. -* Vrachimis, S. G., Eliades, D. G., & Polycarpou, M. M. (2018). Leak detection in water distribution systems using hydraulic interval state estimation. In 2018 IEEE Conference on Control Technology and Applications (CCTA) (pp. 565-570). IEEE. -* Wille, D. (2019). Simulation-optimization for operational resilience of interdependent water-power systems in the US Virgin Islands (Doctoral dissertation, Monterey, CA; Naval Postgraduate School). +.. bibliography:: + :notcited: + :list: bullet -* Xing, L., & Sela, L. (2020). Transient simulations in water distribution networks: TSNet python package. Advances in Engineering Software, 149, 102884. From b58ef537c17314694c0f0d20ef84f04a5b094a15 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 12:03:07 -0700 Subject: [PATCH 21/29] Formatting the bib file lowercased the citations - oops --- documentation/controls.rst | 2 +- documentation/criticality.rst | 2 +- documentation/disaster_models.rst | 8 ++++---- documentation/fragility.rst | 2 +- documentation/framework.rst | 2 +- documentation/gis.rst | 2 +- documentation/graphics.rst | 8 ++++---- documentation/hydraulics.rst | 14 +++++++------- documentation/installation.rst | 20 +++++++++---------- documentation/layers.rst | 2 +- documentation/morph.rst | 4 ++-- documentation/overview.rst | 10 +++++----- documentation/resilience.rst | 32 +++++++++++++++---------------- documentation/resultsobject.rst | 2 +- documentation/units.rst | 4 ++-- wntr/metrics/economic.py | 14 +++++++------- wntr/metrics/hydraulic.py | 6 +++--- wntr/metrics/misc.py | 2 +- wntr/metrics/water_security.py | 6 +++--- 19 files changed, 71 insertions(+), 71 deletions(-) diff --git a/documentation/controls.rst b/documentation/controls.rst index 9af1871c4..239c3e98b 100644 --- a/documentation/controls.rst +++ b/documentation/controls.rst @@ -6,7 +6,7 @@ Water network controls ====================================== One of the key features of water network models is the ability to control pipes, pumps, and valves using simple and complex conditions. -EPANET uses "controls" and "rules" to define conditions :cite:p:`Ross00`. WNTR replicates EPANET functionality, and includes additional options, as described below. The EPANET user manual provides more information on simple controls and rule-based controls (controls and rules, respectively in WNTR) :cite:p:`Ross00`. +EPANET uses "controls" and "rules" to define conditions :cite:p:`ross00`. WNTR replicates EPANET functionality, and includes additional options, as described below. The EPANET user manual provides more information on simple controls and rule-based controls (controls and rules, respectively in WNTR) :cite:p:`ross00`. **Controls** are defined using an "IF condition; THEN action" format. Controls use a single action (i.e., closing/opening a link or changing the setting) based on a single condition (i.e., time based or tank level based). diff --git a/documentation/criticality.rst b/documentation/criticality.rst index 8910c744b..e37fad9b9 100644 --- a/documentation/criticality.rst +++ b/documentation/criticality.rst @@ -13,7 +13,7 @@ In threat agnostic analysis, the cause of the disruption is not modeled directly Rather, a series of simulations can be used to perform N-k contingency analysis, where N is the number of elements and k elements fail. -In water distribution systems analysis, N-1 contingency analysis is commonly called criticality analysis :cite:p:`WaWC06`. +In water distribution systems analysis, N-1 contingency analysis is commonly called criticality analysis :cite:p:`wawc06`. WNTR is commonly used to run criticality analysis, where a series of simulations are run to determine the impact of individual failures on the system. This framework can be expanded to include analysis where two or more elements fail at one time or in succession. diff --git a/documentation/disaster_models.rst b/documentation/disaster_models.rst index 8797c0a99..4d57e3128 100644 --- a/documentation/disaster_models.rst +++ b/documentation/disaster_models.rst @@ -30,14 +30,14 @@ and change demands for fire conditions, as described in the sections below. The :class:`~wntr.scenario.earthquake.Earthquake` class includes methods to compute peak ground acceleration, peak ground velocity, and repair rate based on the earthquake location and magnitude. -Alternatively, external earthquake models or databases (e.g., ShakeMap :cite:p:`WWQP06`) can be used to compute earthquake properties and +Alternatively, external earthquake models or databases (e.g., ShakeMap :cite:p:`wwqp06`) can be used to compute earthquake properties and those properties can be loaded into Python for analysis in WNTR. When simulating the effects of an earthquake, fragility curves are commonly used to define the probability that a component is damaged with respect to peak ground acceleration, peak ground velocity, or repair rate. -The American Lifelines Alliance report :cite:p:`ALA01` includes seismic fragility curves +The American Lifelines Alliance report :cite:p:`ala01` includes seismic fragility curves for water system components. See :ref:`fragility_curves` for more information. @@ -131,7 +131,7 @@ Power outage ------------- Power outages can be small and brief, or they can also span over several days and affect whole regions as seen in the 2003 Northeast Blackout. -While the Northeast Blackout was an extreme case, a 2012 Lawrence Berkeley National Laboratory study :cite:p:`ELLT12` +While the Northeast Blackout was an extreme case, a 2012 Lawrence Berkeley National Laboratory study :cite:p:`ellt12` showed the frequency and duration of power outages are increasing domestically by a rate of two percent annually. In water distribution systems, a power outage can cause pump stations to shut down and result in @@ -163,7 +163,7 @@ Fires WNTR can be used to simulate damage caused to system components due to fire and/or to simulate water usage due to fighting fires. To fight fires, additional water is drawn from the system. Fire codes vary by state. Minimum required fire flow and duration are generally based on the building's area and purpose. While small residential fires might require 1500 gallons/minute for 2 hours, large commercial -spaces might require 8000 gallons/minute for 4 hours :cite:p:`ICC12`. This additional demand can +spaces might require 8000 gallons/minute for 4 hours :cite:p:`icc12`. This additional demand can have a large impact on water pressure in the system. WNTR can be used to simulate firefighting conditions in the system. diff --git a/documentation/fragility.rst b/documentation/fragility.rst index 8c04dd1ef..81255ec2c 100644 --- a/documentation/fragility.rst +++ b/documentation/fragility.rst @@ -11,7 +11,7 @@ of exceeding a given damage state as a function of environmental change. Fragility curves are closely related to survival curves, which are used to define the probability of component failure due to age. For example, to estimate earthquake damage, fragility curves are defined as a function of peak ground acceleration, peak ground velocity, or repair rate. -The American Lifelines Alliance report :cite:p:`ALA01` +The American Lifelines Alliance report :cite:p:`ala01` includes seismic fragility curves for water network components. Fragility curves can also be defined as a function of flood stage, wind speed, and temperature for other diff --git a/documentation/framework.rst b/documentation/framework.rst index b8f7e656c..ddd12e2b8 100644 --- a/documentation/framework.rst +++ b/documentation/framework.rst @@ -82,7 +82,7 @@ These classes are listed in :numref:`table-sim-subpackage`. ================================================= ============================================================================================================================================================================================================================================================================= Class Description ================================================= ============================================================================================================================================================================================================================================================================= - :class:`~wntr.sim.epanet.EpanetSimulator` The EpanetSimulator can run both the EPANET 2.00.12 Programmer's Toolkit :cite:p:`Ross00` and EPANET 2.2.0 Programmer's Toolkit :cite:p:`RWTS20` to run hydraulic and water quality simulations. + :class:`~wntr.sim.epanet.EpanetSimulator` The EpanetSimulator can run both the EPANET 2.00.12 Programmer's Toolkit :cite:p:`ross00` and EPANET 2.2.0 Programmer's Toolkit :cite:p:`rwrs20` to run hydraulic and water quality simulations. EPANET 2.2.0 (which is used by default) includes both demand-driven and pressure dependent analysis, while EPANET 2.00.12 includes only demand-driven analysis. When using the EpanetSimulator, the water network model is written to an EPANET INP file which is used to run an EPANET simulation. This allows the user to run EPANET simulations, while taking advantage of additional analysis options in WNTR. diff --git a/documentation/gis.rst b/documentation/gis.rst index e04e6f7d1..7592c5615 100644 --- a/documentation/gis.rst +++ b/documentation/gis.rst @@ -46,7 +46,7 @@ Open source GIS platforms include QGIS and GRASS GIS. The following section describes capabilities in WTNR that use GeoPandas GeoDataFrames. .. note:: - Functions that use GeoDataFrames require the Python package **geopandas** :cite:p:`JVFM21` + Functions that use GeoDataFrames require the Python package **geopandas** :cite:p:`jvfm21` and **rtree** :cite:p:`rtree`. Both are optional dependencies of WNTR. Note that **shapely** is installed with geopandas. diff --git a/documentation/graphics.rst b/documentation/graphics.rst index 9e7c6af01..256d59861 100644 --- a/documentation/graphics.rst +++ b/documentation/graphics.rst @@ -137,7 +137,7 @@ As with basic network graphics, a wide range of plotting options can be supplied However, link attributes currently cannot be displayed on the graphic. .. note:: - This function requires the Python package **plotly** :cite:p:`SPHC16`, which is an optional dependency of WNTR. + This function requires the Python package **plotly** :cite:p:`sphc16`, which is an optional dependency of WNTR. The following example plots the network along with node population (:numref:`fig-plotly`). @@ -164,10 +164,10 @@ See :ref:`modify_node_coords` for more information on converting node coordinate As with basic network graphics, a wide range of plotting options can be supplied. .. note:: - This function requires the Python package **folium** :cite:p:`Folium`, which is an optional dependency of WNTR. + This function requires the Python package **folium** :cite:p:`folium`, which is an optional dependency of WNTR. The following example using EPANET Example Network 3 (Net3) converts node coordinates to longitude/latitude and plots the network along -with pipe length over the city of Albuquerque (for demonstration purposes only) (:numref:`fig-leaflet`). The longitude and latitude for two locations are needed to plot the network. For the EPANET Example Network 3, these locations are the reservoir 'Lake' and node '219'. This example requires the Python package **utm** :cite:p:`Bieni19` to convert the node coordinates. +with pipe length over the city of Albuquerque (for demonstration purposes only) (:numref:`fig-leaflet`). The longitude and latitude for two locations are needed to plot the network. For the EPANET Example Network 3, these locations are the reservoir 'Lake' and node '219'. This example requires the Python package **utm** :cite:p:`bieni19` to convert the node coordinates. .. doctest:: @@ -246,7 +246,7 @@ Interactive time series graphics are useful when visualizing large datasets. Basic time series graphics can be converted to interactive time series graphics using the ``plotly.express`` module. .. note:: - This functionality requires the Python package **plotly** :cite:p:`SPHC16`, which is an optional dependency of WNTR. + This functionality requires the Python package **plotly** :cite:p:`sphc16`, which is an optional dependency of WNTR. The following example uses simulation results from above, and converts the graphic to an interactive graphic (:numref:`fig-interactive-timeseries`). diff --git a/documentation/hydraulics.rst b/documentation/hydraulics.rst index e2d6e5e21..56243a2ad 100644 --- a/documentation/hydraulics.rst +++ b/documentation/hydraulics.rst @@ -12,7 +12,7 @@ See :ref:`software_framework` for more information on features and limitations o EpanetSimulator ----------------- -The EpanetSimulator can be used to run EPANET 2.00.12 Programmer's Toolkit :cite:p:`Ross00` or EPANET 2.2.0 Programmer's Toolkit :cite:p:`RWTS20`. +The EpanetSimulator can be used to run EPANET 2.00.12 Programmer's Toolkit :cite:p:`ross00` or EPANET 2.2.0 Programmer's Toolkit :cite:p:`rwts20`. EPANET 2.2.0 is used by default and runs demand-driven and pressure dependent hydraulic analysis. EPANET 2.00.12 runs demand-driven hydraulic analysis only. Both versions can also run water quality simulations, as described in :ref:`water_quality_simulation`. @@ -111,7 +111,7 @@ More information on water network options can be found in :ref:`options`. Mass balance at nodes ------------------------- -Both simulators use the mass balance equations from EPANET :cite:p:`Ross00`: +Both simulators use the mass balance equations from EPANET :cite:p:`ross00`: .. math:: @@ -127,7 +127,7 @@ If water is flowing out of node :math:`n` and into pipe :math:`p`, then Headloss in pipes ------------------------- -Both simulators use conservation of energy formulas from EPANET :cite:p:`Ross00`. +Both simulators use conservation of energy formulas from EPANET :cite:p:`ross00`. While the EpanetSimulator can use the Hazen-Williams and Chezy-Manning pipe head loss formulas, the WNTRSimulator uses only the Hazen-Williams head loss formula, shown below. @@ -225,7 +225,7 @@ The mass balance and headloss equations described above are solved by simultaneously determining demand along with the network pressures and flow rates. Both simulators can run hydraulics using a pressure dependent demand simulation -according to the following pressure-demand relationship :cite:p:`WaSM88`: +according to the following pressure-demand relationship :cite:p:`wasm88`: .. math:: @@ -308,7 +308,7 @@ Users interested in using the EpanetSimulator to model leaks can still do so by emitter coefficients. When using the WNTRSimulator, leaks are modeled with a general form of the equation proposed by Crowl and Louvar -:cite:p:`CrLo02` where the mass flow rate of fluid through the hole is expressed as: +:cite:p:`crlo02` where the mass flow rate of fluid through the hole is expressed as: .. math:: @@ -328,9 +328,9 @@ where :math:`g` is the acceleration of gravity (m/s²), and :math:`\rho` is the density of the fluid (kg/m³). -The default discharge coefficient is 0.75 (assuming turbulent flow) :cite:p:`Lamb01`, but +The default discharge coefficient is 0.75 (assuming turbulent flow) :cite:p:`lamb01`, but the user can specify other values if needed. -The value of :math:`\alpha` is set to 0.5 (assuming large leaks out of steel pipes) :cite:p:`Lamb01` and currently cannot be changed by the user. +The value of :math:`\alpha` is set to 0.5 (assuming large leaks out of steel pipes) :cite:p:`lamb01` and currently cannot be changed by the user. Leaks can be added to junctions and tanks. A pipe break is modeled using a leak area large enough to drain the pipe. diff --git a/documentation/installation.rst b/documentation/installation.rst index 1f1e22f62..50f7b502d 100644 --- a/documentation/installation.rst +++ b/documentation/installation.rst @@ -237,15 +237,15 @@ Requirements Requirements for WNTR include 64-bit Python (tested on versions 3.7, 3.8, 3.9, and 3.10) along with several Python packages. Users should have experience using Python (https://www.python.org/), including the installation of additional Python packages. The following Python packages are required: -* NumPy :cite:p:`VaCV11`: used to support large, multi-dimensional arrays and matrices, +* NumPy :cite:p:`vacv11`: used to support large, multi-dimensional arrays and matrices, http://www.numpy.org/ -* SciPy :cite:p:`VaCV11`: used to support efficient routines for numerical integration, +* SciPy :cite:p:`vacv11`: used to support efficient routines for numerical integration, http://www.scipy.org/ -* NetworkX :cite:p:`HaSS08`: used to create and analyze complex networks, +* NetworkX :cite:p:`hass08`: used to create and analyze complex networks, https://networkx.github.io/ -* pandas :cite:p:`Mcki13`: used to analyze and store time series data, +* pandas :cite:p:`mcki13`: used to analyze and store time series data, http://pandas.pydata.org/ -* Matplotlib :cite:p:`Hunt07`: used to produce graphics, +* Matplotlib :cite:p:`hunt07`: used to produce graphics, http://matplotlib.org/ These packages are included in the Anaconda Python distribution. @@ -257,17 +257,17 @@ Optional dependencies The following Python packages are optional: -* plotly :cite:p:`SPHC16`: used to produce interactive scalable graphics, +* plotly :cite:p:`sphc16`: used to produce interactive scalable graphics, https://plot.ly/ -* folium :cite:p:`Folium`: used to produce Leaflet maps, +* folium :cite:p:`folium`: used to produce Leaflet maps, http://python-visualization.github.io/folium/ -* utm :cite:p:`Bieni19`: used to translate node coordinates to utm and lat/long, +* utm :cite:p:`bieni19`: used to translate node coordinates to utm and lat/long, https://pypi.org/project/utm/ -* geopandas :cite:p:`JVFM21`: used to work with geospatial data, +* geopandas :cite:p:`jvfm21`: used to work with geospatial data, https://geopandas.org/ * rtree :cite:p:`rtree`: used for overlay operations in geopandas, https://rtree.readthedocs.io/ -* openpyxl :cite:p:`GaCl18`: used to read/write to Microsoft® Excel® spreadsheets, +* openpyxl :cite:p:`gacl18`: used to read/write to Microsoft® Excel® spreadsheets, https://openpyxl.readthedocs.io All of these packages **except geopandas** are included in the Anaconda Python distribution. diff --git a/documentation/layers.rst b/documentation/layers.rst index 56b669f3f..ac9a59292 100644 --- a/documentation/layers.rst +++ b/documentation/layers.rst @@ -89,7 +89,7 @@ The valve layer can be included in water network graphics (:numref:`fig-random-v Valve layer using random placement. The **strategic** placement specifies the number of pipes (n) from each node that do NOT contain a valve. -In this case, n is generally 0, 1, or 2 (i.e., N, N-1, or N-2 valve placement) :cite:p:`WaWC06` :cite:p:`LWFZ17`. +In this case, n is generally 0, 1, or 2 (i.e., N, N-1, or N-2 valve placement) :cite:p:`wawc06` :cite:p:`lwfz17`. For example, if three pipes connect to a node and n = 2, then two of those pipes will not contain a valve and one pipe will contain a valve. The following example generates a strategic N-2 valve placement. The valve layer can be included in water network graphics (:numref:`fig-strategic-valve-layer`). diff --git a/documentation/morph.rst b/documentation/morph.rst index 9dcce13e8..9400d3700 100644 --- a/documentation/morph.rst +++ b/documentation/morph.rst @@ -13,7 +13,7 @@ splitting or breaking pipes. Network skeletonization ---------------------------- The goal of network skeletonization is to reduce the size of a water network model with minimal impact on system behavior. -Network skeletonization in WNTR follows the procedure outlined in :cite:p:`WCSG03`. +Network skeletonization in WNTR follows the procedure outlined in :cite:p:`wcsg03`. The skeletonization process retains all tanks, reservoirs, valves, and pumps, along with all junctions and pipes that are associated with controls. Junction demands and demand patterns are retained in the skeletonized model, as described below. Merged pipes are assigned equivalent properties for diameter, length, and roughness to approximate the updated system behavior. @@ -241,7 +241,7 @@ WNTR includes several options to modify node coordinates, denoted as :math:`(x, the nodes could be in the upper right and lower left). .. note:: - Functions that convert coordinates to UTM and longitude/latitude require the Python package **utm** :cite:p:`Bieni19`, which is an optional dependency of WNTR. + Functions that convert coordinates to UTM and longitude/latitude require the Python package **utm** :cite:p:`bieni19`, which is an optional dependency of WNTR. The following example returns a copy of the water network model with node coordinates scaled by 100 m. diff --git a/documentation/overview.rst b/documentation/overview.rst index 775fbda38..ac945db58 100644 --- a/documentation/overview.rst +++ b/documentation/overview.rst @@ -24,13 +24,13 @@ is a national priority. The National Infrastructure Advisory Council defined infrastructure resilience as “the ability to reduce the magnitude and/or duration of disruptive events. The effectiveness of a resilient infrastructure or enterprise depends upon its ability to anticipate, absorb, adapt to, and/or -rapidly recover from a potentially disruptive event” :cite:p:`NIAC09`. +rapidly recover from a potentially disruptive event” :cite:p:`niac09`. Being able to predict how drinking water systems will perform during disruptive incidents and understanding how to best absorb, recover from, and more successfully adapt to such incidents can help enhance resilience. Simulation and analysis tools can help water utilities to explore the capacity of their systems to handle disruptive -incidents and guide the planning necessary to make systems more resilient over time :cite:p:`USEPA14`. +incidents and guide the planning necessary to make systems more resilient over time :cite:p:`usepa14`. The Water Network Tool for Resilience (WNTR, pronounced *winter*) is a Python package designed to simulate and analyze resilience of water distribution networks. @@ -44,7 +44,7 @@ constituents within distribution systems. Users are encouraged to be familiar wi EPANET and/or should have background knowledge in hydraulics and pressurized pipe network modeling before using WNTR. EPANET has a graphical user interface that might be a useful tool to facilitate the visualization of the network and the associated analysis results. Information on EPANET can be found at https://www.epa.gov/water-research/epanet. -**WNTR is compatible with EPANET 2.00.12** :cite:p:`Ross00` **and EPANET 2.2** :cite:p:`RWTS20`. In addition, users should have +**WNTR is compatible with EPANET 2.00.12** :cite:p:`ross00` **and EPANET 2.2** :cite:p:`rwts20`. In addition, users should have experience using Python, including the installation of additional Python packages. General information on Python can be found at https://www.python.org/. @@ -63,7 +63,7 @@ generated by WNTR. WNTR includes capabilities to: -* **Generate water network models** from scratch or from existing EPANET-formatted water network model input (EPANET INP) files :cite:p:`Ross00` :cite:p:`RWTS20`. See EPANET documentation on `INP file format `_ for more details. +* **Generate water network models** from scratch or from existing EPANET-formatted water network model input (EPANET INP) files :cite:p:`ross00` :cite:p:`rwts20`. See EPANET documentation on `INP file format `_ for more details. * **Modify network structure** by adding/removing components or changing component characteristics @@ -97,7 +97,7 @@ WNTR was developed to greatly extend these capabilities. WNTR provides a flexible platform for modeling a wide range of disruptive incidents and repair strategies, and includes an extensible hydraulic simulator. Furthermore, WNTR is compatible with widely used scientific computing packages for Python, -including NetworkX :cite:p:`HaSS08`, pandas :cite:p:`Mcki13`, NumPy :cite:p:`VaCV11`, SciPy :cite:p:`VaCV11`, and Matplotlib :cite:p:`Hunt07`. +including NetworkX :cite:p:`hass08`, pandas :cite:p:`mcki13`, NumPy :cite:p:`vacv11`, SciPy :cite:p:`vacv11`, and Matplotlib :cite:p:`hunt07`. These packages allow the user to build custom analysis directly in Python, and gain access to tools that analyze the structure of complex water distribution networks, analyze time-series data from simulation results, diff --git a/documentation/resilience.rst b/documentation/resilience.rst index b7b9ac3cd..6869019f6 100644 --- a/documentation/resilience.rst +++ b/documentation/resilience.rst @@ -9,8 +9,8 @@ Resilience of water distribution systems refers to the design, maintenance, and operations of that system. All these aspects must work together to limit the effects of disasters and enable rapid return to normal delivery of safe water to customers. -Numerous resilience metrics have been suggested :cite:p:`USEPA14`. -These metrics generally fall into five categories: topographic, hydraulic, water quality, water security, and economic :cite:p:`USEPA14`. +Numerous resilience metrics have been suggested :cite:p:`usepa14`. +These metrics generally fall into five categories: topographic, hydraulic, water quality, water security, and economic :cite:p:`usepa14`. When quantifying resilience, it is important to understand which metric best defines resilience for a particular scenario. WNTR includes many metrics to help @@ -30,7 +30,7 @@ The following sections outline metrics that can be computed using WNTR, includin While some metrics define resilience as a single system-wide quantity, other metrics define quantities that are a function of time, space, or both. -For this reason, state transition plots :cite:p:`BaRR13` and network graphics +For this reason, state transition plots :cite:p:`barr13` and network graphics are useful ways to visualize resilience and compare metrics, as shown in :numref:`fig-metrics`. In the state transition plot, the x-axis represents time (before, during, and after a disruptive incident). The y-axis represents performance. This can be any time varying resilience metric that responds to the disruptive state. @@ -279,19 +279,19 @@ Hydraulic metrics included in WNTR are listed in :numref:`table-hydraulic-metri Demand To determine the number of node-time pairs above or below a specified demand threshold, use the :class:`~wntr.metrics.misc.query` method on results.node['demand']. - This method can be used to compute the fraction of delivered demand, from :cite:p:`OsKS02`. + This method can be used to compute the fraction of delivered demand, from :cite:p:`osks02`. Water service availability Water service availability is the ratio of delivered demand to the expected demand. This metric can be computed as a function of time or space using the :class:`~wntr.metrics.hydraulic.water_service_availability` method. - This method can be used to compute the fraction of delivered volume, from :cite:p:`OsKS02`. + This method can be used to compute the fraction of delivered volume, from :cite:p:`osks02`. - Todini index The Todini index :cite:p:`Todi00` is related to the capability of a system to overcome + Todini index The Todini index :cite:p:`todi00` is related to the capability of a system to overcome failures while still meeting demands and pressures at nodes. The Todini index defines resilience at a specific time as a measure of surplus power at each node. The Todini index can be computed using the :class:`~wntr.metrics.hydraulic.todini_index` method. - Modified resilience index The modified resilience index :cite:p:`JaSr08` is similar to the Todini index, but is only computed at junctions. + Modified resilience index The modified resilience index :cite:p:`jasr08` is similar to the Todini index, but is only computed at junctions. The metric defines resilience at a specific time as a measure of surplus power at each junction or as a system average. The modified resilience index can be computed using the :class:`~wntr.metrics.hydraulic.modified_resilience_index` method. @@ -301,7 +301,7 @@ Hydraulic metrics included in WNTR are listed in :numref:`table-hydraulic-metri A value of 1 indicates that tank storage is maximized, while a value of 0 means there is no water stored in the tank. Tank capacity can be computed using the :class:`~wntr.metrics.hydraulic.tank_capacity` method. - Entropy Entropy :cite:p:`AwGB90` is a measure of uncertainty in a random variable. + Entropy Entropy :cite:p:`awgb90` is a measure of uncertainty in a random variable. In a water distribution network model, the random variable is flow in the pipes and entropy can be used to measure alternate flow paths when a network component fails. A network that carries maximum entropy @@ -310,11 +310,11 @@ Hydraulic metrics included in WNTR are listed in :numref:`table-hydraulic-metri The :class:`~wntr.network.model.WaterNetworkModel.to_graph` method can be used to generate a weighted graph. Entropy can be computed using the :class:`~wntr.metrics.hydraulic.entropy` method. - Expected demand Expected demand is computed at each node and timestep based on node demand, demand pattern, and demand multiplier :cite:p:`USEPA15`. + Expected demand Expected demand is computed at each node and timestep based on node demand, demand pattern, and demand multiplier :cite:p:`usepa15`. The metric can be computed using the :class:`~wntr.metrics.hydraulic.expected_demand` method. This method does not require running a hydraulic simulation. - Average expected demand Average expected demand per day is computed at each node based on node demand, demand pattern, and demand multiplier :cite:p:`USEPA15`. + Average expected demand Average expected demand per day is computed at each node based on node demand, demand pattern, and demand multiplier :cite:p:`usepa15`. The metric can be computed using the :class:`~wntr.metrics.hydraulic.average_expected_demand` method. This method does not require running a hydraulic simulation. @@ -385,7 +385,7 @@ Water quality metrics included in WNTR are listed in :numref:`table-water-quali Concentration To determine the number of node-time pairs above or below a specified concentration threshold, use the :class:`~wntr.metrics.misc.query` method on results.node['quality'] after a simulation using CHEM or TRACE. - This method can be used to compute the fraction of delivered quality, from :cite:p:`OsKS02`. + This method can be used to compute the fraction of delivered quality, from :cite:p:`osks02`. Population impacted As stated above, population that is impacted by a specific quantity can be computed using the :class:`~wntr.metrics.misc.population_impacted` method. This can be applied to water quality metrics. @@ -443,13 +443,13 @@ Water security metrics included in WNTR are listed in :numref:`table-water-secu ===================================== ================================================================================================================================================ Metric Description ===================================== ================================================================================================================================================ - Mass consumed Mass consumed is the mass of a contaminant that exits the network via node demand at each node-time pair :cite:p:`USEPA15`. + Mass consumed Mass consumed is the mass of a contaminant that exits the network via node demand at each node-time pair :cite:p:`usepa15`. The metric can be computed using the :class:`~wntr.metrics.water_security.mass_contaminant_consumed` method. - Volume consumed Volume consumed is the volume of a contaminant that exits the network via node demand at each node-time pair :cite:p:`USEPA15`. + Volume consumed Volume consumed is the volume of a contaminant that exits the network via node demand at each node-time pair :cite:p:`usepa15`. The metric can be computed using the :class:`~wntr.metrics.water_security.volume_contaminant_consumed` method. - Extent of contamination Extent of contamination is the length of contaminated pipe at each node-time pair :cite:p:`USEPA15`. + Extent of contamination Extent of contamination is the length of contaminated pipe at each node-time pair :cite:p:`usepa15`. The metric can be computed using the :class:`~wntr.metrics.water_security.extent_contaminant` method. Population impacted As stated above, population that is impacted by a specific quantity can be computed using the @@ -510,12 +510,12 @@ Economic metrics included in WNTR are listed in :numref:`table-economic-metrics Metric Description ===================================== ================================================================================================================================================ Network cost Network cost is the annual maintenance and operations cost of tanks, pipes, valves, and pumps based on the equations from the Battle of - Water Networks II :cite:p:`SOKZ12`. + Water Networks II :cite:p:`sokz12`. Default values can be included in the calculation. Network cost can be computed using the :class:`~wntr.metrics.economic.annual_network_cost` method. - Greenhouse gas emissions Greenhouse gas emissions is the annual emissions associated with pipes based on equations from the Battle of Water Networks II :cite:p:`SOKZ12`. + Greenhouse gas emissions Greenhouse gas emissions is the annual emissions associated with pipes based on equations from the Battle of Water Networks II :cite:p:`sokz12`. Default values can be included in the calculation. Greenhouse gas emissions can be computed using the :class:`~wntr.metrics.economic.annual_ghg_emissions` method. diff --git a/documentation/resultsobject.rst b/documentation/resultsobject.rst index 37657db02..05e3e5a54 100644 --- a/documentation/resultsobject.rst +++ b/documentation/resultsobject.rst @@ -205,4 +205,4 @@ For example, DataFrames can be saved to Excel files using: >>> pressure.to_excel('pressure.xlsx') .. note:: - The Pandas method ``to_excel`` requires the Python package **openpyxl** :cite:p:`GaCl18`, which is an optional dependency of WNTR. + The Pandas method ``to_excel`` requires the Python package **openpyxl** :cite:p:`gacl18`, which is an optional dependency of WNTR. diff --git a/documentation/units.rst b/documentation/units.rst index da75b8a73..8f648cbbd 100644 --- a/documentation/units.rst +++ b/documentation/units.rst @@ -27,7 +27,7 @@ All data in WNTR is stored in the following SI (International System) units: When setting up analysis in WNTR, all input values should be specified in SI units. All simulation results are also stored in SI units and can be converted to other units if desired, -for instance by using the SymPy Python package :cite:p:`JCMG11`. +for instance by using the SymPy Python package :cite:p:`jcmg11`. EPANET unit conventions ------------------------ @@ -40,7 +40,7 @@ These options define the mass and flow units used in the file. Some units also depend on the equation used for pipe roughness headloss and on the reaction order specified. -For reference, :numref:`table-epanet-units` includes EPANET unit conventions :cite:p:`Ross00`. +For reference, :numref:`table-epanet-units` includes EPANET unit conventions :cite:p:`ross00`. .. _table-epanet-units: .. table:: EPANET INP File Unit Conventions diff --git a/wntr/metrics/economic.py b/wntr/metrics/economic.py index 6cbd87043..db5bfac4a 100644 --- a/wntr/metrics/economic.py +++ b/wntr/metrics/economic.py @@ -12,7 +12,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, pump_cost=None): """ - Compute annual network cost :cite:p:`SOKZ12`. + Compute annual network cost :cite:p:`sokz12`. Use the closest value from the lookup tables to compute annual cost for each component in the network. @@ -25,7 +25,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, tank_cost : pandas Series, optional Annual tank cost indexed by volume - (default values below, from :cite:p:`SOKZ12`). + (default values below, from :cite:p:`sokz12`). ============= ================================ Volume (m3) Annual Cost ($/yr) @@ -40,7 +40,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, pipe_cost : pandas Series, optional Annual pipe cost per pipe length indexed by diameter - (default values below, from :cite:p:`SOKZ12`). + (default values below, from :cite:p:`sokz12`). ============= ============= ================================ Diameter (in) Diameter (m) Annual Cost ($/m/yr) @@ -61,7 +61,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, prv_cost : pandas Series, optional Annual PRV valve cost indexed by diameter - (default values below, from :cite:p:`SOKZ12`). + (default values below, from :cite:p:`sokz12`). ============= ============= ================================ Diameter (in) Diameter (m) Annual Cost ($/m/yr) @@ -82,7 +82,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, pump_cost : pd.Series, optional Annual pump cost indexed by maximum power input to pump - (default values below, from :cite:p:`SOKZ12`). + (default values below, from :cite:p:`sokz12`). Maximum Power for a HeadPump is computed from the pump curve as follows: @@ -193,7 +193,7 @@ def annual_network_cost(wn, tank_cost=None, pipe_cost=None, prv_cost=None, def annual_ghg_emissions(wn, pipe_ghg=None): """ - Compute annual greenhouse gas emissions :cite:p:`SOKZ12`. + Compute annual greenhouse gas emissions :cite:p:`sokz12`. Use the closest value in the lookup table to compute annual GHG emissions for each pipe in the network. @@ -206,7 +206,7 @@ def annual_ghg_emissions(wn, pipe_ghg=None): pipe_ghg : pandas Series, optional Annual GHG emissions indexed by pipe diameter - (default values below, from :cite:p:`SOKZ12`). + (default values below, from :cite:p:`sokz12`). ============= ================================ Diameter (mm) Annualized EE (kg-CO2-e/m/yr) diff --git a/wntr/metrics/hydraulic.py b/wntr/metrics/hydraulic.py index 4fe248c23..5b54ec8b9 100644 --- a/wntr/metrics/hydraulic.py +++ b/wntr/metrics/hydraulic.py @@ -168,7 +168,7 @@ def water_service_availability(expected_demand, demand): def todini_index(head, pressure, demand, flowrate, wn, Pstar): """ - Compute Todini index, equations from :cite:p:`Todi00`. + Compute Todini index, equations from :cite:p:`todi00`. The Todini index is related to the capability of a system to overcome failures while still meeting demands and pressures at the nodes. The @@ -228,7 +228,7 @@ def todini_index(head, pressure, demand, flowrate, wn, Pstar): def modified_resilience_index(pressure, elevation, Pstar, demand=None, per_junction=True): """ - Compute the modified resilience index, equations from :cite:p:`JaSr08`. + Compute the modified resilience index, equations from :cite:p:`jasr08`. The modified resilience index is the total surplus power available at demand junctions as a percentage of the total minimum required power at @@ -318,7 +318,7 @@ def tank_capacity(pressure, wn): def entropy(G, sources=None, sinks=None): """ - Compute entropy, equations from :cite:p:`AwGB90`. + Compute entropy, equations from :cite:p:`awgb90`. Entropy is a measure of uncertainty in a random variable. In a water distribution network model, the random variable is diff --git a/wntr/metrics/misc.py b/wntr/metrics/misc.py index b216a70bf..006b2e12c 100644 --- a/wntr/metrics/misc.py +++ b/wntr/metrics/misc.py @@ -38,7 +38,7 @@ def query(arg1, operation, arg2): def population(wn, R=0.00000876157): r""" - Compute population per node, rounded to the nearest integer :cite:p:`USEPA15`. + Compute population per node, rounded to the nearest integer :cite:p:`usepa15`. .. math:: pop=\dfrac{Average\ expected\ demand}{R} diff --git a/wntr/metrics/water_security.py b/wntr/metrics/water_security.py index ea93ee20e..e69073add 100644 --- a/wntr/metrics/water_security.py +++ b/wntr/metrics/water_security.py @@ -9,7 +9,7 @@ logger = logging.getLogger(__name__) def mass_contaminant_consumed(demand, quality, detection_limit=0): - """ Mass of contaminant consumed :cite:p:`USEPA15`. + """ Mass of contaminant consumed :cite:p:`usepa15`. Parameters ---------- @@ -37,7 +37,7 @@ def mass_contaminant_consumed(demand, quality, detection_limit=0): return MC def volume_contaminant_consumed(demand, quality, detection_limit=0): - """ Volume of contaminant consumed :cite:p:`USEPA15`. + """ Volume of contaminant consumed :cite:p:`usepa15`. Parameters ---------- @@ -66,7 +66,7 @@ def volume_contaminant_consumed(demand, quality, detection_limit=0): def extent_contaminant(quality, flowrate, wn, detection_limit=0): """ - Extent of contaminant in the pipes :cite:p:`USEPA15`. + Extent of contaminant in the pipes :cite:p:`usepa15`. Parameters ---------- From 34507853ee0ae364c471bdbd5de9b82ff7bcb138 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 12:06:16 -0700 Subject: [PATCH 22/29] Fixed user-guide goof --- documentation/userguide.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/documentation/userguide.rst b/documentation/userguide.rst index e1b6e85cc..baec53cc6 100644 --- a/documentation/userguide.rst +++ b/documentation/userguide.rst @@ -25,9 +25,6 @@ Sandia National Laboratories is a multimission laboratory managed and operated b Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. -Contents --------- - .. toctree:: :maxdepth: 1 :hidden: From 6928ebb88f50dd56244564c1500ff934e6369ccf Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 12:08:55 -0700 Subject: [PATCH 23/29] Couple more missed citation fixes, this appears to be it --- documentation/framework.rst | 2 +- documentation/resilience.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/framework.rst b/documentation/framework.rst index ddd12e2b8..0221fc78b 100644 --- a/documentation/framework.rst +++ b/documentation/framework.rst @@ -82,7 +82,7 @@ These classes are listed in :numref:`table-sim-subpackage`. ================================================= ============================================================================================================================================================================================================================================================================= Class Description ================================================= ============================================================================================================================================================================================================================================================================= - :class:`~wntr.sim.epanet.EpanetSimulator` The EpanetSimulator can run both the EPANET 2.00.12 Programmer's Toolkit :cite:p:`ross00` and EPANET 2.2.0 Programmer's Toolkit :cite:p:`rwrs20` to run hydraulic and water quality simulations. + :class:`~wntr.sim.epanet.EpanetSimulator` The EpanetSimulator can run both the EPANET 2.00.12 Programmer's Toolkit :cite:p:`ross00` and EPANET 2.2.0 Programmer's Toolkit :cite:p:`rwts20` to run hydraulic and water quality simulations. EPANET 2.2.0 (which is used by default) includes both demand-driven and pressure dependent analysis, while EPANET 2.00.12 includes only demand-driven analysis. When using the EpanetSimulator, the water network model is written to an EPANET INP file which is used to run an EPANET simulation. This allows the user to run EPANET simulations, while taking advantage of additional analysis options in WNTR. diff --git a/documentation/resilience.rst b/documentation/resilience.rst index 6869019f6..08ec942f8 100644 --- a/documentation/resilience.rst +++ b/documentation/resilience.rst @@ -434,7 +434,7 @@ The following examples compute water quality metrics, including: Water security metrics ----------------------- -Water security metrics quantify potential consequences of contamination scenarios. These metrics are documented in :cite:p:`USEPA15`. +Water security metrics quantify potential consequences of contamination scenarios. These metrics are documented in :cite:p:`usepa15`. Water security metrics included in WNTR are listed in :numref:`table-water-security-metrics`. .. _table-water-security-metrics: From 8ebd6e830c8b1da64f87c96b2c58d21bc4a590c3 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 14:19:59 -0700 Subject: [PATCH 24/29] Trying to merge index_latex and userguide --- documentation/index.rst | 1 + documentation/reference.rst | 7 ++- documentation/userguide.rst | 95 ++++++++++++++++++++++++------------- wntr/epanet/io.py | 8 ++-- wntr/epanet/util.py | 64 ++++++++----------------- 5 files changed, 92 insertions(+), 83 deletions(-) diff --git a/documentation/index.rst b/documentation/index.rst index bb33720f1..f756aa4c4 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -10,6 +10,7 @@ designed to simulate and analyze resilience of water distribution networks. .. toctree:: :maxdepth: 1 + :hidden: userguide wntr-api diff --git a/documentation/reference.rst b/documentation/reference.rst index c37b8c934..d365df535 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -2,9 +2,11 @@ \clearpage +.. only:: html + + References + ========== -References -========== .. raw:: latex @@ -115,6 +117,7 @@ References .. bibliography:: + .. raw:: latex \end{thebibliography} diff --git a/documentation/userguide.rst b/documentation/userguide.rst index baec53cc6..c36320299 100644 --- a/documentation/userguide.rst +++ b/documentation/userguide.rst @@ -2,28 +2,44 @@ :scale: 10 % :alt: Logo -User Guide -========== +.. only:: latex -The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package -designed to simulate and analyze resilience of water distribution networks. + WNTR documentation + ================== -US EPA Disclaimer ------------------ +.. only:: html -The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated -in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. -It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that -the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official -EPA approval, endorsement, or recommendation. + User Guide + ========== + The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package + designed to simulate and analyze resilience of water distribution networks. -Sandia Funding Statement ------------------------- + US EPA Disclaimer + ----------------- -Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and -Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the -U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. + The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated + in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. + It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that + the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official + EPA approval, endorsement, or recommendation. + + + Sandia Funding Statement + ------------------------ + + Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and + Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the + U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. + +.. only:: latex + + .. toctree:: + :maxdepth: 1 + + disclaimer + acronyms + acknowledgements .. toctree:: :maxdepth: 1 @@ -55,7 +71,6 @@ U.S. Department of Energy's National Nuclear Security Administration under contr hydraulics waterquality - waterquality_msx resultsobject .. toctree:: @@ -72,25 +87,39 @@ U.S. Department of Energy's National Nuclear Security Administration under contr gis advancedsim -.. toctree:: - :maxdepth: 1 - :hidden: - :caption: Backmatter +.. only:: latex + + .. toctree:: + :maxdepth: 1 + :hidden: + :caption: Backmatter + + license + whatsnew + users + developers + reference + +.. only:: html + + .. toctree:: + :maxdepth: 1 + :hidden: + :caption: Backmatter - license - whatsnew - developers - users - acronyms - reference + license + whatsnew + developers + acronyms + reference -Citing WNTR ------------------ -To cite WNTR, use one of the following references: + Citing WNTR + ----------------- + To cite WNTR, use one of the following references: -* Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. + * Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. -* Klise, K.A., Murray, R., Haxton, T. (2018). An overview of the Water Network Tool for Resilience (WNTR), In Proceedings of the 1st International WDSA/CCWI Joint Conference, Kingston, Ontario, Canada, July 23-25, 075, 8p. + * Klise, K.A., Murray, R., Haxton, T. (2018). An overview of the Water Network Tool for Resilience (WNTR), In Proceedings of the 1st International WDSA/CCWI Joint Conference, Kingston, Ontario, Canada, July 23-25, 075, 8p. -* Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 + * Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 diff --git a/wntr/epanet/io.py b/wntr/epanet/io.py index 07b0ab0fe..60087d083 100644 --- a/wntr/epanet/io.py +++ b/wntr/epanet/io.py @@ -2443,8 +2443,7 @@ def generate_control(self, model): class BinFile(object): - """ - EPANET binary output file reader. + """EPANET binary output file reader. This class provides read functionality for EPANET binary output files. @@ -2452,9 +2451,8 @@ class BinFile(object): ---------- results_type : list of ResultType, default=None This parameter is *only* active when using a subclass of the BinFile that implements - a custom reader or writer. - If None, then all results will be saved (node quality, demand, link flow, etc.). - Otherwise, a list of result types can be passed to limit the memory used. + a custom reader or writer. If None, then all results will be saved (node quality, + demand, link flow, etc.). Otherwise, a list of result types can be passed to limit the memory used. network : bool, default=False Save a new WaterNetworkModel from the description in the output binary file. Certain elements may be missing, such as patterns and curves, if this is done. diff --git a/wntr/epanet/util.py b/wntr/epanet/util.py index 24673b2d5..5a1939bda 100644 --- a/wntr/epanet/util.py +++ b/wntr/epanet/util.py @@ -1,27 +1,5 @@ """ The wntr.epanet.util module contains unit conversion utilities based on EPANET units. - -.. rubric:: Contents - -.. autosummary:: - - FlowUnits - MassUnits - QualParam - HydParam - to_si - from_si - StatisticsType - QualType - SourceType - PressureUnits - FormulaType - ControlType - LinkTankStatus - MixType - ResultType - EN - """ import enum import logging @@ -331,11 +309,11 @@ def _to_si(self, flow_units, data, mass_units=MassUnits.mg, reaction_order=0): Parameters ---------- - flow_units : ~FlowUnits + flow_units : FlowUnits The EPANET flow units to use in the conversion data : array-like The data to be converted (scalar, array or dictionary) - mass_units : ~MassUnits + mass_units : MassUnits The EPANET mass units to use in the conversion (mg or ug) reaction_order : int The reaction order for use converting reaction coefficients @@ -404,11 +382,11 @@ def _from_si(self, flow_units, data, mass_units=MassUnits.mg, reaction_order=0): Parameters ---------- - flow_units : ~FlowUnits + flow_units : FlowUnits The EPANET flow units to use in the conversion data : array-like The SI unit data to be converted (scalar, array or dictionary) - mass_units : ~MassUnits + mass_units : MassUnits The EPANET mass units to use in the conversion (mg or ug) reaction_order : int The reaction order for use converting reaction coefficients @@ -481,21 +459,21 @@ class HydParam(enum.Enum): .. rubric:: Enum Members ========================== =================================================================== - :attr:`~Elevation` Nodal elevation - :attr:`~Demand` Nodal demand - :attr:`~HydraulicHead` Nodal head - :attr:`~Pressure` Nodal pressure - :attr:`~EmitterCoeff` Emitter coefficient - :attr:`~TankDiameter` Tank diameter - :attr:`~Volume` Tank volume - :attr:`~Length` Link length - :attr:`~PipeDiameter` Pipe diameter - :attr:`~Flow` Link flow - :attr:`~Velocity` Link velocity - :attr:`~HeadLoss` Link headloss (from start node to end node) - :attr:`~RoughnessCoeff` Link roughness (requires `darcy_weisbach` setting for conversion) - :attr:`~Energy` Pump energy - :attr:`~Power` Pump power + :attr:`Elevation` Nodal elevation + :attr:`Demand` Nodal demand + :attr:`HydraulicHead` Nodal head + :attr:`Pressure` Nodal pressure + :attr:`EmitterCoeff` Emitter coefficient + :attr:`TankDiameter` Tank diameter + :attr:`Volume` Tank volume + :attr:`Length` Link length + :attr:`PipeDiameter` Pipe diameter + :attr:`Flow` Link flow + :attr:`Velocity` Link velocity + :attr:`HeadLoss` Link headloss (from start node to end node) + :attr:`RoughnessCoeff` Link roughness (requires `darcy_weisbach` setting for conversion) + :attr:`Energy` Pump energy + :attr:`Power` Pump power ========================== =================================================================== @@ -548,7 +526,7 @@ def _to_si(self, flow_units, data, darcy_weisbach=False): Parameters ---------- - flow_units : ~FlowUnits + flow_units : FlowUnits The flow units to use in the conversion data : array-like The EPANET-units data to be converted (scalar, array or dictionary) @@ -649,7 +627,7 @@ def _from_si(self, flow_units, data, darcy_weisbach=False): Parameters ---------- - flow_units : :class:`~FlowUnits` + flow_units : FlowUnits The flow units to use in the conversion data : array-like The SI unit data to be converted (scalar, array or dictionary) From e568729d9baf0185a7640757e622622457554d78 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 14:44:45 -0700 Subject: [PATCH 25/29] Update to TOC --- documentation/_templates/wntr-indices.html | 28 +++++++ documentation/acknowledgements.rst | 2 +- documentation/conf.py | 4 +- documentation/userguide.rst | 91 +++++++--------------- 4 files changed, 60 insertions(+), 65 deletions(-) create mode 100644 documentation/_templates/wntr-indices.html diff --git a/documentation/_templates/wntr-indices.html b/documentation/_templates/wntr-indices.html new file mode 100644 index 000000000..92ef8cb54 --- /dev/null +++ b/documentation/_templates/wntr-indices.html @@ -0,0 +1,28 @@ +
diff --git a/documentation/acknowledgements.rst b/documentation/acknowledgements.rst index 62a6b6cef..3812cd8e3 100644 --- a/documentation/acknowledgements.rst +++ b/documentation/acknowledgements.rst @@ -3,7 +3,7 @@ \clearpage Acknowledgements -====================================== +================ WNTR is developed through a collaboration between U.S. Environmental Protection Agency, Sandia National Laboratories, and the open-source community. The U.S. Environmental Protection Agency acknowledges the diff --git a/documentation/conf.py b/documentation/conf.py index d841b1b3a..566f21e96 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -224,7 +224,7 @@ def setup(app): }, ], "use_edit_page_button": False, - "primary_sidebar_end": ["indices.html"], + "primary_sidebar_end": ["wntr-indices"], "show_toc_level": 2, # "secondary_sidebar_items": ["page-toc"], #["page-toc", "edit-this-page", "sourcelink"], "navbar_end": [ "theme-switcher.html", "navbar-icon-links.html",], @@ -360,7 +360,7 @@ def setup(app): # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - ('userguide', 'wntr.tex', u'WNTR Documentation', + ('index_latex', 'wntr.tex', u'WNTR Documentation', u'', 'howto', 'True'), #u'', 'manual'), ] diff --git a/documentation/userguide.rst b/documentation/userguide.rst index c36320299..be5b7d334 100644 --- a/documentation/userguide.rst +++ b/documentation/userguide.rst @@ -2,44 +2,28 @@ :scale: 10 % :alt: Logo -.. only:: latex +User Guide +========== - WNTR documentation - ================== +The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package +designed to simulate and analyze resilience of water distribution networks. -.. only:: html +US EPA Disclaimer +----------------- - User Guide - ========== +The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated +in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. +It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that +the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official +EPA approval, endorsement, or recommendation. - The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package - designed to simulate and analyze resilience of water distribution networks. - US EPA Disclaimer - ----------------- +Sandia Funding Statement +------------------------ - The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated - in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. - It has been subjected to the Agency's review and has been approved for publication. Note that approval does not signify that - the contents necessarily reflect the views of the Agency. Mention of trade names products, or services does not convey official - EPA approval, endorsement, or recommendation. - - - Sandia Funding Statement - ------------------------ - - Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and - Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the - U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. - -.. only:: latex - - .. toctree:: - :maxdepth: 1 - - disclaimer - acronyms - acknowledgements +Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and +Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the +U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. .. toctree:: :maxdepth: 1 @@ -87,39 +71,22 @@ gis advancedsim -.. only:: latex - - .. toctree:: - :maxdepth: 1 - :hidden: - :caption: Backmatter - - license - whatsnew - users - developers - reference - -.. only:: html - - .. toctree:: - :maxdepth: 1 - :hidden: - :caption: Backmatter +.. toctree:: + :maxdepth: 1 + :hidden: + :caption: Backmatter - license - whatsnew - developers - acronyms - reference + license + whatsnew + developers - Citing WNTR - ----------------- - To cite WNTR, use one of the following references: +Citing WNTR +----------------- +To cite WNTR, use one of the following references: - * Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. +* Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. - * Klise, K.A., Murray, R., Haxton, T. (2018). An overview of the Water Network Tool for Resilience (WNTR), In Proceedings of the 1st International WDSA/CCWI Joint Conference, Kingston, Ontario, Canada, July 23-25, 075, 8p. +* Klise, K.A., Murray, R., Haxton, T. (2018). An overview of the Water Network Tool for Resilience (WNTR), In Proceedings of the 1st International WDSA/CCWI Joint Conference, Kingston, Ontario, Canada, July 23-25, 075, 8p. - * Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 +* Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 From 9e835e2c5573753883b09155aa6355f8c97cfd93 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 14:57:48 -0700 Subject: [PATCH 26/29] Adding refs to the index didn't work, reverting --- documentation/_templates/wntr-indices.html | 28 ---------------------- documentation/conf.py | 2 +- documentation/userguide.rst | 2 ++ documentation/wntr-api.rst | 4 ++++ 4 files changed, 7 insertions(+), 29 deletions(-) delete mode 100644 documentation/_templates/wntr-indices.html diff --git a/documentation/_templates/wntr-indices.html b/documentation/_templates/wntr-indices.html deleted file mode 100644 index 92ef8cb54..000000000 --- a/documentation/_templates/wntr-indices.html +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/documentation/conf.py b/documentation/conf.py index 566f21e96..0fc5bf7c2 100644 --- a/documentation/conf.py +++ b/documentation/conf.py @@ -224,7 +224,7 @@ def setup(app): }, ], "use_edit_page_button": False, - "primary_sidebar_end": ["wntr-indices"], + "primary_sidebar_end": ["indices.html"], "show_toc_level": 2, # "secondary_sidebar_items": ["page-toc"], #["page-toc", "edit-this-page", "sourcelink"], "navbar_end": [ "theme-switcher.html", "navbar-icon-links.html",], diff --git a/documentation/userguide.rst b/documentation/userguide.rst index be5b7d334..6e31a2128 100644 --- a/documentation/userguide.rst +++ b/documentation/userguide.rst @@ -79,6 +79,8 @@ U.S. Department of Energy's National Nuclear Security Administration under contr license whatsnew developers + acronyms + reference Citing WNTR diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst index 84f0fbd57..b023e5b2e 100644 --- a/documentation/wntr-api.rst +++ b/documentation/wntr-api.rst @@ -26,3 +26,7 @@ API documentation wntr.sim wntr.utils +.. toctree:: + + acronyms + reference From 05c00ef1c2a29f733384325984704053b291b9c9 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 15:02:15 -0700 Subject: [PATCH 27/29] Hidden toc --- documentation/wntr-api.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst index b023e5b2e..b5ffe3bb0 100644 --- a/documentation/wntr-api.rst +++ b/documentation/wntr-api.rst @@ -27,6 +27,8 @@ API documentation wntr.utils .. toctree:: + :caption: Appendices + :hidden: acronyms reference From 83b41923fe6f5e496335cf30160dd989baa95708 Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 15:57:54 -0700 Subject: [PATCH 28/29] Update to gitignore and to clean up the docstrings Docstring cleanup discussed in PR #393. --- .gitignore | 2 ++ wntr/epanet/io.py | 24 ++++++++++++------------ wntr/epanet/toolkit.py | 10 ---------- wntr/sim/aml/__init__.py | 2 ++ wntr/sim/aml/aml.py | 2 ++ wntr/sim/models/__init__.py | 2 ++ wntr/sim/models/constants.py | 2 ++ wntr/sim/models/constraint.py | 2 ++ wntr/sim/models/param.py | 2 ++ wntr/sim/models/utils.py | 2 ++ wntr/sim/models/var.py | 2 ++ wntr/sim/network_isolation/__init__.py | 2 ++ wntr/utils/doc_inheritor.py | 2 ++ wntr/utils/logger.py | 2 ++ wntr/utils/ordered_set.py | 2 ++ wntr/utils/polynomial_interpolation.py | 2 ++ 16 files changed, 40 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 643ae47a6..01ebf9a57 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ temp* examples/*.inp wntr/tests/*.png +documentation/_local +documentation/apidoc diff --git a/wntr/epanet/io.py b/wntr/epanet/io.py index 60087d083..696a8e1e9 100644 --- a/wntr/epanet/io.py +++ b/wntr/epanet/io.py @@ -251,7 +251,7 @@ def read(self, inp_files, wn=None): Returns ------- - :class:`~wntr.network.model.WaterNetworkModel` + WaterNetworkModel A water network model object """ @@ -2449,21 +2449,21 @@ class BinFile(object): Parameters ---------- - results_type : list of ResultType, default=None + results_type : list of ResultType, optional This parameter is *only* active when using a subclass of the BinFile that implements - a custom reader or writer. If None, then all results will be saved (node quality, + a custom reader or writer, by default None. If None, then all results will be saved (node quality, demand, link flow, etc.). Otherwise, a list of result types can be passed to limit the memory used. - network : bool, default=False - Save a new WaterNetworkModel from the description in the output binary file. Certain + network : bool, optional + Save a new WaterNetworkModel from the description in the output binary file, by default None. Certain elements may be missing, such as patterns and curves, if this is done. - energy : bool, default=False - Save the pump energy results. - statistics : bool, default=False + energy : bool, optional + Save the pump energy results, by default False. + statistics : bool, optional Save the statistics lines (different from the stats flag in the inp file) that are - automatically calculated regarding hydraulic conditions. - convert_status : bool, default=True - Convert the EPANET link status (8 values) to simpler WNTR status (3 values). By - default, this is done, and the encoded-cause status values are converted simple state + automatically calculated regarding hydraulic conditions, by default False. + convert_status : bool, optional + Convert the EPANET link status (8 values) to simpler WNTR status (3 values), by default True. + When this is done, the encoded-cause status values are converted simple stat values, instead. diff --git a/wntr/epanet/toolkit.py b/wntr/epanet/toolkit.py index 8afbb7578..7e9ef1c9e 100644 --- a/wntr/epanet/toolkit.py +++ b/wntr/epanet/toolkit.py @@ -1,16 +1,6 @@ """ The wntr.epanet.toolkit module is a Python extension for the EPANET Programmers Toolkit DLLs. - -.. rubric:: Contents - -.. autosummary:: - - runepanet - ENepanet - EpanetException - ENgetwarning - """ import ctypes import os diff --git a/wntr/sim/aml/__init__.py b/wntr/sim/aml/__init__.py index 5a21ab6d6..287b3247d 100644 --- a/wntr/sim/aml/__init__.py +++ b/wntr/sim/aml/__init__.py @@ -1,3 +1,5 @@ +"""WNTR's algebraic modeling language module (SWIG).""" + from .expr import Var, Param, exp, log, sin, cos, tan, asin, acos, atan, inequality, sign, abs, value, ConditionalExpression from .aml import Model, ParamDict, VarDict, ConstraintDict, Constraint diff --git a/wntr/sim/aml/aml.py b/wntr/sim/aml/aml.py index 9dd442972..04e2bae60 100644 --- a/wntr/sim/aml/aml.py +++ b/wntr/sim/aml/aml.py @@ -1,3 +1,5 @@ +"""WNTR AML base classes.""" + import sys import scipy from .evaluator import Evaluator diff --git a/wntr/sim/models/__init__.py b/wntr/sim/models/__init__.py index 70ecf6a4a..c38a50956 100644 --- a/wntr/sim/models/__init__.py +++ b/wntr/sim/models/__init__.py @@ -1 +1,3 @@ +"""Elements of the WNTRSimulator model.""" + from wntr.sim.models import constants, param, var, constraint diff --git a/wntr/sim/models/constants.py b/wntr/sim/models/constants.py index a70ae966d..e7fff5d79 100644 --- a/wntr/sim/models/constants.py +++ b/wntr/sim/models/constants.py @@ -1,3 +1,5 @@ +"""Contant values used by WNTRSimulator.""" + import logging from wntr.utils.polynomial_interpolation import cubic_spline diff --git a/wntr/sim/models/constraint.py b/wntr/sim/models/constraint.py index 7ac4edf18..fc9913598 100644 --- a/wntr/sim/models/constraint.py +++ b/wntr/sim/models/constraint.py @@ -1,3 +1,5 @@ +"""Modeling constraints for the WNTRSimulator.""" + import logging from wntr.sim import aml import wntr.network diff --git a/wntr/sim/models/param.py b/wntr/sim/models/param.py index 0a2fd86dd..6aadbac71 100644 --- a/wntr/sim/models/param.py +++ b/wntr/sim/models/param.py @@ -1,3 +1,5 @@ +"""Model parameters for the WNTRSimulator.""" + import logging from wntr.sim import aml from wntr.utils.polynomial_interpolation import cubic_spline diff --git a/wntr/sim/models/utils.py b/wntr/sim/models/utils.py index c9c937582..0aec0489c 100644 --- a/wntr/sim/models/utils.py +++ b/wntr/sim/models/utils.py @@ -1,3 +1,5 @@ +"""Utilities for the WNTRSimulator model.""" + from wntr.utils.ordered_set import OrderedDict, OrderedSet from six import with_metaclass import abc diff --git a/wntr/sim/models/var.py b/wntr/sim/models/var.py index 7413f5ecd..c4b050b36 100644 --- a/wntr/sim/models/var.py +++ b/wntr/sim/models/var.py @@ -1,3 +1,5 @@ +"""Functions to add variables to the WNTRSimulator model.""" + import logging from wntr.sim import aml diff --git a/wntr/sim/network_isolation/__init__.py b/wntr/sim/network_isolation/__init__.py index 2e54f0019..159f0652a 100644 --- a/wntr/sim/network_isolation/__init__.py +++ b/wntr/sim/network_isolation/__init__.py @@ -1 +1,3 @@ +"""The network isolation package (SWIG).""" + from wntr.sim.network_isolation.network_isolation import check_for_isolated_junctions, get_long_size diff --git a/wntr/utils/doc_inheritor.py b/wntr/utils/doc_inheritor.py index b2a088b0f..372fea7f3 100644 --- a/wntr/utils/doc_inheritor.py +++ b/wntr/utils/doc_inheritor.py @@ -1,3 +1,5 @@ +"""Utilitiy for inheriting docstrings.""" + import inspect diff --git a/wntr/utils/logger.py b/wntr/utils/logger.py index afc2066f5..c81a338eb 100644 --- a/wntr/utils/logger.py +++ b/wntr/utils/logger.py @@ -1,3 +1,5 @@ +"""Fuctions to set up a default handler for WNTR that will output to the console and to wntr.log.""" + import logging logging.getLogger('wntr').addHandler(logging.NullHandler()) diff --git a/wntr/utils/ordered_set.py b/wntr/utils/ordered_set.py index 35da772a5..80079438d 100644 --- a/wntr/utils/ordered_set.py +++ b/wntr/utils/ordered_set.py @@ -1,3 +1,5 @@ +"""An ordered set implementation (like an ordered dict).""" + import sys from collections.abc import MutableSet from collections import OrderedDict diff --git a/wntr/utils/polynomial_interpolation.py b/wntr/utils/polynomial_interpolation.py index 1cf17e0a6..d78573cab 100644 --- a/wntr/utils/polynomial_interpolation.py +++ b/wntr/utils/polynomial_interpolation.py @@ -1,3 +1,5 @@ +"""Functions for a polynomial interpolation using cubic spline.""" + def cubic_spline(x1, x2, f1, f2, df1, df2): """ Method to compute the coefficients of a smoothing polynomial. From 68136ed19349a0634f4691821b7bde1fb0c1647d Mon Sep 17 00:00:00 2001 From: dbhart Date: Wed, 15 Nov 2023 16:54:25 -0700 Subject: [PATCH 29/29] Some documentation cleanup --- documentation/acronyms.rst | 30 +++++++++++++++++++++++---- documentation/index.rst | 24 +++++++++------------- documentation/installation.rst | 2 ++ documentation/resultsobject.rst | 2 +- documentation/units.rst | 36 ++++++++++++++++----------------- documentation/wntr-api.rst | 7 ------- 6 files changed, 56 insertions(+), 45 deletions(-) diff --git a/documentation/acronyms.rst b/documentation/acronyms.rst index c72b00c1f..79d05effa 100644 --- a/documentation/acronyms.rst +++ b/documentation/acronyms.rst @@ -12,24 +12,46 @@ Abbreviations ====================================== -**API**: Application programming interface +**AML**: algebraic modeling system -**CSV**: Comma-separated values +**API**: application programming interface + +**CRS**: coordinate reference system + +**CSV**: comma-separated values + +**DD**: demand-driven `(DDA now the preferred term)` + +**DDA**: demand-driven analysis **EPA**: Environmental Protection Agency -**GIS**: Geographic information system +**EPANET**: a water network modeling tool, see :cite:t:`ross00` and :cite:t:`rwts20` + +**GIS**: geographic information system **HDF**: Hierarchical Data Format -**IDE**: Integrated development environment +**IDE**: integrated development environment + +**INP file**: a text input file for EPANET + +**I/O**: input and output **JSON**: JavaScript Object Notation +**PDA**: pressure-driven analysis + +**PDD**: pressure dependent demand `(PDA now the preferred term)` + +**SCADA**: supervisory control And data acquisition + **SI**: International System of Units **SQL**: Structured Query Language **US**: United States +**UTM**: Universal Transverse Mercator + **WNTR**: Water Network Tool for Resilience diff --git a/documentation/index.rst b/documentation/index.rst index f756aa4c4..b7ba52ee4 100644 --- a/documentation/index.rst +++ b/documentation/index.rst @@ -2,11 +2,16 @@ :scale: 10 % :alt: Logo +======================================== Water Network Tool for Resilience (WNTR) ======================================== The Water Network Tool for Resilience (WNTR) is an EPANET compatible Python package designed to simulate and analyze resilience of water distribution networks. +The official WNTR software repository is in the U.S. EPA's GitHub repository +(https://github.com/USEPA/WNTR); releases are also made available via PyPI and conda-forge +(see :ref:`installation`). + .. toctree:: :maxdepth: 1 @@ -16,8 +21,8 @@ designed to simulate and analyze resilience of water distribution networks. wntr-api users -.. rubric:: Citing WNTR - +Citing WNTR +=========== To cite WNTR, use one of the following references: * Klise, K.A., Hart, D.B., Bynum, M., Hogge, J., Haxton, T., Murray, R., Burkhardt, J. (2020). Water Network Tool for Resilience (WNTR) User Manual: Version 0.2.3. U.S. EPA Office of Research and Development, Washington, DC, EPA/600/R-20/185, 82p. @@ -26,11 +31,9 @@ To cite WNTR, use one of the following references: * Klise, K.A., Bynum, M., Moriarty, D., Murray, R. (2017). A software framework for assessing the resilience of drinking water systems to disasters with an example earthquake case study, Environmental Modelling and Software, 95, 420-431, doi: 10.1016/j.envsoft.2017.06.022 -Legal notices -============= US EPA Disclaimer ------------------ +================= The U.S. Environmental Protection Agency through its Office of Research and Development funded and collaborated in the research described here under an Interagency Agreement with the Department of Energy's Sandia National Laboratories. @@ -39,18 +42,9 @@ the contents necessarily reflect the views of the Agency. Mention of trade names EPA approval, endorsement, or recommendation. Sandia Funding Statement ------------------------- +======================== Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA-0003525. - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - - diff --git a/documentation/installation.rst b/documentation/installation.rst index 50f7b502d..bad11de5a 100644 --- a/documentation/installation.rst +++ b/documentation/installation.rst @@ -2,6 +2,8 @@ \clearpage +.. _installation: + Installation ====================================== .. include:: diff --git a/documentation/resultsobject.rst b/documentation/resultsobject.rst index 05e3e5a54..7ba089176 100644 --- a/documentation/resultsobject.rst +++ b/documentation/resultsobject.rst @@ -194,7 +194,7 @@ Network and time series graphics can be customized to add titles, legends, axis Pandas includes methods to write DataFrames to the following file formats: -* Excel +* Microsoft Excel (xlsx) * Comma-separated values (CSV) * Hierarchical Data Format (HDF) * JavaScript Object Notation (JSON) diff --git a/documentation/units.rst b/documentation/units.rst index 8f648cbbd..fbfc172f6 100644 --- a/documentation/units.rst +++ b/documentation/units.rst @@ -7,23 +7,23 @@ Units All data in WNTR is stored in the following SI (International System) units: -* Acceleration = :math:`g` (1 :math:`g` = 9.81 :math:`m/s^2`) -* Concentration = :math:`kg/m^3` -* Demand = :math:`m^3/s` -* Diameter = :math:`m` -* Elevation = :math:`m` -* Energy = :math:`J` -* Flow rate = :math:`m^3/s` -* Head = :math:`m` -* Headloss = :math:`m` -* Length = :math:`m` -* Mass = :math:`kg` -* Mass injection = :math:`kg/s` -* Power = :math:`W` -* Pressure head = :math:`m` (this assumes a fluid density of 1000 :math:`kg/m^3`) -* Time = :math:`s` -* Velocity = :math:`m/s` -* Volume = :math:`m^3` +* Acceleration = :math:`\rm g` (:math:`\rm g \equiv 9.80665 m/s^2`) +* Concentration = :math:`\rm kg/m^3` +* Demand = :math:`\rm m^3/s` +* Diameter = :math:`\rm m` +* Elevation = :math:`\rm m` +* Energy = :math:`\rm J` +* Flow rate = :math:`\rm m^3/s` +* Head = :math:`\rm m` +* Headloss = :math:`\rm m` +* Length = :math:`\rm m` +* Mass = :math:`\rm kg` +* Mass injection = :math:`\rm kg/s` +* Power = :math:`\rm W` +* Pressure head = :math:`\rm m` (assumes a fluid density of 1000 :math:`\rm kg/m^3`) +* Time = :math:`\rm s` +* Velocity = :math:`\rm m/s` +* Volume = :math:`\rm m^3` When setting up analysis in WNTR, all input values should be specified in SI units. All simulation results are also stored in SI units and can be converted to other units if desired, @@ -90,7 +90,7 @@ For reference, :numref:`table-epanet-units` includes EPANET unit conventions :ci | Reaction | - *mass* /ft/day (0-order) | - *mass* /m/day (0-order) | | coefficient (Wall) | - ft/day (1st-order) | - m/day (1st-order) | +----------------------+-------------------------------------+------------------------------------+ - | Roughness | - 10 :sup:`-3` ft (Darcy-Weisbach) | - mm (Darcy-Weisbach) | + | Roughness | - 0.001 ft (Darcy-Weisbach) | - mm (Darcy-Weisbach) | | coefficient | - unitless (otherwise) | - unitless (otherwise) | +----------------------+-------------------------------------+------------------------------------+ | Source mass | *mass* /min | *mass* /min | diff --git a/documentation/wntr-api.rst b/documentation/wntr-api.rst index b5ffe3bb0..f3fc7c4c1 100644 --- a/documentation/wntr-api.rst +++ b/documentation/wntr-api.rst @@ -25,10 +25,3 @@ API documentation wntr.scenario wntr.sim wntr.utils - -.. toctree:: - :caption: Appendices - :hidden: - - acronyms - reference

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�o$aYqJQY?HjOI%SMmB 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 u@j6~@I(nJ^ef~Rx|7_qt8~D!#{ Date: Tue, 14 Nov 2023 13:54:37 -0700 Subject: [PATCH 18/29] Still trying to get the references --- documentation/reference.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/reference.rst b/documentation/reference.rst index 217c80e78..7ac45228a 100644 --- a/documentation/reference.rst +++ b/documentation/reference.rst @@ -119,4 +119,4 @@ References .. raw:: html -