def __init__(self): Section.__init__(self) self.name = "Unnamed" """str: Name assigned to this Unit Hydrograph group""" self.rain_gage_name = '' """str: Name of the rain gage that supplies rainfall data to the unit hydrographs in the group""" self.value = [] """UnitHydrographEntry: each active combination of parameters for this unit hydrograph"""
def __init__(self): Section.__init__(self) ## Name of the Subcatchment defined in [SUBCATCHMENTS] where this loading occurs self.subcatchment_name = "None" ## Name of a pollutant self.pollutant_name = "None" ## Initial buildup of pollutant (lbs/acre or kg/hectare) self.initial_buildup = '0'
def __init__(self): Section.__init__(self) ## Curve name/ID/Label self.name = "Unnamed" # string ## Curve type self.curve_type = CurveType.PUMP1 ## X, Y Values self.curve_xy = [] # list of (x, y) tuples
def __init__(self): Section.__init__(self) self.name = "Unnamed" # string """Curve name/ID/Label""" self.curve_type = CurveType.PUMP1 """Curve type""" self.curve_xy = [] # list of (x, y) tuples """X, Y Values"""
def __init__(self): Section.__init__(self) ## Pattern name self.name = "" ## Pattern description self.description = "" ## Array of multipliers for this pattern self.multipliers = []
def __init__(self): Section.__init__(self) self.node = '' """str: name of node where external inflow enters.""" self.hydrograph_group = "None" """str: name of an RDII unit hydrograph group specified in the [HYDROGRAPHS] section""" self.sewershed_area = '0' """float: area of the sewershed which contributes RDII to the node (acres or hectares)"""
def __init__(self): Section.__init__(self) self.subcatchment_name = '' """Name of the Subcatchment defined in [SUBCATCHMENTS] where this loading occurs""" self.pollutant_name = '' """Name of a pollutant""" self.initial_buildup = '' """Initial buildup of pollutant (lbs/acre or kg/hectare)"""
def __init__(self): Section.__init__(self) self.node = "None" """str: name of node where external inflow enters.""" self.pollutant = "None" """Name of pollutant receiving treatment""" self.function = '' """str: mathematical function expressing treatment result in terms of pollutant concentrations,
def __init__(self): Section.__init__(self) self.hydraulics = HydraulicsOptions() """HydraulicsOptions: Hydraulics options""" self.quality = QualityOptions() """QualityOptions: Water quality options""" self.map = "" """str: Name of a file containing coordinates of the network's nodes, not written if not set"""
def __init__(self): Section.__init__(self) ## str: name of node where external inflow enters. self.node = "None" ## Name of pollutant receiving treatment self.pollutant = "None" ## str: mathematical function expressing treatment result in terms of pollutant concentrations, ## pollutant removals, and other standard variables. Starts with C for concentration or R for removal. self.function = ''
def __init__(self): Section.__init__(self) ## provides the X and Y coordinates of the lower-left and upper-right corners of the maps bounding rectangle self.dimensions = (0.0, 0.0, 0.0, 0.0) # real ## name of the file that contains the backdrop image self.file = "" # string self.units = "" # "None" # string self.offset = None # (0.0, 0.0) # real self.scaling = None # (0.0, 0.0) # real
def __init__(self): Section.__init__(self) self.name = '' """User-assigned name.""" self.porosity = '' """Volume of voids / total soil volume (volumetric fraction).""" self.wilting_point = '' """Soil moisture content at which plants cannot survive (volumetric fraction). """ self.field_capacity = '' """Soil moisture content after all free water has drained off (volumetric fraction).""" self.conductivity = '' """Soil's saturated hydraulic conductivity (in/hr or mm/hr).""" self.conductivity_slope = '' """Average slope of log(conductivity) versus soil moisture deficit (porosity minus moisture content) curve (unitless).""" self.tension_slope = '' """Average slope of soil tension versus soil moisture content curve (inches or mm).""" self.upper_evaporation_fraction = '' """Fraction of total evaporation available for evapotranspiration in the upper unsaturated zone.""" self.lower_evaporation_depth = '' """Maximum depth into the lower saturated zone over which evapotranspiration can occur (ft or m).""" self.lower_groundwater_loss_rate = '' """Rate of percolation from saturated zone to deep groundwater (in/hr or mm/hr).""" self.bottom_elevation = '' """Elevation of the bottom of the aquifer (ft or m).""" self.water_table_elevation = '' """Elevation of the water table in the aquifer at the start of the simulation (ft or m).""" self.unsaturated_zone_moisture = '' """Moisture content of the unsaturated upper zone of the aquifer at the start of the simulation (volumetric fraction) (cannot exceed soil porosity).""" self.upper_evaporation_pattern = '' """ID of monthly pattern of adjustments to upper evaporation fraction (optional)"""
def __init__(self): Section.__init__(self) self.flow_units = FlowUnits.CFS """FlowUnits: units in use for flow values""" self.head_loss = HeadLoss.H_W """HeadLoss: formula to use for computing head loss""" self.specific_gravity = 1.0 """Ratio of the density of the fluid being modeled to that of water at 4 deg. C""" self.viscosity = 1.0 """Kinematic viscosity of the fluid being modeled relative to that of water at 20 deg. C""" self.maximum_trials = 40 """Maximum number of trials used to solve network hydraulics at each hydraulic time step of a simulation""" self.accuracy = 0.001 """Prescribes the convergence criterion that determines when a hydraulic solution has been reached""" self.unbalanced = Unbalanced.STOP """Determines what happens if a hydraulic solution cannot be reached within the prescribed number of TRIALS""" self.unbalanced_continue = '' """If continuing after n trials, continue this many more trials with links held fixed""" self.default_pattern = "1" """Default demand pattern to be applied to all junctions where no demand pattern was specified""" self.demand_multiplier = 1.0 """Used to adjust the values of baseline demands for all junctions and all demand categories""" self.emitter_exponent = 0.5 """Specifies the power to which the pressure is raised when computing the flow issuing from an emitter""" self.check_frequency = 2 """Undocumented""" self.max_check = 10 """Undocumented""" self.damp_limit = 0.0 """Undocumented""" self.hydraulics = Hydraulics.SAVE """Either SAVE the current hydraulics solution to a file or USE a previously saved hydraulics solution""" """By default do not write this line""" self.hydraulics_file = "" """Hydraulics file to either use or save""" """By default do not write this line"""
def __init__(self): Section.__init__(self) self.name = "" """Name assigned to the land use""" self.street_sweeping_interval = '' """Days between street sweeping within the land use""" self.street_sweeping_availability = '' """Fraction of the buildup of all pollutants that is available for removal by sweeping""" self.last_swept = '' """Number of days since last swept at the start of the simulation"""
def __init__(self): Section.__init__(self) self.name = '' # string """Curve name/ID/Label""" self.description = '' # string """Curve description""" self.curve_type = CurveType.UNSET # PUMP, EFFICIENCY, VOLUME, or HEADLOSS """CurveType: Type of Curve""" self.curve_xy = [] # list of (x, y) tuples """X, Y Values"""
def __init__(self): Section.__init__(self) self.dimensions = ("0.0", "0.0", "10000.0", "10000.0") # lst:X_Southwest, Y_Southwest, X_northeast, Y_northeast """X and Y coordinates of the lower-left and upper-right corners of the map's bounding rectangle""" self.units = BackdropUnits.NONE # FEET/METERS/DEGREES/NONE """specifies the units that the map's dimensions are given in""" self.file = '' # str """Name of the file that contains the backdrop image""" self.offset = ("0.0", "0.0") # lst of str (X_offset, Y_offset) """Distance the upper-left corner of the backdrop image is offset from the map's bounding rectangle (X, Y)"""
def __init__(self): Section.__init__(self) self.temperature = [] """monthly temperature adjustments as plus or minus degrees F (degrees C)""" self.evaporation = [] """monthly evaporation adjustments as plus or minus in/day (mm/day)""" self.rainfall = [] """monthly rain adjustments as multipliers applied to precipitation rate""" self.soil_conductivity = [] """monthly soil_conductivity adjustments as multipliers applied to soil hydraulic conductivity"""
def __init__(self): Section.__init__(self) self.junction_name = '' """Junction this demand applies to""" self.base_demand = "0.0" # real, stored as string """Base demand (flow units)""" self.demand_pattern = '' # string """Demand pattern ID (optional)""" self.category = '' # string """Name of demand category preceded by a semicolon (optional)"""
def __init__(self): Section.__init__(self) ## Pattern name self.name = "Unnamed" ## Pattern type self.pattern_type = PatternType.MONTHLY ## Pattern description self.description = '' ## Array of multipliers for this pattern self.multipliers = []
def __init__(self): Section.__init__(self) self.subcatchment = '' """Subcatchment name""" self.curve_number = None """SCS Curve Number""" self.hydraulic_conductivity = '' """Soil saturated hydraulic conductivity (no longer used for curve number infiltration).""" self.dry_days = '' """Time it takes for fully saturated soil to dry (days)."""
def __init__(self): Section.__init__(self) ## How the inertial terms in the Saint Venant momentum equation ## will be handled under dynamic wave flow routing self.inertial_damping = InertialDamping.PARTIAL ## Which condition is checked to determine if flow in a conduit ## is supercritical and should thus be limited to the normal flow self.normal_flow_limited = NormalFlowLimited.BOTH ## Establishes whether the Hazen-Williams (H-W) or the Darcy-Weisbach (D-W) equation will be used to ## compute friction losses for pressurized flow in conduits that have been assigned a Circular Force ## Main cross-section shape. The default is H-W. self.force_main_equation = ForceMainEquation.H_W ## The EXTRAN method continues to use the traditional Surcharge Algorithm to update the head at surcharged nodes. ## The new SLOT option attaches a Preissmann Slot to closed conduits flowing more than 98.5% full that eliminates ## the need to switch to the Surcharge Algorithm for surcharged nodes. self.surcharge_method = SurchargeMethod.EXTRAN ## Time step, in seconds, used to lengthen conduits under ## dynamic wave routing, so that they meet the ## Courant stability criterion under full-flow conditions self.lengthening_step = '0' ## Safety factor applied to a variable time step computed for each ## time period under dynamic wave flow routing self.variable_step = '0.75' ## Minimum surface area used at nodes when computing ## changes in water depth under dynamic wave routing self.min_surface_area = '12.557' ## The maximum number of trials allowed during a time step to reach convergence ## when updating hydraulic heads at the conveyance system's nodes. The default value is 8. self.max_trials = '8' ## Difference in computed head at each node between successive trials below ## which the flow solution for the current time step is assumed to have converged. ## The default tolerance is 0.005 ft (0.0015 m). self.head_tolerance = '0.005' ## Smallest time step allowed when variable time steps are used for dynamic ## wave flow routing. The default value is 0.5 seconds. self.minimum_step = '0.5' ## Number of parallel computing threads to use for dynamic wave flow routing ## on machines equipped with multi-core processors. self.threads = '1'
def __init__(self): Section.__init__(self) self.node = "None" """str: name of node where external inflow enters.""" self.constituent = "FLOW" """str: Name of constituent (pollutant) or FLOW""" self.average = '0.0' """str: Average (or baseline) value of the dry weather inflow of the constituent in the relevant units""" self.time_patterns = [] """str: ID of time pattern used to allow the dry weather flow to vary in a periodic fashion"""
def __init__(self): Section.__init__(self) ## Subcatchment name self.subcatchment = "None" ## Soil capillary suction (in or mm). self.suction = '0.0' ## Soil saturated hydraulic conductivity (in/hr or mm/hr). self.hydraulic_conductivity = '0.0' ## Initial soil moisture deficit (volume of voids / total volume). self.initial_moisture_deficit = '0.0'
def __init__(self): Section.__init__(self) ## Subcatchment name self.subcatchment = "None" ## SCS Curve Number self.curve_number = "None" ## Soil saturated hydraulic conductivity (no longer used for curve number infiltration). self.hydraulic_conductivity = '0' ## Time it takes for fully saturated soil to dry (days). self.dry_days = '0.0'
def __init__(self, subcatchment_name='', land_use_name='', percent_subcatchment_area=''): Section.__init__(self) ## Name of the Subcatchment defined in [SUBCATCHMENTS] where this coverage occurs self.subcatchment_name = subcatchment_name ## land use name from [LANDUSE] of this coverage self.land_use_name = land_use_name ## percent of subcatchment area covered by this land use self.percent_subcatchment_area = percent_subcatchment_area
def __init__(self): Section.__init__(self) self.name = "Unnamed" """Pattern name""" self.pattern_type = PatternType.MONTHLY """Pattern type""" self.description = '' """Pattern description""" self.multipliers = [] """Array of multipliers for this pattern"""
def __init__(self): Section.__init__(self) self.dimensions = (0.0, 0.0, 0.0, 0.0) # real """ Coordinates of the map extent: X1 lower-left X coordinate of full map extent Y1 lower-left Y coordinate of full map extent X2 upper-right X coordinate of full map extent Y2 upper-right Y coordinate of full map extent """ self.units = MapUnits.NONE """map units"""
def __init__(self): Section.__init__(self) self.name = '' """Transect Name""" self.n_left = '0' # Manning's n of left overbank portion of channel. Use 0 if no change from previous NC line. self.n_right = '0' # Manning's n of right overbank portion of channel. Use 0 if no change from previous NC line. self.n_channel = '0' # Manning's n of main channel portion of channel. Use 0 if no change from previous NC line. self.overbank_left = '0' # station position which ends the left overbank portion of the channel (ft or m). self.overbank_right = '0' # station position which begins the right overbank portion of the channel (ft or m). self.stations_modifier = '0' # factor by which distances between stations should be multiplied to increase (or decrease) the width of the channel (enter 0 if not applicable). self.elevations_modifier = '0' # amount added (or subtracted) from the elevation of each station (ft or m). self.meander_modifier = '0' # the ratio of the length of a meandering main channel to the length of the overbank area that surrounds it (use 0 if not applicable). self.stations = [] # list of (station, elevation) pairs
def __init__(self): Section.__init__(self) ## Junction this demand applies to self.junction_name = '' ## Base demand (flow units) self.base_demand = "0.0" # real, stored as string ## Demand pattern ID (optional) self.demand_pattern = '' # string self.demand_pattern_object = None ## Name of demand category preceded by a semicolon (optional) self.category = '' # string
def __init__(self): Section.__init__(self) self.name = "" ## start date self.start_date = "01/01/1900" ## start time self.start_time = "00:00" ## end date self.end_date = "12/31/2000" ## end time self.end_time = "23:00"