Forcings .bc file¶
The forcings .bc files contain forcing data for point locations, for example time series input for a boundary condition. Various quantities and function types are supported.
The forcings file is represented by the classes below.
Model¶
ForcingBase (DataBlockINIBasedModel)
pydantic-model
¶
validate(v)
classmethod
¶
Try to iniatialize subclass based on the function
field.
This field is compared to each function
field of the derived models of ForcingBase
.
The derived model with an equal function type will be initialized.
Exceptions:
Type | Description |
---|---|
ValueError |
When the given type is not a known structure type. |
Source code in hydrolib/core/io/bc/models.py
@classmethod
def validate(cls, v):
"""Try to iniatialize subclass based on the `function` field.
This field is compared to each `function` field of the derived models of `ForcingBase`.
The derived model with an equal function type will be initialized.
Raises:
ValueError: When the given type is not a known structure type.
"""
# should be replaced by discriminated unions once merged
# https://github.com/samuelcolvin/pydantic/pull/2336
if isinstance(v, dict):
for c in cls.__subclasses__():
if (
c.__fields__.get("function").default.lower()
== v.get("function", "").lower()
):
v = c(**v)
break
else:
raise ValueError(
f"Function of {cls.__name__} with name={v.get('name', '')} and function={v.get('function', '')} is not recognized."
)
return v
QuantityUnitPair (tuple)
¶
QuantityUnitPair(quantity, unit)
__getnewargs__(self)
special
¶
Return self as a plain tuple. Used by copy and pickle.
Source code in hydrolib/core/io/bc/models.py
def __getnewargs__(self):
'Return self as a plain tuple. Used by copy and pickle.'
return _tuple(self)
__new__(_cls, quantity: str, unit: str)
special
staticmethod
¶
Create new instance of QuantityUnitPair(quantity, unit)
__repr__(self)
special
¶
Return a nicely formatted representation string
Source code in hydrolib/core/io/bc/models.py
def __repr__(self):
'Return a nicely formatted representation string'
return self.__class__.__name__ + repr_fmt % self
TimeInterpolation (str, Enum)
¶
An enumeration.
VerticalInterpolation (str, Enum)
¶
An enumeration.
VerticalPositionType (str, Enum)
¶
An enumeration.