Working with Data Containers#
This guide demonstrates how a DataContainer
dynamically constructs its internal state as the user provides input.
Example: RMRB Automatic calculation#
Initially, the container is empty:
>>> interval = Interval(drillhole_id="Hole_01", _from=0., _to=1.)
>>> print(c)
Interval: 'None'
Drillhole: 'Hole_01'
From-To: 0.0 - 1.0 [m]
Parameters Defined: 0 # No parameters assigned
Metadata Defined: 0
After setting RQD
:
>>> c.setParameterValue("RQD", 75)
>>> print(c)
Interval: 'None'
Drillhole: 'Hole_01'
From-To: 0.0 - 1.0 [m]
Parameters Defined: 2
RQD: 75.0 # <- Check how RQD is now a defined parameter
RMRB_PRQD: 17.0 # <- RMRB_PRQD is automatically calculated
Metadata Defined: 0
See what happens if some other parameters are defined:
>>> interval.setParameterValue(parameter_id="StrongUCS", value=100)
>>> interval.setParameterValue(parameter_id="Spacing", value=0.1)
>>> interval.setParameterValue(parameter_id="Groundwater", value="Completely dry")
>>> interval.setParameterValue(parameter_id="RMRB_Jc", value=20)
>>> print(c)
Interval: 'None'
Drillhole: 'Hole_01'
From-To: 0.0 - 1.0 [m]
Parameters Defined: 10
Groundwater: Completely dry
RQD: 75.0
Spacing: 0.1
StrongUCS: 100.0
RMRB_Jc: 20.0
RMRB_PJw: 15.0 # <- RMRB_PJw is automatically calculated
RMRB_PRQD: 17.0 # <- RMRB_PRQD is automatically calculated
RMRB_PSpacing: 8.0 # <- RMRB_PSpacing is automatically calculated
RMRB_PUCS: 12.0 # <- RMRB_PUCS is automatically calculated
RMRB: 72.0 # <- Actual RMRB calculated!
Metadata Defined: 0