From e07b57f1331496316cf3ee823fccb774b03df887 Mon Sep 17 00:00:00 2001 From: Produit Date: Thu, 24 Nov 2022 15:27:29 +0100 Subject: [PATCH 1/4] reorganize and complete doc --- .../Change-Default-Export-Parameters.rst | 13 ++ en/qgep_swmm/Change-simulation-parameters.rst | 179 ---------------- .../{Check-Input.rst => Check-SWMM-File.rst} | 39 +++- en/qgep_swmm/Create-Input.rst | 25 ++- en/qgep_swmm/Extract-Results.rst | 2 +- en/qgep_swmm/Generate-SWMM-File.rst | 9 + en/qgep_swmm/Import-Results.rst | 11 +- en/qgep_swmm/Mapping.rst | 8 +- .../Populate-Coefficient-Of-Friction.rst | 28 +++ en/qgep_swmm/Prepare-Data.rst | 11 + en/qgep_swmm/Process-Results.rst | 11 + en/qgep_swmm/QGEP-SWMM-Correspondances.rst | 199 ++++++++++++++++++ en/qgep_swmm/QGEP-SWMM-data-requirements.rst | 10 +- en/qgep_swmm/QGEP-SWMM-installation.rst | 3 + en/qgep_swmm/QGEP-SWMM-workflow.rst | 40 +++- .../{Execute.rst => Run-SWMM-Simulation.rst} | 24 ++- en/qgep_swmm/SWMM.rst | 4 +- en/qgep_swmm/index.rst | 15 +- 18 files changed, 400 insertions(+), 231 deletions(-) create mode 100644 en/qgep_swmm/Change-Default-Export-Parameters.rst delete mode 100644 en/qgep_swmm/Change-simulation-parameters.rst rename en/qgep_swmm/{Check-Input.rst => Check-SWMM-File.rst} (76%) create mode 100644 en/qgep_swmm/Generate-SWMM-File.rst create mode 100644 en/qgep_swmm/Populate-Coefficient-Of-Friction.rst create mode 100644 en/qgep_swmm/Prepare-Data.rst create mode 100644 en/qgep_swmm/Process-Results.rst create mode 100644 en/qgep_swmm/QGEP-SWMM-Correspondances.rst rename en/qgep_swmm/{Execute.rst => Run-SWMM-Simulation.rst} (51%) diff --git a/en/qgep_swmm/Change-Default-Export-Parameters.rst b/en/qgep_swmm/Change-Default-Export-Parameters.rst new file mode 100644 index 000000000..a3922e674 --- /dev/null +++ b/en/qgep_swmm/Change-Default-Export-Parameters.rst @@ -0,0 +1,13 @@ + +.. _Change-Default-Export-Parameters: + +Change default export parameters +-------------------------------- +As mentionned earlier, most of the simulation parameters are copied from the template ``.inp`` file. + +Remaining default parameters are currently hard coded in the views within the database ``qgep_swmm`` schema. +The defaults parameters can be edited directly in the view (with PgAdmin). + +.. note:: + + The default parameters modified in the views and modified views in general will be overwritten during a datamodel update. diff --git a/en/qgep_swmm/Change-simulation-parameters.rst b/en/qgep_swmm/Change-simulation-parameters.rst deleted file mode 100644 index e61891566..000000000 --- a/en/qgep_swmm/Change-simulation-parameters.rst +++ /dev/null @@ -1,179 +0,0 @@ -.. _Change-Simulation-Parameters: - -Change simulation parameters -============================ - -The easiest way to edit the simulation parameters is to open the ``.inp`` file with SWMM GUI. -Then, you will find the parameters list hereunder. -These parameters are extracted from the QGEP database if they exists (i.e. sections hydrology, hydraulics in SWMM) or copied from the template ``.inp`` file. - -Title/Notes: ------------- -- Set by the user as a QGEP_SWMM option -- update title if necessary. - -Options: ------------- -- Copied from the template input file if exists. -- set / update simulation parameters. - -Climatology: ------------- -- Copied from the template input file if exists. -- set / update climatology parameters - -Hydrology: ------------- -**Rain Gages:** - -QGEP_SWMM creates one raingage for each subcatchment. - -By default: - -- Time serie: Each raingage is related to a default rain time serie called ``default_qgep_raingage_timeserie``. The time serie must be created and the value Series Name updated accordingly. -- Other parameters have default SWMM values - -**Aquifers:** - -QGEP_SWMM creates an aquifer for each QGEP ``aquifiers``. - -By default: - -- An aquifer is created for each QGEP ``aquifiers`` -- The bottom elevation is set to the ``minimal_groundwater_level`` -- The water table elevation is set to the ``average_groundwater_level`` -- Other parameters have default SWMM values - -**Subcatchment:** - -QGEP_SWMM creates a subcatchment for each QGEP catchment area. - -By default: -- A subcatchment is created for each QGEP ``wastewater_networkelement`` linked to the ``catchment area`` (max. 4: ``fk_wastewater_networkelement_rw_current``, ``fk_wastewater_networkelement_rw_planned``, ``fk_wastewater_networkelement_ww_current``, ``fk_wastewater_networkelement_ww_planned``) -- it is linked to a rain gage. -- The width is computed from the mean of the minimal / maximal distance between the outlet and the catchment area contour. If the outlet is unknown the centroid is used rather thant the outlet. -- The coverages (attribute land uses) are computed from the intersection between the catchment area and the planning zone -- Other parameters have default SWMM values - -The subcatchment can be linked to an aquifer via the groundwater attribute. - - -**Snow Packs** - -- Copied from the template input file if exists. - -**Unit hydrographs** - -- Copied from the template input file if exists. - -**LID Controls** - -- Copied from the template input file if exists. - -Hydraulics ---------------- - -**Junctions** - -- QGEP_SWMM creates a junction for each QGEP manhole, some kind of special structures and the wastewater nodes linking primary pipes without a wastewater structure. - -- See ``vw_swmm_junctions.sql`` for details. - -**Outfalls** - -- QGEP_SWMM creates an outfall for each QGEP discharge_point. - -- See ``vw_swmm_outfalls.sql`` for details. - -**Dividers** - -- QGEP_SWMM creates a divider for the manholes and special structures having the function ``separating_structure`` - -- See ``vw_swmm_dividers.sql`` for details. - -**Storage Units** - -- QGEP_SWMM creates a storage for some kind of QGEP infiltration installations and some kind of QGEP special structures. - -- See ``vw_swmm_storages.sql`` for details. - -**Conduits** - -- QGEP_SWMM creates a conduit for each QGEP reach. - -- See ``vw_swmm_conduits.sql`` for details. - -**Pumps** - -- QGEP_SWMM creates a pump for each QGEP pump. - -- See ``vw_swmm_pumps.sql`` for details. - -**Orifices** - -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -**Weirs** - -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -**Outlets** - -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -**Transects** - -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -**Controls** - -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -Quality ---------------- - -**Land uses** - -- QGEP_SWMM creates a land use for each QGEP planning zone kind. - -**Pollutants** - -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -Curves ---------------- -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -Time series ---------------- -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -Time patterns ---------------- -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - -Labels ---------------- -- Are not created from QGEP objects. - -- Copied from the template input file if exists. - - diff --git a/en/qgep_swmm/Check-Input.rst b/en/qgep_swmm/Check-SWMM-File.rst similarity index 76% rename from en/qgep_swmm/Check-Input.rst rename to en/qgep_swmm/Check-SWMM-File.rst index a3a1c67f7..f74e82576 100644 --- a/en/qgep_swmm/Check-Input.rst +++ b/en/qgep_swmm/Check-SWMM-File.rst @@ -1,6 +1,6 @@ -.. _Check-Input: +.. _Check-SWMM-File: -Check input file +Check SWMM File ================ The generated ``.inp`` file can be imported in SWMM GUI. It is likely that some errors will be raised. You will have to solve them (see hereunder a list of common errors) @@ -9,11 +9,11 @@ You have to solve the errors in the order in which they appear in the report. So To fix an error you can search in the corresponding QGEP layers in the QGIS project: -* vw_wastewater_node for undefined nodes -* catchment_area for subcatchment errors -* compare if the number of exported nodes (in vw_junctions) are what you expect it to be. -* Check if the function (manhole / special_structure) of wastewater_structure are all filled in -* etc. +- vw_wastewater_node for undefined nodes +- catchment_area for subcatchment errors +- compare if the number of exported nodes (in vw_junctions) are what you expect it to be. +- Check if the function (manhole / special_structure) of wastewater_structure are all filled in +- etc. @@ -27,9 +27,9 @@ Missing status or _function_hierarchic (wn_function_hierarchic) The catchment area is linked to node which is not exported or a reach cannot be drawn because of a missing node: -* because of its status (abandonned etc.) or status is not defined (is Null) -* the node is not connected (correctly) to a conduit -* the node is secondary (the linked reach are secondary) +- because of its status (abandonned etc.) or status is not defined (is Null) +- the node is not connected (correctly) to a conduit +- the node is secondary (the linked reach are secondary) and therefore not export in the vw_junctions. @@ -93,3 +93,22 @@ Missing population densities ``qgep_od.catchment_area.population_density_current`` or ``qgep_od.catchment_area.population_density_planned`` are not filled. +Subcatchment and rain Gages +--------------------------- +If you want to attach every subcatchments to a single rain gage, edit the file with SWMM interface: + +- Edit > Select All +- Edit > Group Deletion > All Rain Gages +- Create a new raingage +- Edit > Select All +- Edit > Group Edit + + - For objects of type: Subcatchment + - Edit the property: Rain Gage + - By replacing it with: Name of the new rain gage + +To edit the rain serie: + +- Click on Time Series +- Double click default_qgep_raingage_timeserie +- Edit the serie diff --git a/en/qgep_swmm/Create-Input.rst b/en/qgep_swmm/Create-Input.rst index 8333ec249..c4ec9bf35 100644 --- a/en/qgep_swmm/Create-Input.rst +++ b/en/qgep_swmm/Create-Input.rst @@ -1,9 +1,9 @@ .. _Create-Input: SWMM Create Input -================= +----------------- -- The plugin extracts only the primary wastewater structures +- By default, the plugin extracts the entire primary wastewater structures. If you check *Export only selected network*, then both the selected primary and secondary network will be exported. - The ``.inp`` file is the input file format for SWMM. It contains the wastewater network AND simulation parameters. The network can be extracted from the QGEP data, but the simulation parameters must be set according to your study. @@ -12,11 +12,26 @@ SWMM Create Input - By default, the export supposes that you use an *Horton Infiltration method*. If another method is set in the template ``.inp``, you might need to adapt the generated ``.inp``. See the linked `issue `_ QGEP plugin ------------ - +^^^^^^^^^^^^ Launch ``SWMM Create Input``: - ``Database``: the name of the service used to connect to the database - ``State``: Current or Planned: extract the wastewater structure according to the status - ``Template INP file``: a ``.inp`` from which simulation parameters will be copied -- ``Destination INP file``: the ``.inp`` generated from QGEP data \ No newline at end of file +- ``Destination INP file``: the ``.inp`` generated from QGEP data +- ``Export only selected network``: Export primary and secondary selected network + + +Selection +--------- +Usually you will select a subnetwork to be exported with the QGEP button ``Upstream`` and then ``Select current path``. +If you want to remove from this selection secondary structures: + +- Open ``Selection by expression`` on the layer ``vw_qgep_reach`` +- Expression: ``"ch_function_hierarchic" in (5066, 5068, 5069, 5070, 5064, 5071, 5062, 5072, 5074)`` +- Choose: ``filter current selection`` + +- Open ``Selection by expression`` on the layer ``vw_qgep_wastewater_structure`` +- Expression: ``"_channel_function_hierarchic" in (5066, 5068, 5069, 5070, 5064, 5071, 5062, 5072, 5074)`` +- Choose: ``filter current selection`` + \ No newline at end of file diff --git a/en/qgep_swmm/Extract-Results.rst b/en/qgep_swmm/Extract-Results.rst index a714eb331..4547f5e8c 100644 --- a/en/qgep_swmm/Extract-Results.rst +++ b/en/qgep_swmm/Extract-Results.rst @@ -1,7 +1,7 @@ .. _Extract-Results: SWMM Extract Results -==================== +-------------------- If you don't want to store the results in QGEP, this function generates two QGIS tables from a report file. You can map the values with the geometries (see: :ref:`mapping-not-imported`). diff --git a/en/qgep_swmm/Generate-SWMM-File.rst b/en/qgep_swmm/Generate-SWMM-File.rst new file mode 100644 index 000000000..6380f4f2d --- /dev/null +++ b/en/qgep_swmm/Generate-SWMM-File.rst @@ -0,0 +1,9 @@ + +.. _Generate-SWMM-File: + +Generate SWMM File +================== + +.. include:: Create-Input.rst + +.. include:: Change-Default-Export-Parameters.rst diff --git a/en/qgep_swmm/Import-Results.rst b/en/qgep_swmm/Import-Results.rst index 75c995ad1..3161a74a5 100644 --- a/en/qgep_swmm/Import-Results.rst +++ b/en/qgep_swmm/Import-Results.rst @@ -1,10 +1,10 @@ .. _Import-Results: SWMM Import Results -=================== +------------------- Measurement tables ------------------- +^^^^^^^^^^^^^^^^^^ If you want to store the results in QGEP and use the dedicated view for the mapping then use SWMM Import Results. It parses the report file of SWMM. @@ -39,14 +39,17 @@ and they populate a view dedicated for the mapping (see :ref:`mapping-imported`) Launch import -------------- +^^^^^^^^^^^^^ Launch ``SWMM Import results``: - ``SWMM report file``: the ``.rpt`` file generated during the previous step - ``Database``: The name of the PostgreSQL service hosting the QGEP database. - ``Simulation name``: The name that you want to give to this simulation (it will appear in ``qgep_od.measuring_point.remark``). -- ``Import full results in addition to summary``: The full time series will be imported. Attention, if the report step is small, the import can take a long time. +- ``Import summary``: Only the summary is imported. +- ``Import full results``: The full time series will be imported. Attention, if the report step is small, the import can take a long time. +- ``Import Max HGL in qgep_od.wastewater_node.backflow_level`` +- ``Import Max/Full Flow in qgep_od.reach.hydraulic_load`` .. warning:: Attention, a report file created from the SWMM GUI don't contain the full time series but only the summary. diff --git a/en/qgep_swmm/Mapping.rst b/en/qgep_swmm/Mapping.rst index fc77f5fa0..a3b65167e 100644 --- a/en/qgep_swmm/Mapping.rst +++ b/en/qgep_swmm/Mapping.rst @@ -1,12 +1,12 @@ .. _Mapping: Mapping -======= +------- .. _mapping-not-imported: Results are not imported in QGEP --------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use processing tool ``join attributes`` to add the results stored in the tables ``Node summary`` and ``Link summary`` to the tables ``qgep_od.vw_wastewater_node`` and ``qgep_od.vw_qgep_reach``. The mapping should be done on the attribute ``obj_id`` of the ``qgep_od`` tables and the attribute ``id`` of the summary tables. @@ -17,7 +17,7 @@ The mapping should be done on the attribute ``obj_id`` of the ``qgep_od`` tables .. _mapping-imported: Results are imported in QGEP ----------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Add the layers qgep_swmm.node_results and / or qgep_swmm.link_results to your QGIS project * Filter by the name of the simulation and the name of the parameter to show: Right click on the layer > filter > Expression: ``"swmm_simulation_name" = 'name of the simulation AND "swmm_parameter" = 'inflow'`` @@ -26,7 +26,7 @@ Two template QGIS files are provided in the plugin folder ``src\swmm_templates\* The project ``swmm_summary.qgs`` show how the summary indicators can be loaded in QGIS. The project ``swmm_full_report.qgs`` show how the full time series can be loaded in QGIS. You will need to adapt the services and the filters. Show the indicators evolving along time -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +“““““““““““““““““““““““““““““““““““““““ This manipulation only works with complete times series. Namely, you need to import the full results and not only the summary. **Play the simulation with Time Manager** diff --git a/en/qgep_swmm/Populate-Coefficient-Of-Friction.rst b/en/qgep_swmm/Populate-Coefficient-Of-Friction.rst new file mode 100644 index 000000000..1ba0a618d --- /dev/null +++ b/en/qgep_swmm/Populate-Coefficient-Of-Friction.rst @@ -0,0 +1,28 @@ +.. _Populate-Coefficient-Of-Friction: + +Coefficient of friction +----------------------- + +- The plugin will export the roughness according to these priorities: + + - If ``reach.coefficient_of_friction`` is set then it is converted (``1/coefficient_of_friction``) and exported to SWMM + - Else if ``reach.wall_roughness`` and ``reach.clear_height`` are set, it is converted (``(1/(4 * SQRT(9.81)*POWER((32/re.clear_height/1000),(1/6))*LOG(((3.71*re.clear_height/1000)/(re.wall_roughness/1000)))))``) and exported. + - Else if ``reach.default_coefficient_of_friction`` is set then it is used + - Else a default value of ``0.01`` is set + +.. note:: + The formula to convert from Strickler to Coolebrook is documented in *ATV-DVWK STANDARD ATV-DVWK-A 110E, Hydraulic Dimensioning and Performance Verification of Sewers and Drains September 2001* + `Link `__ + + +Populate default coefficient of friction +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The table ``qgep_swmm.reach_coefficient_of_friction`` contains default coefficient of Strickler for the reach materials. +If the default values don't match your needs you can edit them. +The function ``SWMM Set default coefficient of friction`` will put in ``qgep_od.reach.default_coefficient_of_friction`` these default values. +You can choose if you want to overwrite or not the values existing in this attribute. + +Launch ``SWMM Set default coefficient of friction``: + +- ``Overwrite existing default values``: If checked the values stored in ``default_coefficient_of_friction`` will be overwrited with new values. \ No newline at end of file diff --git a/en/qgep_swmm/Prepare-Data.rst b/en/qgep_swmm/Prepare-Data.rst new file mode 100644 index 000000000..0c90382d3 --- /dev/null +++ b/en/qgep_swmm/Prepare-Data.rst @@ -0,0 +1,11 @@ + +.. _Prepare-Data: + +Prepare Data +============ + +.. include:: QGEP-SWMM-Correspondances.rst + +.. include:: QGEP-SWMM-data-requirements.rst + +.. include:: Populate-Coefficient-Of-Friction.rst \ No newline at end of file diff --git a/en/qgep_swmm/Process-Results.rst b/en/qgep_swmm/Process-Results.rst new file mode 100644 index 000000000..23719ab53 --- /dev/null +++ b/en/qgep_swmm/Process-Results.rst @@ -0,0 +1,11 @@ + +.. _Process-Results: + +Process results +============== + +.. include:: Import-Results.rst + +.. include:: Extract-Results.rst + +.. include:: Mapping.rst diff --git a/en/qgep_swmm/QGEP-SWMM-Correspondances.rst b/en/qgep_swmm/QGEP-SWMM-Correspondances.rst new file mode 100644 index 000000000..9941e3318 --- /dev/null +++ b/en/qgep_swmm/QGEP-SWMM-Correspondances.rst @@ -0,0 +1,199 @@ +.. _QGEP-SWMM-Correspondances: + +QGEP - SWMM correspondances +--------------------------- + + +Title/Notes: +^^^^^^^^^^^^ + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + + +Options: +^^^^^^^^ +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + + +Climatology: +^^^^^^^^^^^^ +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +Hydrology: +^^^^^^^^^^ +**Rain Gages:** + +QGEP_SWMM creates one raingage for each subcatchment. + +By default: + +- Time serie: Each raingage is related to a default rain time serie called ``default_qgep_raingage_timeserie``. The time serie must be created and the value Series Name updated accordingly. +- Other parameters have default SWMM values + +See ``vw_swmm_raingages.sql`` for details. + +**Aquifers:** + +QGEP_SWMM creates an aquifer for each QGEP ``aquifiers``. + +By default: + +- An aquifer is created for each QGEP ``aquifiers`` +- The bottom elevation is set to the ``minimal_groundwater_level`` +- The water table elevation is set to the ``average_groundwater_level`` +- Other parameters have default SWMM values + +See ``vw_swmm_aquifers.sql`` for details. + +**Subcatchment:** + +QGEP_SWMM creates a subcatchment for each QGEP catchment area. + +By default: +- A subcatchment is created for each QGEP ``wastewater_networkelement`` linked to the ``catchment area`` (max. 4: ``fk_wastewater_networkelement_rw_current``, ``fk_wastewater_networkelement_rw_planned``, ``fk_wastewater_networkelement_ww_current``, ``fk_wastewater_networkelement_ww_planned``) +- it is linked to a rain gage. +- The width is computed from the mean of the minimal / maximal distance between the outlet and the catchment area contour. If the outlet is unknown the centroid is used rather thant the outlet. +- The coverages (attribute land uses) are computed from the intersection between the catchment area and the planning zone (see ``vw_swmm_coverages.sql``) +- SWMM Dry Weather Flow: + + - are set to 0 for rain water subcatchments + - are set to ``waste_water_production[_current,_planned]`` if set + - else it computed from the subcatchement area and ``population_density[_current,_planned]`` + +- Other parameters have default SWMM values + +The subcatchment can be linked to an aquifer via the groundwater attribute. + +See ``vw_swmm_subcatchments.sql``, ``vw_swmm_subarea.sql`` and ``vw_swmm_dwf.sql`` for details + +**Snow Packs** + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +**Unit hydrographs** + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +**LID Controls** + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +Hydraulics +^^^^^^^^^^ + +**Junctions** + +- QGEP_SWMM creates a junction for each QGEP manhole, some kind of special structures and the wastewater nodes linking primary pipes without a wastewater structure. + +See ``vw_swmm_junctions.sql`` for details. + +**Outfalls** + +- QGEP_SWMM creates an outfall for each QGEP discharge_point. + +See ``vw_swmm_outfalls.sql`` for details. + +**Dividers** + +- QGEP_SWMM creates a divider for the manholes and special structures having the function ``separating_structure`` + +- See ``vw_swmm_dividers.sql`` for details. + +**Storage Units** + +- QGEP_SWMM creates a storage for some kind of QGEP infiltration installations and some kind of QGEP special structures. + +- See ``vw_swmm_storages.sql`` for details. + +**Conduits** + +- QGEP_SWMM creates a conduit for each QGEP reach. + +- See ``vw_swmm_conduits.sql`` for details. + +**Pumps** + +- QGEP_SWMM creates a pump for each QGEP pump. When a curve ``qgep_od.hq_relation`` is liked to the pump it is exported as a SWMM curve. + +- See ``vw_swmm_pumps.sql`` and ``vs_swmm_curves.sql`` for details. + +**Orifices** + +No correspondance in QGEP. Orifices are not created from QGEP objects. An empty table is created + +- See ``vw_swmm_orifices.sql`` for details. + +**Weirs** + +- Are created from QGEP prank weir and leaping weir. + +- See ``vw_swmm_weirs.sql`` for details. + +**Outlets** + +No correspondance in QGEP. Outlets are not created from QGEP objects. + +- Copied from the template input file if exists. + +**Transects** + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +**Controls** + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +Quality +^^^^^^^ + +**Land uses** + +- QGEP_SWMM creates a SWMM land use kind for each QGEP planning zone kind. + +- See ``vw_swmm_landuses.sql`` + +**Pollutants** + +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +Curves +^^^^^^ +- Are created for pumps linked to a ``qgep_od.hq_relation`` and for wastewater structures linked to a ``qgep_od.hydr_geom_relation`` + +- See ``vw_swmm_curves.sql`` for details. + +Time series +^^^^^^^^^^^ +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +Time patterns +^^^^^^^^^^^^^ +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. + +Labels +^^^^^^ +No correspondance in QGEP. This parameter must be set by the user in the template ``.inp`` file or before running the simulation. + +- Copied from the template input file if exists. \ No newline at end of file diff --git a/en/qgep_swmm/QGEP-SWMM-data-requirements.rst b/en/qgep_swmm/QGEP-SWMM-data-requirements.rst index 748c232ba..af4407770 100644 --- a/en/qgep_swmm/QGEP-SWMM-data-requirements.rst +++ b/en/qgep_swmm/QGEP-SWMM-data-requirements.rst @@ -1,10 +1,13 @@ .. _QGEP-SWMM-data-requirements: QGEP-SWMM data requirements -================== +--------------------------- To run a sucessful simulation in SWMM the following minimal data has to be filled in to be matched to the swmm objects +JUNCTIONS and COORDINATES +^^^^^^^^^^^^^^^^^^^^^^^^^ + .. csv-table:: JUNCTIONS and COORDINATES :header: "SWMM attribute", "Description", "QGEP equivalent" :widths: 30, 50, 30 @@ -16,6 +19,8 @@ To run a sucessful simulation in SWMM the following minimal data has to be fille "Invert El.", "Invert elevation of the junction", "wastewater_node.bottom_level" "Max. Depth", "Maximum depth at the junction (i.e., the distance from the invert to the ground surface) (feet or meters). If zero, then the distance from the invert to the top of the highest connecting link will be used.", "Difference of cover.level minus wastewater_node.bottom_level" +CONDUITS +^^^^^^^^ .. csv-table:: CONDUITS :header: "SWMM attribute", "Description", "QGEP equivalent" @@ -32,6 +37,9 @@ To run a sucessful simulation in SWMM the following minimal data has to be fille "InletOffset", "Depth or elevation of the conduit invert above the node invert at the inlet end of the conduit", "reach_point_from.level minus from_wastewater_node.bottom_level" "OutletOffset", "Depth or elevation of the conduit invert above the node invert at the outlet end of the conduit ", "reach_point_to.level minus to_wastewater_node.bottom_level" +XSECTIONS +^^^^^^^^^ + .. csv-table:: XSECTIONS :header: "SWMM attribute", "Description", "QGEP equivalent" :widths: 30, 50, 30 diff --git a/en/qgep_swmm/QGEP-SWMM-installation.rst b/en/qgep_swmm/QGEP-SWMM-installation.rst index 7a1aec49b..a8fb56916 100644 --- a/en/qgep_swmm/QGEP-SWMM-installation.rst +++ b/en/qgep_swmm/QGEP-SWMM-installation.rst @@ -7,6 +7,9 @@ SWMM Installation ----------------- - Download and install `SWMM `_ + +QGIS configuration +------------------ - In QGIS, check that the path recorded in ``Preferences > Processing > Processing providers > QGEP > SWMM executable`` matches the path of the swmm executable (by default: ``C:/Program Files (x86)/EPA SWMM 5.1.013/swmm5.exe``) diff --git a/en/qgep_swmm/QGEP-SWMM-workflow.rst b/en/qgep_swmm/QGEP-SWMM-workflow.rst index 12cb43f07..6bae99c6c 100644 --- a/en/qgep_swmm/QGEP-SWMM-workflow.rst +++ b/en/qgep_swmm/QGEP-SWMM-workflow.rst @@ -6,19 +6,45 @@ QGEP-SWMM workflow Workflow -------- -1. Run ``SWMM Create Input``. It reads data from the QGEP views (schema ``qgep_swmm``) and generate an input file for SWMM. +Each step of the workflow is explained in details in next chapters. -2. Check ``.inp`` file. Its likely that the ``.inp`` file generated in the previous step contains errors or needs some parameters to be tuned. We recommand to first open the ``.inp`` file with the SWMM Graphical User Interface (GUI) to solve the errors. Similarly, if you need to tune the simulation parameters, you have to edit the ``.inp`` file with SWMM GUI. +Prepare and check the data +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- The function ``SWMM Set default coefficient of friction`` can be used to fill automatically default reach friction. -3. Run ``SWMM Execute``, it launches SWMM. Run it on a tested ``.inp`` file. It generates a report file ``.rpt`` which contains the summary and the full time series. Errors can also occur during the running time. +Generate a SWMM Export +^^^^^^^^^^^^^^^^^^^^^^ -4. Stores and map the results +Run ``SWMM Create Input``. It: - - **If you dont want to store the result in QGEP database**: Run ``SWMM Extract Results``. It parses the report file and generates three QGIS table layers from the summary. The user has to join the computed values with the geometries and map them. - - **If you want to store the results in QGEP and use the dedicated view for the mapping**: .Run ``SWMM Import Results``. It parses the report file. The results are imported in the measurements table, they populate a view dedicated for the mapping. +- reads simulation parameters from a template ``.inp`` file, +- reads data from the QGEP views (schema ``qgep_swmm``), +- generates an input file for SWMM (``.inp``). + +Check the Export +^^^^^^^^^^^^^^^ +Check generated ``.inp`` file. + +Its likely that the ``.inp`` file generated in the previous step contains errors or needs some parameters to be tuned. +We recommend to first open the ``.inp`` file with the SWMM Graphical User Interface (GUI). +Error summarized at the SWMM startup might highlight error in QGEP. Other errors can be solved directly in SWMM. + +If you need to tune the simulation parameters, you have to edit the ``.inp`` file with SWMM GUI. -Each step is explained in more details in the next chapters. +Run the simulation +^^^^^^^^^^^^^^^^^^ +Run ``SWMM Execute``, it launches SWMM. Run it on a tested ``.inp`` file. +It generates a report file ``.rpt`` which contains the summary and the full time series. +Errors can also occur during the running time. +Alternatively, you can run the simulation from the SWMM interface or with command line. + +Stores and map the Results +^^^^^^^^^^^^^^^^^^^^^^^^^^ + + - **If you dont want to store the result in QGEP database**: Run ``SWMM Extract Results``. It parses the report file and generates three QGIS table layers from the summary. The user has to join the computed values with the geometries and map them. + - **If you want to store the results in QGEP and use the dedicated view for the mapping**: .Run ``SWMM Import Results``. It parses the report file. The results are imported in the measurements table, they populate a view dedicated for the mapping. GEP project diff --git a/en/qgep_swmm/Execute.rst b/en/qgep_swmm/Run-SWMM-Simulation.rst similarity index 51% rename from en/qgep_swmm/Execute.rst rename to en/qgep_swmm/Run-SWMM-Simulation.rst index a4c5c860f..528578d75 100644 --- a/en/qgep_swmm/Execute.rst +++ b/en/qgep_swmm/Run-SWMM-Simulation.rst @@ -1,19 +1,25 @@ -.. _Execute: +.. _Run-SWMM-Simulation: -SWMM Execute -============ +Run SWMM Simulation +=================== +Run a simulation from SWMM interface +------------------------------------ +You can open the ``.inp`` file with SWMM and run the simulation from the interface. -Change simulation parameters ----------------------------- -From SWMM GUI you can set the simulation parameters (see `Change Simulation Parameters <./Change-simulation-parameters.html#change-simulation-parameters>`_). +Run a simulation with command line +---------------------------------- +.. code:: + + {EXEPATH}\swmm5.exe {INPUTPATH}\{INPUTFILENAME}.inp {OUTPUTPATH}\{REPORTFILENAME}.rpt {OUTPUTPATH}\{OUTPUTFILENAME}.out -QGEP plugin ------------ -The path to the SWMM executable must be set in the Processsing tools options. +Run a simulation with QGEP-SWMM +------------------------------- + +The path to the SWMM executable must be set in the Processsing tools options. The plugin will launch the command line in the background. Launch ``SWMM Execute``: diff --git a/en/qgep_swmm/SWMM.rst b/en/qgep_swmm/SWMM.rst index bb845e132..6eeb60cb7 100644 --- a/en/qgep_swmm/SWMM.rst +++ b/en/qgep_swmm/SWMM.rst @@ -12,6 +12,6 @@ SWMM was developed to help support local, state, and national stormwater managem The QGEP SWMM plugin allows to: * Wasily export network data in the SWMM Input format (\*.inp) -* Run SWMM directly from QGEP and +* Run SWMM directly from QGEP * Extract and take back the wanted SWMM results into QGEP -* And visualize them in different ways. +* Visualize them in different ways. diff --git a/en/qgep_swmm/index.rst b/en/qgep_swmm/index.rst index dd7e27f43..13b0c88bf 100644 --- a/en/qgep_swmm/index.rst +++ b/en/qgep_swmm/index.rst @@ -5,17 +5,14 @@ QGEP SWMM plugin .. toctree:: - :maxdepth: 3 + :maxdepth: 2 SWMM QGEP-SWMM-installation QGEP-SWMM-workflow - Create-Input - QGEP-SWMM-data-requirements - Check-Input - Execute - Extract-Results - Import-Results - Mapping - Change-simulation-parameters + Prepare-Data + Generate-SWMM-File + Check-SWMM-File + Run-SWMM-Simulation + Process-Results Developpers-Advanced-Users \ No newline at end of file From 75ebbe4eb7fbee966bdd04ff7932ff250a121634 Mon Sep 17 00:00:00 2001 From: Produit Date: Thu, 24 Nov 2022 15:40:22 +0100 Subject: [PATCH 2/4] reorganize and complete doc --- ...-Coefficient-Of-Friction.rst => Coefficient-Of-Friction.rst} | 2 +- en/qgep_swmm/Prepare-Data.rst | 2 +- en/qgep_swmm/Process-Results.rst | 2 +- en/qgep_swmm/QGEP-SWMM-workflow.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) rename en/qgep_swmm/{Populate-Coefficient-Of-Friction.rst => Coefficient-Of-Friction.rst} (97%) diff --git a/en/qgep_swmm/Populate-Coefficient-Of-Friction.rst b/en/qgep_swmm/Coefficient-Of-Friction.rst similarity index 97% rename from en/qgep_swmm/Populate-Coefficient-Of-Friction.rst rename to en/qgep_swmm/Coefficient-Of-Friction.rst index 1ba0a618d..9cd0b1a59 100644 --- a/en/qgep_swmm/Populate-Coefficient-Of-Friction.rst +++ b/en/qgep_swmm/Coefficient-Of-Friction.rst @@ -1,4 +1,4 @@ -.. _Populate-Coefficient-Of-Friction: +.. _Coefficient-Of-Friction: Coefficient of friction ----------------------- diff --git a/en/qgep_swmm/Prepare-Data.rst b/en/qgep_swmm/Prepare-Data.rst index 0c90382d3..7a5d59dad 100644 --- a/en/qgep_swmm/Prepare-Data.rst +++ b/en/qgep_swmm/Prepare-Data.rst @@ -8,4 +8,4 @@ Prepare Data .. include:: QGEP-SWMM-data-requirements.rst -.. include:: Populate-Coefficient-Of-Friction.rst \ No newline at end of file +.. include:: Coefficient-Of-Friction.rst \ No newline at end of file diff --git a/en/qgep_swmm/Process-Results.rst b/en/qgep_swmm/Process-Results.rst index 23719ab53..b84d5166b 100644 --- a/en/qgep_swmm/Process-Results.rst +++ b/en/qgep_swmm/Process-Results.rst @@ -2,7 +2,7 @@ .. _Process-Results: Process results -============== +=============== .. include:: Import-Results.rst diff --git a/en/qgep_swmm/QGEP-SWMM-workflow.rst b/en/qgep_swmm/QGEP-SWMM-workflow.rst index 6bae99c6c..7d31e565d 100644 --- a/en/qgep_swmm/QGEP-SWMM-workflow.rst +++ b/en/qgep_swmm/QGEP-SWMM-workflow.rst @@ -23,7 +23,7 @@ Run ``SWMM Create Input``. It: - generates an input file for SWMM (``.inp``). Check the Export -^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^ Check generated ``.inp`` file. Its likely that the ``.inp`` file generated in the previous step contains errors or needs some parameters to be tuned. From aea109c9f85005cf06a83a42ce79e1efb125349f Mon Sep 17 00:00:00 2001 From: Produit Date: Tue, 29 Nov 2022 15:03:34 +0100 Subject: [PATCH 3/4] add workflow schema --- en/qgep_swmm/Check-SWMM-File.rst | 6 +- en/qgep_swmm/Coefficient-Of-Friction.rst | 10 +- en/qgep_swmm/Mapping.rst | 10 +- en/qgep_swmm/Process-Results.rst | 6 +- en/qgep_swmm/QGEP-SWMM-Correspondances.rst | 17 +- en/qgep_swmm/QGEP-SWMM-workflow.rst | 2 + en/qgep_swmm/images/workflow.png | Bin 0 -> 94506 bytes en/qgep_swmm/images/workflow.svg | 507 +++++++++++++++++++++ en/qgep_swmm/index.rst | 6 +- 9 files changed, 541 insertions(+), 23 deletions(-) create mode 100644 en/qgep_swmm/images/workflow.png create mode 100644 en/qgep_swmm/images/workflow.svg diff --git a/en/qgep_swmm/Check-SWMM-File.rst b/en/qgep_swmm/Check-SWMM-File.rst index f74e82576..bb0c5f45a 100644 --- a/en/qgep_swmm/Check-SWMM-File.rst +++ b/en/qgep_swmm/Check-SWMM-File.rst @@ -93,9 +93,9 @@ Missing population densities ``qgep_od.catchment_area.population_density_current`` or ``qgep_od.catchment_area.population_density_planned`` are not filled. -Subcatchment and rain Gages ---------------------------- -If you want to attach every subcatchments to a single rain gage, edit the file with SWMM interface: +Subcatchments and rain Gauges +----------------------------- +If you want to attach every subcatchments to a single rain gauge, edit the file with SWMM interface: - Edit > Select All - Edit > Group Deletion > All Rain Gages diff --git a/en/qgep_swmm/Coefficient-Of-Friction.rst b/en/qgep_swmm/Coefficient-Of-Friction.rst index 9cd0b1a59..243ef7d3b 100644 --- a/en/qgep_swmm/Coefficient-Of-Friction.rst +++ b/en/qgep_swmm/Coefficient-Of-Friction.rst @@ -7,8 +7,11 @@ Coefficient of friction - If ``reach.coefficient_of_friction`` is set then it is converted (``1/coefficient_of_friction``) and exported to SWMM - Else if ``reach.wall_roughness`` and ``reach.clear_height`` are set, it is converted (``(1/(4 * SQRT(9.81)*POWER((32/re.clear_height/1000),(1/6))*LOG(((3.71*re.clear_height/1000)/(re.wall_roughness/1000)))))``) and exported. - - Else if ``reach.default_coefficient_of_friction`` is set then it is used + - Else if ``reach.swmm_default_coefficient_of_friction`` is set then it is used - Else a default value of ``0.01`` is set + - See ``vw_swmm_conduites.sql`` for details + + .. note:: The formula to convert from Strickler to Coolebrook is documented in *ATV-DVWK STANDARD ATV-DVWK-A 110E, Hydraulic Dimensioning and Performance Verification of Sewers and Drains September 2001* @@ -19,10 +22,11 @@ Populate default coefficient of friction ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The table ``qgep_swmm.reach_coefficient_of_friction`` contains default coefficient of Strickler for the reach materials. +The file ``../project/qml/reach_coefficient_of_friction.qml`` is the layer definition, that you can import in your QGIS project. If the default values don't match your needs you can edit them. -The function ``SWMM Set default coefficient of friction`` will put in ``qgep_od.reach.default_coefficient_of_friction`` these default values. +The function ``SWMM Set default coefficient of friction`` will put in ``qgep_od.reach.swmm_default_coefficient_of_friction`` these default values. You can choose if you want to overwrite or not the values existing in this attribute. Launch ``SWMM Set default coefficient of friction``: -- ``Overwrite existing default values``: If checked the values stored in ``default_coefficient_of_friction`` will be overwrited with new values. \ No newline at end of file +- ``Overwrite existing default values``: If checked the values stored in ``swmm_default_coefficient_of_friction`` will be overwrited with new values. \ No newline at end of file diff --git a/en/qgep_swmm/Mapping.rst b/en/qgep_swmm/Mapping.rst index a3b65167e..ca5d3efaa 100644 --- a/en/qgep_swmm/Mapping.rst +++ b/en/qgep_swmm/Mapping.rst @@ -1,12 +1,12 @@ .. _Mapping: Mapping -------- +======= .. _mapping-not-imported: Results are not imported in QGEP -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +-------------------------------- Use processing tool ``join attributes`` to add the results stored in the tables ``Node summary`` and ``Link summary`` to the tables ``qgep_od.vw_wastewater_node`` and ``qgep_od.vw_qgep_reach``. The mapping should be done on the attribute ``obj_id`` of the ``qgep_od`` tables and the attribute ``id`` of the summary tables. @@ -17,7 +17,7 @@ The mapping should be done on the attribute ``obj_id`` of the ``qgep_od`` tables .. _mapping-imported: Results are imported in QGEP -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +---------------------------- * Add the layers qgep_swmm.node_results and / or qgep_swmm.link_results to your QGIS project * Filter by the name of the simulation and the name of the parameter to show: Right click on the layer > filter > Expression: ``"swmm_simulation_name" = 'name of the simulation AND "swmm_parameter" = 'inflow'`` @@ -26,7 +26,9 @@ Two template QGIS files are provided in the plugin folder ``src\swmm_templates\* The project ``swmm_summary.qgs`` show how the summary indicators can be loaded in QGIS. The project ``swmm_full_report.qgs`` show how the full time series can be loaded in QGIS. You will need to adapt the services and the filters. Show the indicators evolving along time -“““““““““““““““““““““““““““““““““““““““ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + This manipulation only works with complete times series. Namely, you need to import the full results and not only the summary. **Play the simulation with Time Manager** diff --git a/en/qgep_swmm/Process-Results.rst b/en/qgep_swmm/Process-Results.rst index b84d5166b..501945bda 100644 --- a/en/qgep_swmm/Process-Results.rst +++ b/en/qgep_swmm/Process-Results.rst @@ -1,11 +1,9 @@ .. _Process-Results: -Process results -=============== +Import results +============== .. include:: Import-Results.rst .. include:: Extract-Results.rst - -.. include:: Mapping.rst diff --git a/en/qgep_swmm/QGEP-SWMM-Correspondances.rst b/en/qgep_swmm/QGEP-SWMM-Correspondances.rst index 9941e3318..c74b75d14 100644 --- a/en/qgep_swmm/QGEP-SWMM-Correspondances.rst +++ b/en/qgep_swmm/QGEP-SWMM-Correspondances.rst @@ -27,7 +27,7 @@ No correspondance in QGEP. This parameter must be set by the user in the templat Hydrology: ^^^^^^^^^^ -**Rain Gages:** +**Rain Gauges [Gages in SWMM]:** QGEP_SWMM creates one raingage for each subcatchment. @@ -70,7 +70,7 @@ By default: The subcatchment can be linked to an aquifer via the groundwater attribute. -See ``vw_swmm_subcatchments.sql``, ``vw_swmm_subarea.sql`` and ``vw_swmm_dwf.sql`` for details +See ``vw_swmm_subcatchments.sql``, ``vw_swmm_subareas.sql``, ``vw_swmm_dwf.sql`` and ``vw_swmm_coverages.sql`` for details. **Snow Packs** @@ -120,8 +120,11 @@ See ``vw_swmm_outfalls.sql`` for details. **Conduits** - QGEP_SWMM creates a conduit for each QGEP reach. - -- See ``vw_swmm_conduits.sql`` for details. +- Roughness is created from ``coefficient_of_friction``, ``wall_roughness`` or ``swmm_default_coefficient_of_friction`` (see: :ref:`Coefficient-Of-Friction`) +- QGEP profile type are matched to SWMM profile type, dimensions are computed from ``reach.clear_height`` and ``pipe_profile.height_width_ratio`` +- Custom pipe profile described by a curve are currently not exported + +- See ``vw_swmm_conduits.sql`` and ``vw_swmm_xsections.sql`` for details. **Pumps** @@ -137,15 +140,15 @@ No correspondance in QGEP. Orifices are not created from QGEP objects. An empty **Weirs** -- Are created from QGEP prank weir and leaping weir. +- Are created from QGEP prank weir (without H/Q relation) and leaping weir. - See ``vw_swmm_weirs.sql`` for details. **Outlets** -No correspondance in QGEP. Outlets are not created from QGEP objects. +No correspondance in QGEP. However, outlets are created to export QGEP prank weir having a H/Q relation. -- Copied from the template input file if exists. +- See ``vw_swmm_outlets.sql`` for details. **Transects** diff --git a/en/qgep_swmm/QGEP-SWMM-workflow.rst b/en/qgep_swmm/QGEP-SWMM-workflow.rst index 7d31e565d..d8a349349 100644 --- a/en/qgep_swmm/QGEP-SWMM-workflow.rst +++ b/en/qgep_swmm/QGEP-SWMM-workflow.rst @@ -6,6 +6,8 @@ QGEP-SWMM workflow Workflow -------- +.. figure:: images/workflow.png + Each step of the workflow is explained in details in next chapters. Prepare and check the data diff --git a/en/qgep_swmm/images/workflow.png b/en/qgep_swmm/images/workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..36a5c5cc20148de838ef1216fa4297c7daa9ce23 GIT binary patch literal 94506 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

