Source code for openlifu.bf.focal_patterns.single

from __future__ import annotations

from dataclasses import dataclass

import pandas as pd

from openlifu.bf.focal_patterns import FocalPattern
from openlifu.geo import Point


[docs] @dataclass class SinglePoint(FocalPattern): """ Class for representing a single focus :ivar target_pressure: Target pressure of the focal pattern in Pa """
[docs] def get_targets(self, target: Point): """ Get the targets of the focal pattern :param target: Target point of the focal pattern :returns: List of target points """ return [target.copy()]
[docs] def num_foci(self): """ Get the number of foci in the focal pattern :returns: Number of foci (1) """ return 1
[docs] def to_table(self) -> pd.DataFrame: """ Get a table of the focal pattern parameters :returns: Pandas DataFrame of the focal pattern parameters """ records = [{"Name": "Type", "Value": "Single Point", "Unit": ""}, {"Name": "Target Pressure", "Value": self.target_pressure, "Unit": self.units}] return pd.DataFrame.from_records(records)