factory module
Define a class to create the proper Instrument.
- STRING_TO_INSTRUMENT_CLASS = { 'CurrentCalibre': <class 'multipac_testbench.instruments.step_constant.CurrentCalibre'>, 'CurrentProbe': <class 'multipac_testbench.instruments.current_probe.CurrentProbe'>, 'DiffPenning': <class 'multipac_testbench.instruments.penning.DiffPenning'>, 'ElectricFieldProbe': <class 'multipac_testbench.instruments.electric_field.field_probe.FieldProbe'>, 'FieldProbe': <class 'multipac_testbench.instruments.electric_field.field_probe.FieldProbe'>, 'ForwardPower': <class 'multipac_testbench.instruments.power.ForwardPower'>, 'FrequencySetpoint': <class 'multipac_testbench.instruments.step_constant.FrequencySetpoint'>, 'OpticalFibre': <class 'multipac_testbench.instruments.optical_fibre.OpticalFibre'>, 'Penning': <class 'multipac_testbench.instruments.penning.Penning'>, 'PolarizationSetpoint': <class 'multipac_testbench.instruments.step_constant.PolarizationSetpoint'>, 'PostTrigger': <class 'multipac_testbench.instruments.step_constant.PostTrigger'>, 'PowerSetpoint': <class 'multipac_testbench.instruments.step_constant.PowerSetpoint'>, 'PreTrigger': <class 'multipac_testbench.instruments.step_constant.PreTrigger'>, 'RPACurrent': <class 'multipac_testbench.instruments.rpa.RPACurrent'>, 'RPAPotential': <class 'multipac_testbench.instruments.rpa.RPAPotential'>, 'ReflectedPower': <class 'multipac_testbench.instruments.power.ReflectedPower'>, 'Sync': <class 'multipac_testbench.instruments.power.Sync'>, 'Trigger': <class 'multipac_testbench.instruments.step_constant.Trigger'>}
- class InstrumentFactory(freq_mhz=None, is_raw=False, create_virtual_instruments=True, commented_lines=None)[source]
Bases:
objectClass to create instruments.
- Parameters:
- run(name, df_data, class_name, column_header=None, header_key=None, **instruments_kw)[source]
Take the proper subclass, instantiate it and return it.
- Parameters:
name (
str) – Name of the instrument. For clarity, it should match the name of a column indf_datawhen it is possible.df_data (
DataFrame) – Content of the multipactor tests resultsCSVfile.class_name (
Literal['CurrentCalibre','CurrentProbe','DiffPenning','ElectricFieldProbe','FieldProbe','ForwardPower','FrequencySetpoint','OpticalFibre','Penning','PolarizationSetpoint','PostTrigger','PowerSetpoint','PreTrigger','RPACurrent','RPAPotential','ReflectedPower','Sync','Trigger']) – Name of the instrument class, as given in theTOMLfile.column_header (
str|list[str] |None, default:None) – Name of the column(s) from which the data of the instrument will be taken. The default is None, in which casecolumn_headeris set toname. In general it is not necessary to provide it. An exception is when severalCSVcolumns should be loaded in the instrument.header_key (
str|None, default:None) – Key to look for in a power stepCSVheader. Used to instantiateStepConstantin the context ofPowerStep.instruments_kw (
Any) – Other keyword arguments in theTOMLfile.
- Return type:
- Returns:
Instrument properly subclassed.
- run_virtual(instruments, is_global=False, **kwargs)[source]
Add the implemented
VirtualInstrument.- Parameters:
instruments (
Sequence[Instrument]) – TheInstrumentthat were already created. They are used to compute derived quantities, eg \(SWR\) and \(R\).is_global (
bool, default:False) – Tells if theIMeasurementPointfrom which this method is called is global. It allows to forbid creation of oneFrequencyor oneSWRinstrument perIMeasurementPoint.kwargs – Other keyword arguments passed to
_power_related().
- Return type:
- Returns:
The created virtual instruments.
Create
ReflectionCoefficientandSWR.- Parameters:
instruments (
Sequence[Instrument])- Return type:
Create
RPA.- Parameters:
instruments (
Sequence[Instrument])- Return type:
Create
DiffPenning.- Parameters:
instruments (
Sequence[Instrument])- Return type:
list[DiffPenning] |None
- _get_constructor(class_name)[source]
Get fail-safe proper instrument constructor.
- Parameters:
class_name (
Literal['CurrentCalibre','CurrentProbe','DiffPenning','ElectricFieldProbe','FieldProbe','ForwardPower','FrequencySetpoint','OpticalFibre','Penning','PolarizationSetpoint','PostTrigger','PowerSetpoint','PreTrigger','RPACurrent','RPAPotential','ReflectedPower','Sync','Trigger'])- Return type: