load_cells¶
- pydantic model aind_behavior_services.calibration.load_cells.CalibrationLogic[source]¶
Bases:
AindBehaviorTaskLogicModel
Load cells operation control model that is used to run a calibration data acquisition workflow
- Config:
extra: str = forbid
validate_assignment: bool = True
validate_defaults: bool = True
strict: bool = True
str_strip_whitespace: bool = True
- Fields:
- Validators:
coerce_version
»version
- field task_parameters: CalibrationParameters [Required][source]¶
- pydantic model aind_behavior_services.calibration.load_cells.CalibrationParameters[source]¶
Bases:
TaskParameters
- Config:
extra: str = allow
validate_assignment: bool = True
validate_defaults: bool = True
strict: bool = True
str_strip_whitespace: bool = True
- Fields:
- pydantic model aind_behavior_services.calibration.load_cells.CalibrationRig[source]¶
Bases:
AindBehaviorRigModel
- Fields:
- Validators:
coerce_version
»version
- pydantic model aind_behavior_services.calibration.load_cells.LoadCellCalibration[source]¶
Bases:
BaseModel
- pydantic model aind_behavior_services.calibration.load_cells.LoadCells[source]¶
Bases:
HarpLoadCells
- field calibration: LoadCellsCalibration | None = None[source]¶
- pydantic model aind_behavior_services.calibration.load_cells.LoadCellsCalibration[source]¶
Bases:
Calibration
Load cells calibration class
- Fields:
- field description: Literal['Calibration of the load cells system'] = 'Calibration of the load cells system'[source]¶
- field input: LoadCellsCalibrationInput [Required][source]¶
- field output: LoadCellsCalibrationOutput [Required][source]¶
- pydantic model aind_behavior_services.calibration.load_cells.LoadCellsCalibrationInput[source]¶
Bases:
BaseModel
- field channels: Dict[int, LoadCellCalibration] = {}[source]¶
- pydantic model aind_behavior_services.calibration.load_cells.LoadCellsCalibrationOutput[source]¶
Bases:
BaseModel
- Fields:
Example¶
import datetime
import os
from aind_behavior_services.base import get_commit_hash
from aind_behavior_services.calibration import load_cells as lc
from aind_behavior_services.session import AindBehaviorSessionModel
lc0 = lc.LoadCellCalibration(measured_offset={0: 0.1, 1: 0.2}, measured_weight=[(0.1, 0.1), (0.2, 0.2)])
lc1 = lc.LoadCellCalibration(measured_offset={0: 0.1, 1: 0.2}, measured_weight=[(0.1, 0.1), (0.2, 0.2)])
lc_calibration_input = lc.LoadCellsCalibrationInput(channels={0: lc0, 1: lc1})
lc_calibration_output = lc.LoadCellsCalibrationOutput(
offset={0: 0, 1: 0},
baseline={0: 0, 1: 0},
weight_lookup={0: (0, 0), 1: (0, 0)},
)
calibration = lc.LoadCellsCalibration(
input=lc_calibration_input,
output=lc_calibration_output,
device_name="LoadCells",
calibration_date=datetime.datetime.now(),
)
calibration_logic = lc.CalibrationLogic(
task_parameters=lc.CalibrationParameters(channels=[0, 1], offset_buffer_size=10)
)
calibration_session = AindBehaviorSessionModel(
root_path="C:\\Data",
remote_path=None,
allow_dirty_repo=False,
experiment="LoadCellsCalibration",
date=datetime.datetime.now(),
subject="LoadCells",
experiment_version="load_cells",
commit_hash=get_commit_hash(),
)
rig = lc.CalibrationRig(
load_cells=lc.LoadCells(port_name="COM4"),
rig_name="LoadCellsRig",
)
seed_path = "local/load_cells_{suffix}.json"
os.makedirs(os.path.dirname(seed_path), exist_ok=True)
with open(seed_path.format(suffix="calibration_logic"), "w") as f:
f.write(calibration_logic.model_dump_json(indent=3))
with open(seed_path.format(suffix="session"), "w") as f:
f.write(calibration_session.model_dump_json(indent=3))
with open(seed_path.format(suffix="rig"), "w") as f:
f.write(rig.model_dump_json(indent=3))