Architecture
This section aims to describe the architecture choices of the ultraspy lib, which is composed of the following classes:
and organized as followed:
ultraspy/
├── beamformers/
| ├─── beamformer.py
| ├─── setups.py
| ├─── options.py
├── probes/
| ├─── configs/
| ├─── probe.py
├── gpu/
├── cpu/
├── file_loaders/
├── helpers/
├── utils/
├── reader.py
├── metrics.py
The notable directories are:
beamformers/: Directory with all the implemented beamformers, it contains the parent class Beamformer, and some implementations (das.py, fdmas.py, ..), and also the setups and the options of the beamformer. More on this in the beamformer class section.probes/: Directory with the Probe classes and all the supported probes.gpu/: Directory with the common methods of ultraspy implemented in GPU (check out the dedicated section.).cpu/: Same asgpu/directory but with the CPU methods.reader.py: The reader file, that converts the data file into something understandable by the Beamformer class. More in the dedicated section.).metrics.py: The metrics file, with all the evaluation methods (SNR, CNR, PSL, …). More in the dedicated section.).file_loaders/: Directory with the loaders for the data file, given their extension.helpers/: Directory with the helpers for our methods.utils/: Some utility files.