reconstructed module
Define theoretical voltage along line.
Also define a virtual instrument to quantify error between theoretical voltage and voltage measured by probes.
Todo
voltage fitting, overload: they work but this not clean, not clean at all
- class Reconstructed(name, raw_data, e_field_probes, forward_power, reflection, freq_mhz, position=None, z_ohm=50.0, **kwargs)[source]
Bases:
IElectricFieldVoltage in the coaxial waveguide, fitted with e field probes.
- Parameters:
- property data: ndarray[tuple[Any, ...], dtype[float64]]
Give the calculated voltage at every pos and sample index.
Note
In contrary to most
Instrumentobjects, heredatais 2D. Axis are the following:data[sample_index, position_index]
- fit_voltage(full_output=True)[source]
Find out the proper voltage parameters.
Idea is the following: for every sample index we know the forward (injected) power \(P_f\), \(\Gamma\), and \(V_\mathrm{coax}\) at several pick-ups. We try to find \(\psi_0\) to verify:
\[|V_\mathrm{coax}(z)| = 2\sqrt{P_f Z} \sqrt{1 + |\Gamma|^2 + 2|\Gamma| \cos{(2\beta z + \psi_0)}}\]
- _abc_impl = <_abc._abc_data object at 0x7466ccaa59c0>
- _get_plot_methods(is_2d)
Give the proper plotting functions according to
is_2d.
- _plot_vs_position_for_1d(sample_index, raw=False, color=None, artist=None, axe=None, **kwargs)
Plot what instrument measured at its position, at a given time step.
Adapted to Pick-Up instruments.
- Parameters:
sample_index (
int) – Index of the measurements.raw (
bool, default:False) – If the raw data should be plotted.color (
tuple[float,float,float] |None, default:None) – Color of the plot.artist (
StemContainer|None, default:None) – If provided, the stem Artist object is updated rather than overwritten. It is mandatory for matplotlib animation to work.axe (
Axes|None, default:None) – Axe where the artist should be created. It must be provided ifartistis not given.
- Return type:
- Returns:
The plotted stem.
- _plot_vs_position_for_2d(sample_index, raw=False, color=None, axe=None, artist=None, **kwargs)
Plot what instrument measured at all positions, at a given time step.
Adapted to instruments with several positions, such as VirtualInstrument reproducing electric field envelope at all positions.
- Parameters:
sample_index (
int) – Index of the measurements.raw (
bool, default:False) – If the raw data should be plotted.color (
tuple[float,float,float] |None, default:None) – Color of the plot.artist (
Line2D|None, default:None) – If provided, the Line2D Artist object is updated rather than overwritten. It is mandatory for matplotlib animation to work.axe (
Axes|None, default:None) – Axe where the artist should be created. It must be provided ifartistis not given.
- Return type:
- Returns:
The plotted line.
- _post_treat(data)
Apply all post-treatment functions.
- property _raw_data: Series
Raw data as measured by the instrument.
For classic
Instrument, it should not change. ForVirtualInstrument, it may change when the data it is calculated changes.
- _raw_data_can_change = False
- _scatter_data_1d(axes, multipactor, xdata=None)
Plot
data, discriminating where there is multipactor or not.- Parameters:
- Return type:
- property _transfer_functions: list[Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]]
Give functions transforming acquisition voltage to physical quantity.
They are used when input files contain raw data, ie acquisition voltages.
- add_post_treater(post_treater)
Append a single post-treating function.
- copy()
Deep copy of the instrument.
- Return type:
Self
- classmethod from_pd_dataframe(name, raw_data, **kwargs)
Instantiate the object from several
CSVfile columns.- Parameters:
name (
str) – Name of the instrument.raw_data (
DataFrame) – Object holding several columns of theCSV.kwargs – Other keyword arguments passed to the
Instrument.
- Return type:
Self- Returns:
An instrument. Note that its
dataattribute will be a 2D array.
- growth_array(**kwargs)
Identify regions where the signal is increasing (“growing”).
This method analyzes a signal to determine where it exhibits a growing trend. It returns a float array of the same length as the input signal, where
1.0indicates a region of growth and-1.0otherwise.0.0means constant signal. A priori, will be useful for:Notes
Designed for non-noisy instruments such as
PowerSetpoint.- Parameters:
width – Width of the sample to determine increase.
no_change_value – Value to put in growth mask when we did not manage to find whether measured signal increased or not.
**kwargs – Additional keyword arguments passed to
array_is_growing().
- Return type:
- Returns:
Array where +1 means growing, -1 decreasing, 0 means constant.
- growth_mask(minimum_number_of_points=0, n_trailing_points_to_check=0, width=10, **kwargs)
Identify regions where the signal is increasing (“growing”).
This method analyzes a signal to determine where it exhibits a growing trend. It returns a boolean array of the same length as the input signal, where
Trueindicates a region of growth andFalseotherwise. A priori, will be useful for:PowerSetpointto determine power cycles. A fallback isForwardPower.RPA.
The method performs three main operations:
It uses a sliding-window heuristic (via
array_is_growing()) to detect growth.It removes short, isolated
Falsesegments, enforcing a minimum number of consecutiveTruevalues to be considered valid.It clears any trailing
Truevalues near the end of the array to prevent spurious detections due to edge effects.
- Parameters:
minimum_number_of_points (
int, default:0) – The minimum number of consecutiveTruevalues required to consider a region as growing. Shorter segments are suppressed.n_trailing_points_to_check (
int, default:0) – The number of points at the end of the signal to check and force toFalseif they form an isolated or uncertain growth pattern. Particulatly useful forForwardPowerto avoid detection of a new power cycle at the end of the test.width (
int, default:10) – Width of the sample to determine increase.**kwargs – Additional keyword arguments passed to
array_is_growing().
- Return type:
- Returns:
Boolean array indicating where the signal is growing.
Notes
The detection is influenced by the choice of parameters and the behavior of
array_is_growing().Trailing regions and short noise-like fluctuations are filtered out.
Todo
Consider adding post-processing to remove isolated
Truevalues.
- property post_treaters: list[Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]]
Get the list of the post-treating functions.
- property raw_data_as_pd: Series | DataFrame
Get the raw (untreated) data as a pandas object, without post-treating.
- register_callback(cb)
Register the callback function.
Callback functions are called when a post-treater is added to
Self. This is used whenVirtualInstrumentdata depends on some otherInstrumentdata. Currently used for:ForwardPower(updatesReflectionCoefficient)ReflectedPower(updatesReflectionCoefficient)ReflectionCoefficient(updatesSWR)
- remove_post_treater(post_treater=None, index=None)
Remove
post_treateror the post-treater at indexindex.
- replace(**overrides)
Copy with modified attributes.
- Return type:
Self
- _post_treaters: list[Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]]
- _callbacks: list[Callable[[], Series]]
Functions to call when a post-treater is added to current object.
See also
- reduction_info: ReductionInfo | None
Set by
PowerStep.to_single_values(). None until reduction occurs.
- name
Name of the instrument.
- position
The position of the instrument. If irrelevant (global diagnostic), must be set to
np.nan.
- _model(var, psi_0, beta, z_ohm=50.0)[source]
Give voltage for given set of parameters, at proper power and position.
- _power_to_volt(power, z_ohm=50.0)[source]
Convert power in \(\mathrm{W}\) to voltage in \(\mathrm{V}\).
- voltage_vs_position(pos, v_f, reflection, beta, psi_0)[source]
- Overloads:
pos (float), v_f (float), reflection (float), beta (float), psi_0 (float) → float
pos (NDArray[np.float64]), v_f (float), reflection (float), beta (float), psi_0 (float) → NDArray[np.float64]
Compute voltage in coaxial line at given position.
The equation is:
\[|V(z)| = |V_f| \sqrt{1 + |\Gamma|^2 + 2|\Gamma|\cos{(2\beta z + \psi_0)}}\]which comes from:
\[V(z) = V_f \mathrm{e}^{-j\beta z} + \Gamma V_f \mathrm{e}^{j\beta z}\]- Parameters:
pos (
float|ndarray[tuple[Any,...],dtype[double]]) – \(z\) position in \(\mathrm{m}\).v_f (
float) – Forward voltage \(V_f\) in \(\mathrm{V}\).gamma – Voltage reflexion coefficient \(\Gamma\).
beta (
float) – Propagation constant \(\beta\) in \(\mathrm{m^{-1}}\).psi_0 (
float) – Dephasing constant \(\psi_0\).reflection (
float)
- Returns:
\(V(z)\) at proper position in \(\mathrm{V}\).
- class FieldPowerError(name, raw_data, reconstructed, field_probe, rmse, **kwargs)[source]
Bases:
VirtualInstrumentStore relative error between a field probe and theoretical voltage.
It is defined for every field probe, at a specific position.
\[\epsilon_V = \frac{V_{theoretical} - V_{probe}}{V_{theoretical}}\]- Parameters:
name (
str)raw_data (
Series)reconstructed (
Reconstructed)field_probe (
FieldProbe)rmse (
float)
- _abc_impl = <_abc._abc_data object at 0x7466cbdd65c0>
- _get_plot_methods(is_2d)
Give the proper plotting functions according to
is_2d.
- _plot_vs_position_for_1d(sample_index, raw=False, color=None, artist=None, axe=None, **kwargs)
Plot what instrument measured at its position, at a given time step.
Adapted to Pick-Up instruments.
- Parameters:
sample_index (
int) – Index of the measurements.raw (
bool, default:False) – If the raw data should be plotted.color (
tuple[float,float,float] |None, default:None) – Color of the plot.artist (
StemContainer|None, default:None) – If provided, the stem Artist object is updated rather than overwritten. It is mandatory for matplotlib animation to work.axe (
Axes|None, default:None) – Axe where the artist should be created. It must be provided ifartistis not given.
- Return type:
- Returns:
The plotted stem.
- _plot_vs_position_for_2d(sample_index, raw=False, color=None, axe=None, artist=None, **kwargs)
Plot what instrument measured at all positions, at a given time step.
Adapted to instruments with several positions, such as VirtualInstrument reproducing electric field envelope at all positions.
- Parameters:
sample_index (
int) – Index of the measurements.raw (
bool, default:False) – If the raw data should be plotted.color (
tuple[float,float,float] |None, default:None) – Color of the plot.artist (
Line2D|None, default:None) – If provided, the Line2D Artist object is updated rather than overwritten. It is mandatory for matplotlib animation to work.axe (
Axes|None, default:None) – Axe where the artist should be created. It must be provided ifartistis not given.
- Return type:
- Returns:
The plotted line.
- _post_treat(data)
Apply all post-treatment functions.
- property _raw_data: Series
Raw data as measured by the instrument.
For classic
Instrument, it should not change. ForVirtualInstrument, it may change when the data it is calculated changes.
- _raw_data_can_change = True
- _scatter_data_1d(axes, multipactor, xdata=None)
Plot
data, discriminating where there is multipactor or not.- Parameters:
- Return type:
- property _transfer_functions: list[Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]]
Give functions transforming acquisition voltage to physical quantity.
They are used when input files contain raw data, ie acquisition voltages.
- add_post_treater(post_treater)
Append a single post-treating function.
- copy()
Deep copy of the instrument.
- Return type:
Self
- classmethod from_pd_dataframe(name, raw_data, **kwargs)
Instantiate the object from several
CSVfile columns.- Parameters:
name (
str) – Name of the instrument.raw_data (
DataFrame) – Object holding several columns of theCSV.kwargs – Other keyword arguments passed to the
Instrument.
- Return type:
Self- Returns:
An instrument. Note that its
dataattribute will be a 2D array.
- growth_array(**kwargs)
Identify regions where the signal is increasing (“growing”).
This method analyzes a signal to determine where it exhibits a growing trend. It returns a float array of the same length as the input signal, where
1.0indicates a region of growth and-1.0otherwise.0.0means constant signal. A priori, will be useful for:Notes
Designed for non-noisy instruments such as
PowerSetpoint.- Parameters:
width – Width of the sample to determine increase.
no_change_value – Value to put in growth mask when we did not manage to find whether measured signal increased or not.
**kwargs – Additional keyword arguments passed to
array_is_growing().
- Return type:
- Returns:
Array where +1 means growing, -1 decreasing, 0 means constant.
- growth_mask(minimum_number_of_points=0, n_trailing_points_to_check=0, width=10, **kwargs)
Identify regions where the signal is increasing (“growing”).
This method analyzes a signal to determine where it exhibits a growing trend. It returns a boolean array of the same length as the input signal, where
Trueindicates a region of growth andFalseotherwise. A priori, will be useful for:PowerSetpointto determine power cycles. A fallback isForwardPower.RPA.
The method performs three main operations:
It uses a sliding-window heuristic (via
array_is_growing()) to detect growth.It removes short, isolated
Falsesegments, enforcing a minimum number of consecutiveTruevalues to be considered valid.It clears any trailing
Truevalues near the end of the array to prevent spurious detections due to edge effects.
- Parameters:
minimum_number_of_points (
int, default:0) – The minimum number of consecutiveTruevalues required to consider a region as growing. Shorter segments are suppressed.n_trailing_points_to_check (
int, default:0) – The number of points at the end of the signal to check and force toFalseif they form an isolated or uncertain growth pattern. Particulatly useful forForwardPowerto avoid detection of a new power cycle at the end of the test.width (
int, default:10) – Width of the sample to determine increase.**kwargs – Additional keyword arguments passed to
array_is_growing().
- Return type:
- Returns:
Boolean array indicating where the signal is growing.
Notes
The detection is influenced by the choice of parameters and the behavior of
array_is_growing().Trailing regions and short noise-like fluctuations are filtered out.
Todo
Consider adding post-processing to remove isolated
Truevalues.
- property post_treaters: list[Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]]
Get the list of the post-treating functions.
- property raw_data_as_pd: Series | DataFrame
Get the raw (untreated) data as a pandas object, without post-treating.
- register_callback(cb)
Register the callback function.
Callback functions are called when a post-treater is added to
Self. This is used whenVirtualInstrumentdata depends on some otherInstrumentdata. Currently used for:ForwardPower(updatesReflectionCoefficient)ReflectedPower(updatesReflectionCoefficient)ReflectionCoefficient(updatesSWR)
- remove_post_treater(post_treater=None, index=None)
Remove
post_treateror the post-treater at indexindex.
- replace(**overrides)
Copy with modified attributes.
- Return type:
Self
- _post_treaters: list[Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]]]
- _callbacks: list[Callable[[], Series]]
Functions to call when a post-treater is added to current object.
See also
- reduction_info: ReductionInfo | None
Set by
PowerStep.to_single_values(). None until reduction occurs.
- name
Name of the instrument.
- position
The position of the instrument. If irrelevant (global diagnostic), must be set to
np.nan.
- classmethod from_instruments(reconstructed, field_probe, **kwargs)[source]
Create object from other instruments.
- Parameters:
reconstructed (
Reconstructed)field_probe (
FieldProbe)
- Return type:
Self
- compute_field_errors(reconstructed, field_probe)[source]
Compute relative error between the two instruments.
The theoretical electric field (calculated from measured forward and reflected powers) is taken as reference.
Also compute Root Mean Square Error.
- Parameters:
reconstructed (
Reconstructed)field_probe (
FieldProbe)
- Return type: