openswmm 5.3.0.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,732 @@
1
+ """
2
+ This type stub file was generated by cyright.
3
+ """
4
+
5
+ from enum import Enum
6
+ from typing import Dict, List, Optional, Tuple, Union
7
+ from cpython.datetime import datetime
8
+
9
+ class UnitSystem(Enum):
10
+ """
11
+ Enumeration of the unit system used in the output file.
12
+
13
+ :ivar US: US customary units.
14
+ :type US: int
15
+ :ivar SI: SI metric units.
16
+ :type SI: int
17
+ """
18
+ US = ...
19
+ SI = ...
20
+
21
+
22
+ class FlowUnits(Enum):
23
+ """
24
+ Enumeration of the flow units used in the simulation.
25
+
26
+ :ivar CFS: Cubic feet per second.
27
+ :type CFS: int
28
+ :ivar GPM: Gallons per minute.
29
+ :type GPM: int
30
+ :ivar MGD: Million gallons per day.
31
+ :type MGD: int
32
+ :ivar CMS: Cubic meters per second.
33
+ :type CMS: int
34
+ :ivar LPS: Liters per second.
35
+ :type LPS: int
36
+ :ivar MLD: Million liters per day.
37
+ :type MLD: int
38
+ """
39
+ CFS = ...
40
+ GPM = ...
41
+ MGD = ...
42
+ CMS = ...
43
+ LPS = ...
44
+ MLD = ...
45
+
46
+
47
+ class ConcentrationUnits(Enum):
48
+ """
49
+ Enumeration of the concentration units used in the simulation.
50
+
51
+ :ivar MG: Milligrams per liter.
52
+ :type MG: int
53
+ :ivar UG: Micrograms per liter.
54
+ :type UG: int
55
+ :ivar COUNT: Counts per liter.
56
+ :type COUNT: int
57
+ :ivar NONE: No units.
58
+ :type NONE: int
59
+ """
60
+ MG = ...
61
+ UG = ...
62
+ COUNT = ...
63
+ NONE = ...
64
+
65
+
66
+ class ElementType(Enum):
67
+ """
68
+ Enumeration of the SWMM element types.
69
+
70
+ :ivar SUBCATCHMENT: Subcatchment.
71
+ :type SUBCATCHMENT: int
72
+ :ivar NODE: Node.
73
+ :type NODE: int
74
+ :ivar LINK: Link.
75
+ :type LINK: int
76
+ :ivar SYS: System.
77
+ :type SYS: int
78
+ :ivar POLLUTANT: Pollutant.
79
+ :type POLLUTANT: int
80
+ """
81
+ SUBCATCHMENT = ...
82
+ NODE = ...
83
+ LINK = ...
84
+ SYSTEM = ...
85
+ POLLUTANT = ...
86
+
87
+
88
+ class TimeAttribute(Enum):
89
+ """
90
+ Enumeration of the report time related attributes.
91
+
92
+ :ivar REPORT_STEP: Report step size (seconds).
93
+ :type REPORT_STEP: int
94
+ :ivar NUM_PERIODS: Number of reporting periods.
95
+ :type NUM_PERIODS: int
96
+ """
97
+ REPORT_STEP = ...
98
+ NUM_PERIODS = ...
99
+
100
+
101
+ class SubcatchAttribute(Enum):
102
+ """
103
+ Enumeration of the subcatchment attributes.
104
+
105
+ :ivar RAINFALL: Subcatchment rainfall (in/hr or mm/hr).
106
+ :type RAINFALL: int
107
+ :ivar SNOW_DEPTH: Subcatchment snow depth (in or mm).
108
+ :type SNOW_DEPTH: int
109
+ :ivar EVAPORATION_LOSS: Subcatchment evaporation loss (in/hr or mm/hr).
110
+ :type EVAPORATION_LOSS: int
111
+ :ivar INFILTRATION_LOSS: Subcatchment infiltration loss (in/hr or mm/hr).
112
+ :type INFILTRATION_LOSS: int
113
+ :ivar RUNOFF_RATE: Subcatchment runoff flow (flow units).
114
+ :type RUNOFF_RATE: int
115
+ :ivar GROUNDWATER_OUTFLOW: Subcatchment groundwater flow (flow units).
116
+ :type GROUNDWATER_OUTFLOW: int
117
+ :ivar GW_TABLE: Subcatchment groundwater elevation (ft or m).
118
+ :type GW_TABLE: int
119
+ :ivar SOIL_MOISTURE: Subcatchment soil moisture content (-).
120
+ :type SOIL_MOISTURE: int
121
+ :ivar POLLUTANT_CONCENTRATION: Subcatchment pollutant concentration (-).
122
+ :type POLLUTANT_CONCENTRATION: int
123
+ """
124
+ RAINFALL = ...
125
+ SNOW_DEPTH = ...
126
+ EVAPORATION_LOSS = ...
127
+ INFILTRATION_LOSS = ...
128
+ RUNOFF_RATE = ...
129
+ GROUNDWATER_OUTFLOW = ...
130
+ GROUNDWATER_TABLE_ELEVATION = ...
131
+ SOIL_MOISTURE = ...
132
+ POLLUTANT_CONCENTRATION = ...
133
+
134
+
135
+ class NodeAttribute(Enum):
136
+ """
137
+ Enumeration of the node attributes.
138
+
139
+ :ivar INVERT_DEPTH: Node depth above invert (ft or m).
140
+ :type INVERT_DEPTH: int
141
+ :ivar HYDRAULIC_HEAD: Node hydraulic head (ft or m).
142
+ :type HYDRAULIC_HEAD: int
143
+ :ivar STORED_VOLUME: Node volume stored (ft3 or m3).
144
+ :type STORED_VOLUME: int
145
+ :ivar LATERAL_INFLOW: Node lateral inflow (flow units).
146
+ :type LATERAL_INFLOW: int
147
+ :ivar TOTAL_INFLOW: Node total inflow (flow units).
148
+ :type TOTAL_INFLOW: int
149
+ :ivar FLOODING_LOSSES: Node flooding losses (flow units).
150
+ :type FLOODING_LOSSES: int
151
+ :ivar POLLUTANT_CONCENTRATION: Node pollutant concentration (-).
152
+ :type POLLUTANT_CONCENTRATION: int
153
+ """
154
+ INVERT_DEPTH = ...
155
+ HYDRAULIC_HEAD = ...
156
+ STORED_VOLUME = ...
157
+ LATERAL_INFLOW = ...
158
+ TOTAL_INFLOW = ...
159
+ FLOODING_LOSSES = ...
160
+ POLLUTANT_CONCENTRATION = ...
161
+
162
+
163
+ class LinkAttribute(Enum):
164
+ """
165
+ Enumeration of the link attributes.
166
+
167
+ :ivar FLOW_RATE: Link flow rate (flow units).
168
+ :type FLOW_RATE: int
169
+ :ivar FLOW_DEPTH: Link flow depth (ft or m).
170
+ :type FLOW_DEPTH: int
171
+ :ivar FLOW_VELOCITY: Link flow velocity (ft/s or m/s).
172
+ :type FLOW_VELOCITY: int
173
+ :ivar FLOW_VOLUME: Link flow volume (ft3 or m3).
174
+ :type FLOW_VOLUME: int
175
+ :ivar CAPACITY: Link capacity (fraction of conduit filled).
176
+ :type CAPACITY: int
177
+ :ivar POLLUTANT_CONCENTRATION: Link pollutant concentration (-).
178
+ :type POLLUTANT_CONCENTRATION: int
179
+ """
180
+ FLOW_RATE = ...
181
+ FLOW_DEPTH = ...
182
+ FLOW_VELOCITY = ...
183
+ FLOW_VOLUME = ...
184
+ CAPACITY = ...
185
+ POLLUTANT_CONCENTRATION = ...
186
+
187
+
188
+ class SystemAttribute(Enum):
189
+ """
190
+ Enumeration of the system attributes.
191
+
192
+ :ivar AIR_TEMP: Air temperature (deg. F or deg. C).
193
+ :type AIR_TEMP: int
194
+ :ivar RAINFALL: Rainfall intensity (in/hr or mm/hr).
195
+ :type RAINFALL: int
196
+ :ivar SNOW_DEPTH: Snow depth (in or mm).
197
+ :type SNOW_DEPTH: int
198
+ :ivar EVAP_INFIL_LOSS: Evaporation and infiltration loss rate (in/day or mm/day).
199
+ :type EVAP_INFIL_LOSS: int
200
+ :ivar RUNOFF_FLOW: Runoff flow (flow units).
201
+ :type RUNOFF_FLOW: int
202
+ :ivar DRY_WEATHER_INFLOW: Dry weather inflow (flow units).
203
+ :type DRY_WEATHER_INFLOW: int
204
+ :ivar GROUNDWATER_INFLOW: Groundwater inflow (flow units).
205
+ :type GROUNDWATER_INFLOW: int
206
+ :ivar RDII_INFLOW: Rainfall Derived Infiltration and Inflow (RDII) (flow units).
207
+ :type RDII_INFLOW: int
208
+ :ivar DIRECT_INFLOW: Direct inflow (flow units).
209
+ :type DIRECT_INFLOW: int
210
+ :ivar TOTAL_LATERAL_INFLOW: Total lateral inflow; sum of variables 4 to 8 (flow units).
211
+ :type TOTAL_LATERAL_INFLOW: int
212
+ :ivar FLOOD_LOSSES: Flooding losses (flow units).
213
+ :type FLOOD_LOSSES: int
214
+ :ivar OUTFALL_FLOWS: Outfall flow (flow units).
215
+ :type OUTFALL_FLOWS: int
216
+ :ivar VOLUME_STORED: Volume stored in storage nodes (ft3 or m3).
217
+ :type VOLUME_STORED: int
218
+ :ivar EVAPORATION_RATE: Evaporation rate (in/day or mm/day).
219
+ :type EVAPORATION_RATE: int
220
+ """
221
+ AIR_TEMP = ...
222
+ RAINFALL = ...
223
+ SNOW_DEPTH = ...
224
+ EVAP_INFIL_LOSS = ...
225
+ RUNOFF_FLOW = ...
226
+ DRY_WEATHER_INFLOW = ...
227
+ GROUNDWATER_INFLOW = ...
228
+ RDII_INFLOW = ...
229
+ DIRECT_INFLOW = ...
230
+ TOTAL_LATERAL_INFLOW = ...
231
+ FLOOD_LOSSES = ...
232
+ OUTFALL_FLOWS = ...
233
+ VOLUME_STORED = ...
234
+ EVAPORATION_RATE = ...
235
+
236
+
237
+ class SWMMOutputException(Exception):
238
+ """
239
+ Exception class for SWMM output file processing errors.
240
+ """
241
+ def __init__(self, message: str) -> None:
242
+ """
243
+ Constructor to initialize the exception message.
244
+
245
+ :param message: Error message.
246
+ :type message: str
247
+ """
248
+ ...
249
+
250
+
251
+
252
+ class Output:
253
+ """
254
+ Class to read and process the output file generated by the SWMM simulation.
255
+
256
+ :cvar _output_file_handle: Handle to the SWMM output file.
257
+ :cvar _version: Version of the SWMM output file.
258
+ :cvar _units: Unit system used in the SWMM output file.
259
+ :cvar _flow_units: Flow units used in the SWMM output file.
260
+ :cvar _output_size: Size of the project in the SWMM output file.
261
+ :cvar _pollutant_units: Pollutant units used in the SWMM output file.
262
+ :cvar _start_date: Start date of the simulation in the SWMM output file.
263
+ :cvar _report_step: Report step size in seconds.
264
+ :cvar _num_periods: Number of reporting periods.
265
+ :cvar _times: Times of the simulation in the SWMM output file.
266
+ """
267
+ def __init__(self, output_file: str) -> None:
268
+ """
269
+ Constructor to open the SWMM output file.
270
+
271
+ :param output_file: Path to the SWMM output file.
272
+ :type output_file: str
273
+ """
274
+ ...
275
+
276
+ def __enter__(self): # -> Self@Output:
277
+ """
278
+ Method to return the SWMM output file instance.
279
+ """
280
+ ...
281
+
282
+ def __exit__(self, exc_type, exc_value, traceback): # -> None:
283
+ """
284
+ Method to close the SWMM output file instance.
285
+ """
286
+ ...
287
+
288
+ @property
289
+ def version(self) -> int:
290
+ """
291
+ Method to get the version of the SWMM output file.
292
+
293
+ :return: Version of the SWMM output file.
294
+ :rtype: str
295
+ """
296
+ ...
297
+
298
+ @property
299
+ def output_size(self) -> Dict[str, int]:
300
+ """
301
+ Method to get the size of the project in the SWMM output file.
302
+
303
+ :return: Size of the project in the SWMM output file.
304
+ :rtype: int
305
+ """
306
+ ...
307
+
308
+ @property
309
+ def units(self) -> Tuple[UnitSystem, FlowUnits, Optional[List[ConcentrationUnits]]]:
310
+ """
311
+ Method to get the unit system used in the SWMM output file.
312
+
313
+ :return: Tuple of the unit system, flow units, and pollutant units used in the SWMM output file.
314
+ :rtype: Tuple[UnitSystem, FlowUnits, Optional[List[ConcentrationUnits]]]
315
+ """
316
+ ...
317
+
318
+ @property
319
+ def flow_units(self) -> FlowUnits:
320
+ """
321
+ Method to get the flow units used in the SWMM output file.
322
+
323
+ :return: Flow units used in the SWMM output file.
324
+ :rtype: FlowUnits
325
+ """
326
+ ...
327
+
328
+ @property
329
+ def pollutant_units(self) -> List[ConcentrationUnits]:
330
+ """
331
+ Method to get the pollutant units used in the SWMM output file.
332
+
333
+ :return: Pollutant units used in the SWMM output file.
334
+ :rtype: List[ConcentrationUnits]
335
+ """
336
+ ...
337
+
338
+ @property
339
+ def start_date(self) -> datetime:
340
+ """
341
+ Method to get the start date of the simulation in the SWMM output file.
342
+
343
+ :return: Start date of the simulation in the SWMM output file.
344
+ :rtype: datetime
345
+ """
346
+ ...
347
+
348
+ @property
349
+ def times(self) -> List[datetime]:
350
+ """
351
+ Method to get the times of the simulation in the SWMM output file.
352
+
353
+ :return: Times of the simulation in the SWMM output file.
354
+ :rtype: List[datetime]
355
+ """
356
+ ...
357
+
358
+ def get_num_variables(self, element_type: ElementType) -> int:
359
+ """
360
+ Method to get the number of variables for an element type in the SWMM output file.
361
+
362
+ :param element_type: Type of the element.
363
+ :type element_type: int
364
+
365
+ :return: Number of variables for the element type.
366
+ :rtype: int
367
+ """
368
+ ...
369
+
370
+ def get_variable_code(self, element_type: ElementType, variable_index: int) -> int:
371
+ """
372
+ Method to get the variable code for an element type in the SWMM output file.
373
+
374
+ :param element_type: Type of the element.
375
+ :type element_type: int
376
+
377
+ :param variable_index: Index of the variable.
378
+ :type variable_index: int
379
+
380
+ :return: Variable code for the element type.
381
+ :rtype: int
382
+ """
383
+ ...
384
+
385
+ def get_variable_codes(self, element_type: ElementType) -> List[int]:
386
+ """
387
+ Method to get the variable codes for an element type in the SWMM output file.
388
+
389
+ :param element_type: Type of the element.
390
+ :type element_type: int
391
+
392
+ :return: Variable codes for the element type.
393
+ :rtype: List[int]
394
+ """
395
+ ...
396
+
397
+ def get_num_properties(self, element_type: ElementType) -> int:
398
+ """
399
+ Method to get the number of properties for an element type in the SWMM output file.
400
+
401
+ :param element_type: Type of the element.
402
+ :type element_type: int
403
+
404
+ :return: Number of properties for the element type.
405
+ :rtype: int
406
+ """
407
+ ...
408
+
409
+ def get_property_code(self, element_type: ElementType, property_index: int) -> int:
410
+ """
411
+ Method to get the property code for an element type in the SWMM output file.
412
+
413
+ :param element_type: Type of the element.
414
+ :type element_type: int
415
+
416
+ :param property_index: Index of the property.
417
+ :type property_index: int
418
+
419
+ :return: Property code for the element type.
420
+ :rtype: int
421
+ """
422
+ ...
423
+
424
+ def get_property_codes(self, element_type: ElementType) -> List[int]:
425
+ """
426
+ Method to get the property codes for an element type in the SWMM output file.
427
+
428
+ :param element_type: Type of the element.
429
+ :type element_type: int
430
+
431
+ :return: Property codes for the element type.
432
+ :rtype: List[int]
433
+ """
434
+ ...
435
+
436
+ def get_property_value(self, element_type: ElementType, element_index: int, property_code: int) -> float:
437
+ """
438
+ Method to get the property value for an element in the SWMM output file.
439
+
440
+ :param element_type: Type of the element.
441
+ :type element_type: int
442
+
443
+ :param element_index: Index of the element.
444
+ :type element_index: int
445
+
446
+ :param property_code: Property code.
447
+ :type property_code: int
448
+
449
+ :return: Property value for the element.
450
+ :rtype: float
451
+ """
452
+ ...
453
+
454
+ def get_property_values(self, element_type: ElementType, element_index: int) -> List[float]:
455
+ """
456
+ Method to get the property values for an element type in the SWMM output file.
457
+
458
+ :param element_type: Type of the element.
459
+ :type element_type: int
460
+
461
+ :param element_index: Element index.
462
+ :type element_index: int
463
+
464
+ :return: Property values for the element type.
465
+ :rtype: List[float]
466
+ """
467
+ ...
468
+
469
+ def get_time_attribute(self, time_attribute: TimeAttribute) -> int:
470
+ """
471
+ Method to get the temporal attributes of the simulation in the SWMM output file.
472
+
473
+ :param time_attribute: Temporal attribute.
474
+ :type time_attribute: TimeAttribute
475
+
476
+ :return: Temporal attributes of the simulation in the SWMM output file.
477
+ :rtype: int
478
+
479
+ """
480
+ ...
481
+
482
+ def get_element_name(self, element_type: ElementType, element_index: int) -> str:
483
+ """
484
+ Method to get the name of an element in the SWMM output file.
485
+
486
+ :param element_type: Type of the element.
487
+ :type element_type: int
488
+
489
+ :param indelement_indexex: Index of the element.
490
+ :type element_index: int
491
+
492
+ :return: Name of the element.
493
+ :rtype: str
494
+ """
495
+ ...
496
+
497
+ def get_element_names(self, element_type: ElementType) -> List[str]:
498
+ """
499
+ Method to get the names of all elements of a given type in the SWMM output file.
500
+
501
+ :param element_type: Type of the element.
502
+ :type element_type: int
503
+
504
+ :return: Names of all elements of the given type.
505
+ :rtype: List[str]
506
+ """
507
+ ...
508
+
509
+ def get_subcatchment_timeseries(self, element_index: Union[int, str], attribute: SubcatchAttribute, start_date_index: int = ..., end_date_index: int = ..., sub_index: int = ...) -> Dict[datetime, float]:
510
+ """
511
+ Method to get the time series data for a subcatchment attribute in the SWMM output file.
512
+
513
+ :param element_index: Index of the subcatchment.
514
+ :type element_index: int or str
515
+
516
+ :param attribute: Subcatchment attribute.
517
+ :type attribute: SubcatchAttribute
518
+
519
+ :param start_date_index: Start date index. Default is 0.
520
+ :type start_date_index: int
521
+
522
+ :param end_date_index: End date index. Default is the last date index.
523
+ :type end_date_index: int
524
+
525
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
526
+ :type sub_index: int
527
+
528
+ :return: Time series data for the subcatchment attribute.
529
+ :rtype: Dict[datetime, double]
530
+ """
531
+ ...
532
+
533
+ def get_node_timeseries(self, element_index: Union[int, str], attribute: NodeAttribute, start_date_index: int = ..., end_date_index: int = ..., sub_index: int = ...) -> Dict[datetime, float]:
534
+ """
535
+ Method to get the time series data for a node attribute in the SWMM output file.
536
+
537
+ :param element_index: Index of the node.
538
+ :type element_index: int or str
539
+
540
+ :param attribute: Node attribute.
541
+ :type attribute: NodeAttribute
542
+
543
+ :param start_date_index: Start date index. Default is 0.
544
+ :type start_date_index: int
545
+
546
+ :param end_date_index: End date index. Default is the last date index.
547
+ :type end_date_index: int
548
+
549
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
550
+ :type sub_index: int
551
+
552
+ :return: Time series data for the node attribute.
553
+ :rtype: Dict[datetime, double]
554
+ """
555
+ ...
556
+
557
+ def get_link_timeseries(self, element_index: Union[int, str], attribute: LinkAttribute, start_date_index: int = ..., end_date_index: int = ..., sub_index: int = ...) -> Dict[datetime, float]:
558
+ """
559
+ Method to get the time series data for a link attribute in the SWMM output file.
560
+
561
+ :param element_index: Index of the link.
562
+ :type element_index: int
563
+
564
+ :param attribute: Link attribute.
565
+ :type attribute: LinkAttribute
566
+
567
+ :param start_date_index: Start date index. Default is 0.
568
+ :type start_date_index: int
569
+
570
+ :param end_date_index: End date index. Default is the last date index.
571
+ :type end_date_index: int
572
+
573
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
574
+ :type sub_index: int
575
+
576
+ :return: Time series data for the link attribute.
577
+ :rtype: Dict[datetime, double]
578
+ """
579
+ ...
580
+
581
+ def get_system_timeseries(self, attribute: SystemAttribute, start_date_index: int = ..., end_date_index: int = ..., sub_index: int = ...) -> Dict[datetime, float]:
582
+ """
583
+ Method to get the time series data for a system attribute in the SWMM output file.
584
+
585
+ :param attribute: System attribute.
586
+ :type attribute: SystemAttribute
587
+
588
+ :param start_date_index: Start date index. Default is 0.
589
+ :type start_date_index: int
590
+
591
+ :param end_date_index: End date index. Default is the last date index.
592
+ :type end_date_index: int
593
+
594
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
595
+ :type sub_index: int
596
+
597
+ :return: Time series data for the system attribute.
598
+ :rtype: Dict[datetime, double]
599
+ """
600
+ ...
601
+
602
+ def get_subcatchment_values_by_time_and_attribute(self, time_index: int, attribute: SubcatchAttribute, sub_index: int = ...) -> Dict[str, float]:
603
+ """
604
+ Method to get the subcatchment values for all subcatchments for a given time index and attribute.
605
+
606
+ :param time_index: Time index.
607
+ :type time_index: int
608
+
609
+ :param attribute: Subcatchment attribute.
610
+ :type attribute: SubcatchAttribute
611
+
612
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
613
+ :type sub_index: int
614
+
615
+ :return: Subcatchment values for all subcatchments.
616
+ :rtype: Dict[str, float]
617
+ """
618
+ ...
619
+
620
+ def get_node_values_by_time_and_attribute(self, time_index: int, attribute: NodeAttribute, sub_index: int = ...) -> Dict[str, float]:
621
+ """
622
+ Method to get the node values for all nodes for a given time index and attribute.
623
+
624
+ :param time_index: Time index.
625
+ :type time_index: int
626
+
627
+ :param attribute: Node attribute.
628
+ :type attribute: NodeAttribute
629
+
630
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
631
+ :type sub_index: int
632
+
633
+ :return: Node values for all nodes.
634
+ :rtype: Dict[str, float]
635
+ """
636
+ ...
637
+
638
+ def get_link_values_by_time_and_attribute(self, time_index: int, attribute: LinkAttribute, sub_index: int = ...) -> Dict[str, float]:
639
+ """
640
+ Method to get the link values for all links for a given time index and attribute.
641
+
642
+ :param time_index: Time index.
643
+ :type time_index: int
644
+
645
+ :param attribute: Link attribute.
646
+ :type attribute: LinkAttribute
647
+
648
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
649
+ :type sub_index: int
650
+
651
+ :return: Link values for all links.
652
+ :rtype: Dict[str, float]
653
+ """
654
+ ...
655
+
656
+ def get_system_values_by_time_and_attribute(self, time_index: int, attribute: SystemAttribute, sub_index: int = ...) -> Dict[str, float]:
657
+ """
658
+ Method to get the system values for a given time index and attribute.
659
+
660
+ :param time_index: Time index.
661
+ :type time_index: int
662
+
663
+ :param attribute: System attribute.
664
+ :type attribute: SystemAttribute
665
+
666
+ :param sub_index: Attribute index for the subcatchment non enumerated attributes primarily for the pollutants
667
+ :type sub_index: int
668
+
669
+ :return: System values.
670
+ :rtype: Dict[str, float]
671
+ """
672
+ ...
673
+
674
+ def get_subcatchment_values_by_time_and_element_index(self, time_index: int, element_index: Union[int, str]) -> Dict[str, float]:
675
+ """
676
+ Method to get all attributes of a given subcatchment for specified time.
677
+
678
+ :param time_index: Time index.
679
+ :type time_index: int
680
+
681
+ :param element_index: Index of the subcatchment.
682
+ :type element_index: int or str
683
+
684
+ :return: Dictionary of subcatchment attributes.
685
+ :rtype: Dict[str, float]
686
+ """
687
+ ...
688
+
689
+ def get_node_values_by_time_and_element_index(self, time_index: int, element_index: Union[int, str]) -> Dict[str, float]:
690
+ """
691
+ Method to get all attributes of a given node for specified time.
692
+
693
+ :param time_index: Time index.
694
+ :type time_index: int
695
+
696
+ :param element_index: Index of the node.
697
+ :type element_index: int
698
+
699
+ :return: Dictionary of node attributes.
700
+ :rtype: Dict[str, float]
701
+ """
702
+ ...
703
+
704
+ def get_link_values_by_time_and_element_index(self, time_index: int, element_index: Union[int, str]) -> Dict[str, float]:
705
+ """
706
+ Method to get all attributes of a given link for specified time.
707
+
708
+ :param time_index: Time index.
709
+ :type time_index: int
710
+
711
+ :param element_index: Index of the link.
712
+ :type element_index: int, str
713
+
714
+ :return: Dictionary of link attributes.
715
+ :rtype: Dict[str, float]
716
+ """
717
+ ...
718
+
719
+ def get_system_values_by_time(self, time_index: int) -> Dict[str, float]:
720
+ """
721
+ Method to get all attributes of the system for specified time.
722
+
723
+ :param time_index: Time index.
724
+ :type time_index: int
725
+
726
+ :return: Dictionary of system attributes.
727
+ :rtype: Dict[str, float]
728
+ """
729
+ ...
730
+
731
+
732
+