Source code for openlifu.bf.apod_methods.uniform
from __future__ import annotations
from dataclasses import dataclass
from typing import Annotated
import numpy as np
import pandas as pd
import xarray as xa
from openlifu.bf.apod_methods import ApodizationMethod
from openlifu.geo import Point
from openlifu.util.annotations import OpenLIFUFieldData
from openlifu.xdc import Transducer
[docs]
@dataclass
class Uniform(ApodizationMethod):
value: Annotated[float, OpenLIFUFieldData("Value", "Uniform apodization value between 0 and 1.")] = 1.0
"""Uniform apodization value between 0 and 1."""
def calc_apodization(self, arr: Transducer, target: Point, params: xa.Dataset, transform:np.ndarray | None=None):
return np.full(arr.numelements(), self.value)
[docs]
def to_table(self):
"""
Get a table of the apodization method parameters
:returns: Pandas DataFrame of the apodization method parameters
"""
records = [{"Name": "Type", "Value": "Uniform", "Unit": ""},
{"Name": "Value", "Value": self.value, "Unit": ""}]
return pd.DataFrame.from_records(records)