Dynamic Influent¶
QSDsan: Quantitative Sustainable Design for sanitation and resource recovery systems
- This module is developed by:
Joy Zhang <joycheung1994@gmail.com>
This module is under the University of Illinois/NCSA Open Source License. Please refer to https://github.com/QSD-Group/QSDsan/blob/main/LICENSE.txt for license details.
- class qsdsan.sanunits._dynamic_influent.DynamicInfluent(ID='', ins: Sequence[AbstractStream] | None = None, outs: Sequence[AbstractStream] | None = (), data_file=None, by_mass=False, interpolator=None, derivative_approximator=None, thermo=None, init_with='WasteStream', isdynamic=True, load_data_kwargs={}, intpl_kwargs={}, **kwargs)¶
A fake SanUnit to generate a dynamic
WasteStream
at its outlet by interpolating time-series data.- Parameters:
ID (str, optional) – ID for the dynamic influent generator. The default is ‘’.
outs (
WasteStream
) – Dynamic influent.data_file (str, optional) – The file path for the time-series data. Acceptable file extensions are .xlsx, .xls, .csv, .tsv. If none specified, will load the default time-series data of dry-weather influent with components from ASM1.
by_mass (bool, optional) –
Whether time-series data indicate mass flowrates. If True, all columns assumed in kg/hr. If False, data are assumed to indicate concentrations [mg/L] and total volumetric flowrate [m3/d]. The default is False.
Note
When by_mass is set to True, the state array of the unit as well as the state array of its effluent by default indicate mass flow rates in g/d. This may not be consistent with downstream assumptions.
- interpolatorstr|int|callable, optional
Interpolation method to use. It can be a string (e.g., ‘slinear’, ‘quadratic’, ‘cubic’) or an integer within [1,5] to specify the order of a spline interpolation. Other strings will be passed on to
scipy.interpolate.interp1d
as the ‘kind’ argument. It can also be a class in scipy.interpolate that takes time-series data as input upon initiation. Interpolant that is not at least first-order differentiable is not recommended (e.g., linear interpolation). The default isscipy.interpolate.CubicSpline
.- derivative_approximatorcallable, optional
Function that returns derivative of the variable at given time. If none specified, will use the
derivative()
method of (if available) of the interpolant.- load_data_kwargsdict, optional
Keyword arguments for loading the data file with the
qsdsan.utils.load_data()
function. The default is {}.- intpl_kwargsdict, optional
Keyword arguments for initiating the interpolant. The default is {}.
- derivative(t)¶
Returns the estimated time derivatives at time t.
- property derivative_approximator¶
[callable] The function to estimate time derivatives.
- interpolant(t)¶
Returns the interpolated values at time t.
- property interpolator¶
[callable] The interpolation method.
- line: str = 'Dynamic influent'¶
class-attribute Name denoting the type of Unit class. Defaults to the class name of the first child class
- run()¶
Run mass and energy balance. This method also runs specifications user defined specifications unless it is being run within a specification (to avoid infinite loops).
See also
_run
,specifications
,add_specification
,add_bounded_numerical_specification