nP~wi9f?txO)nBU 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Data preparation + Data correction + SWMM Export + SWMM simulation + Import of results + Mapping + + + + - Check wastewater structures connexions- Set reach roughness- Check catchment area connexions- ... + - Check wastewater structures connexions- Check missing attributes + - Check / update climatic default parameters- Check / update hydraulic default parameters- Run the simulation + - Import results in QGIS - Import results in QGEP + - Map hydraulic results + - Generate an .inp file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SWMM set default coefficient of friction + QGEP-SWMM functions + SWMM Create Input: +- Select subnetwork +- Select state (current, planned) + SWMM Extract ResultsSWMM Import Results + SWMM Execute + + + diff --git a/en/qgep_swmm/index.rst b/en/qgep_swmm/index.rst index 13b0c88bf..5c3e40015 100644 --- a/en/qgep_swmm/index.rst +++ b/en/qgep_swmm/index.rst @@ -1,7 +1,8 @@ .. _qgep_swmm: -QGEP SWMM plugin -================ +SWMM Data Exchange +================== +QGEP plugin is able to export a SWMM file (``.inp``) and import SWMM results. .. toctree:: @@ -15,4 +16,5 @@ QGEP SWMM plugin Check-SWMM-File Run-SWMM-Simulation Process-Results + Mapping Developpers-Advanced-Users \ No newline at end of file From 3c7b40ab65e0066496c65337ecf213c528711a8c Mon Sep 17 00:00:00 2001 From: Produit Date: Thu, 15 Dec 2022 08:53:29 +0100 Subject: [PATCH 4/4] rename hydraulic load --- en/qgep_swmm/Import-Results.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/qgep_swmm/Import-Results.rst b/en/qgep_swmm/Import-Results.rst index 3161a74a5..1423f2e31 100644 --- a/en/qgep_swmm/Import-Results.rst +++ b/en/qgep_swmm/Import-Results.rst @@ -49,7 +49,7 @@ Launch ``SWMM Import results``: - ``Import summary``: Only the summary is imported. - ``Import full results``: The full time series will be imported. Attention, if the report step is small, the import can take a long time. - ``Import Max HGL in qgep_od.wastewater_node.backflow_level`` -- ``Import Max/Full Flow in qgep_od.reach.hydraulic_load`` +- ``Import Max/Full Flow in qgep_od.reach.dss2020_hydraulic_load_current`` .. warning:: Attention, a report file created from the SWMM GUI don't contain the full time series but only the summary.