nenupy.io.tf_utils.TFPipelineParameters

class nenupy.io.tf_utils.TFPipelineParameters(*parameters)[source]

Bases: object

Class to handle the parameters used for the pipeline processing of the NenuFAR time-frequency data.

Examples

>>> from nenupy.io.tf_utils import TFPipelineParameters, _ValueParameter, _BooleanParameter

>>> parameters = TFPipelineParameters(
        _ValueParameter(
            name="param_1",
            default=1.,
            param_type=float,
            min_val=0.1,
            max_val=2.0
        ),
        _BooleanParameter(
            name="param_2",
            default=True
        )
    )

Parameters can be set, an error is sent if the value is outside the pre-defined range:

>>> parameters["param_1"] = 1.5
>>> parameters["param_1"]
1.5

>>> parameters["param_1"] = 3
ERROR: param_1's value (3.0) is greater than the max_val 2.0!
__init__(*parameters)[source]

Generate an instance of TFPipelineParameters.

Parameters:

*parameters (nenupy.io.tf_utils._TFParameter) – Parameter description.

Methods

__init__(*parameters)

Generate an instance of TFPipelineParameters.

copy()

Copy the TFPipelineParameters instance.

info()

Display information on each parameter and its current value.

reset()

Reset all parameters to their original values.

set_default(time_min, time_max, freq_min, ...)

Set the parameters to their default values.

copy()[source]

Copy the TFPipelineParameters instance.

Returns:

The copy.

Return type:

TFPipelineParameters

info()[source]

Display information on each parameter and its current value.

Returns:

The info message.

Return type:

str

Example

>>> print(parameters.info())
param_1: 1.0
param_2: True
reset()[source]

Reset all parameters to their original values.

Example

>>> print(parameters.info())
param_1: 1.0
param_2: True

>>> parameters["param_1"] = 1.5
>>> print(parameters.info())
param_1: 1.5
param_2: True

>>> parameters.reset()
>>> print(parameters.info())
param_1: 1.0
param_2: True
classmethod set_default(time_min, time_max, freq_min, freq_max, beams, channels, dt, df)[source]

Set the parameters to their default values. It auto generates every instance of nenupy.io.tf_utils._TFParameter for each available default parameter. Some informations are required in ordedr to put limits to these parameter values.

Parameters:
  • time_min (Time) – Minimal time that can be set to either 'tmin' or 'tmax'.

  • time_max (Time) – Maximal time that can be set to either 'tmin' or 'tmax'.

  • freq_min (Quantity) – Minimal frequency that can be set to either 'fmin' or 'fmax'.

  • freq_max (Quantity) – Maximal frequency that can be set to either 'fmin' or 'fmax'.

  • beams (list) – List of available beam indices.

  • channels (int) – Number of channels per subband.

  • dt (Quantity) – Time resolution.

  • df (Quantity) – Frequency resolution.

Returns:

Default parameters.

Return type:

TFPipelineParameters

Example

>>> from nenupy.io.tf_utils import TFPipelineParameters
>>> import astropy.units as u
>>> from astropy.time import Time

>>> default_params = TFPipelineParameters.set_default(
        time_min=Time("2024-01-01 12:00:00"),
        time_max=Time("2024-01-01 13:30:00"),
        freq_min=20*u.MHz,
        freq_max=80*u.MHz,
        beams=[0, 1],
        channels=32,
        dt=84 * u.ms,
        df=6 * u.kHz,
    )
>>> print(default_params.info())
channels: 32
dt: 84.0 ms
df: 6.0 kHz
tmin: 2024-01-01 12:00:00.000
tmax: 2024-01-01 13:30:00.000
fmin: 20.0 MHz
fmax: 80.0 MHz
beam: 0
dispersion_measure: None
rotation_measure: None
rebin_dt: None
rebin_df: None
remove_channels: None
skycoord: None
calib_dt: None
dreambeam_parallactic: True
stokes: I
ignore_volume_warning: False
overwrite: False
smooth_frequency_profile: False