API Reference - Sewer
This section of the documentation provides a reference for the API of the nodes.sewer module.
Created on Mon Nov 15 14:20:36 2021.
@author: bdobson Converted to totals on 2022-05-03
EnfieldFoulSewer
Bases: Sewer
Source code in wsimod/nodes/sewer.py
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 |
|
__init__(name, capacity=0, pipe_time=0, pipe_timearea={0: 1}, chamber_area=1, chamber_floor=10, data_input_dict={})
Alternate legacy sewer class...
I dont think this is needed any more.
Source code in wsimod/nodes/sewer.py
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 |
|
make_discharge()
Source code in wsimod/nodes/sewer.py
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 |
|
Sewer
Bases: Node
Source code in wsimod/nodes/sewer.py
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 |
|
__init__(name, capacity=0, pipe_time=0, pipe_timearea={0: 1}, chamber_area=1, chamber_floor=10, data_input_dict={})
Sewer node that has a QueueTank and storage capacity. Think carefully about parameterising this tank, because of course the amount of water that can flow through a sewer in a timestep is different in reality than in a.
steady state (e.g., a sewer that can handle a peak of 6m3/s in practice could not handle 6 * 86400 m3 of water in a day because that water does not flow uniformly over the day).
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name
|
str
|
node name |
required |
capacity
|
float
|
Sewer tank capacity. Defaults to 0. |
0
|
pipe_time
|
float
|
Number of timesteps to spend in the queue of the sewer tank. Defaults to 0. |
0
|
pipe_timearea
|
dict
|
Time area diagram that enables flows to take a range of different durations to 'traverse' the tank. The keys of the dict are the number of timesteps while the values are the proportion of flow. E.g., {0 : 0.7, 1 : 0.3} means 70% of flow takes 0 timesteps and 30% takes 1 timesteps. |
{0: 1}
|
chamber_area
|
float
|
Sewer tank area. Defaults to 1. |
1
|
chamber_floor
|
float
|
Sewer tank datum. Defaults to 10. |
10
|
data_input_dict
|
dict
|
Dictionary of data inputs relevant for the node (though I don't think it is used). Defaults to {}. |
{}
|
NOTE that currently the queuetank either applies the pipe_timearea (push_set_land) OR the pipe_time (push_set_sewer). Though this behaviour could be changed by setting the number_of_timesteps property to pipe_time of the sewer_tank and removing the pipe_time setting in push_set_sewer.
Functions intended to call in orchestration
make_discharge
Key assumptions
- Sewer networks can be represented in an aggregated manner, where the behaviour of collections of manholes/pipes can be captured in a single component.
- Travel time of water received from either
land.py/Land
objects ordemand.py/Demand
objects is assumed to be received as a non-point source and thus can be represented with the time-area method. - Travel time of water from an upstream
Sewer
object has a fixed travel time through the node. - The flow capacity of sewer network can be represented as with a
Tank
. - The
Sewer
object is not currently biochemically active.
Input data and parameter requirements
pipe_timearea
is a dictionary containing the timearea diagram. Units: duration of flow (in timesteps) and proportion of flowpipe_time
describes the travel time of water received from upstreamSewer
objects. Units: number of timestepscapacity
,chamber_area
,chamber_datum
describe the dimensions of theTank
that controls flow. Units: cubic metres, squared metres, metres
Source code in wsimod/nodes/sewer.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
|
apply_overrides(overrides={})
Apply overrides to the sewer.
Enables a user to override any of the following parameters: capacity, chamber_area, chamber_floor, pipe_time, pipe_timearea.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
overrides
|
dict
|
Dictionary of overrides. Defaults to {}. |
{}
|
Source code in wsimod/nodes/sewer.py
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
|
end_timestep()
Overwrite end_timestep behaviour to update tank variables.
Source code in wsimod/nodes/sewer.py
241 242 243 |
|
make_discharge()
Function to trigger downstream sewer flow.
Updates sewer tank travel time, pushes to WWTW, then sewer, then CSO. May flood land if, after these attempts, the sewer tank storage is above capacity.
Source code in wsimod/nodes/sewer.py
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
|
push_check_sewer(vqip=None)
Generic push check, simply looks at excess.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vqip
|
dict
|
A VQIP that can be used to limit the volume in the return value (only volume key is used). Defaults to None. |
None
|
Returns:
Name | Type | Description |
---|---|---|
excess |
dict
|
Sewer tank excess |
Source code in wsimod/nodes/sewer.py
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
|
push_set_land(vqip)
Push request that applies pipe_timearea (see init for description). As with push_set_sewer, push is also forced. Used to receive flow from land or demand that is assumed to occur widely across some kind of sewer catchment.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vqip
|
dict
|
A VQIP amount to be pushed |
required |
Returns:
Type | Description |
---|---|
dict
|
A VQIP amount that was not received |
Source code in wsimod/nodes/sewer.py
178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
|
push_set_sewer(vqip)
Generic push request setting that implements basic queue travel time (it does NOT implement timearea travel time). Updates the sewer tank storage. Assumes that the inflow arc has accurately calculated capacity with push_check_sewer, thus the water is forced.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vqip
|
dict
|
A VQIP amount of water to push |
required |
Returns:
Type | Description |
---|---|
dict
|
A VQIP amount of water that was not received |
Source code in wsimod/nodes/sewer.py
163 164 165 166 167 168 169 170 171 172 173 174 175 176 |
|
reinit()
Call Tank reinit.
Source code in wsimod/nodes/sewer.py
245 246 247 |
|