Base Parameter#
A BaseParameter represents a meaningful geotechnical quantity, such as RQD
, UCS
, or IRMR
,
which can be stored, processed, and visualized consistently across the system.
The BaseParameter class is an abstract interface. Any concrete subclass must implement the following methods:
@staticmethod
def createRecord(value: Any) -> BaseRecord: ...
@staticmethod
def createHistogram(
values: Union[List, np.ndarray],
weights: Optional[Union[List, np.ndarray]] = None
) -> Histogram: ...
This ensures that each parameter knows how to:
Construct a typed
BaseRecord
from a given value.Generate a corresponding histogram representation.
While BaseParameter itself is not instantiable, its subclasses are designed to act as dynamic components when attached to a DataContainer.
For example, :ref:RMRB <rmrb> is a parameter typically defined over a drillhole interval. If :ref:RQD <rqd> is assigned to that interval, then the subcomponent $P(mathrm{RQD})$ can be computed automatically, as the necessary dependency is now available.
This dynamic behavior allows parameters to observe changes in other values and to compute derived outputs once their required inputs are satisfied.