nenupy.beamlet.sstdata


SST Data

The most basic data product of NenuFAR are the Spectral STatistics, also known as SST data. They are computed and delivered by the LaNewBa receiver which digitizes \(96 \times 2\) input signals (96 Mini-Arrays and 2 polarizations) at a sampling frequency of \(200\ {\rm MHz}\), further channelized in sub-bands of \(200\ {\rm MHz} / 1024 = 195.3125\ {\rm kHz}\) bandwidth each. The SST data consist in the gathering of spectra per individual Mini-Array, per second, evaluated at the 2 NenuFAR antenna polarizations (North-West and North-East).

Data reading

Single file

>>> from nenupy.beamlet import SST_Data
>>> sst = SST_Data(filename='/path/to/XXX_SST.fits')
>>> from nenupy.beamlet import SST_Data
>>> sst = SST_Data(
        filename='/path/to/XXX_SST.fits',
        altazA='/path/to/XXX.altazA'
    )

If the altazA attribute is filled with a valid '*.altazA' file, it returns an instance of AnalogPointing that is appropriate to handle the analog pointing(s) of the Mini-Arrays during the analyzed observation.

Printing an SST_Data instance allows to quickly display the associated files and main observation properties:

>>> print(sst)
            SST_Data instance
SST File name(s):
    * /path/to/XXX_SST.fits
altazA File name(s):
    * /path/to/XXX.altazA
Time Range: 2020-02-16T08:00:00 -- 2020-02-16T10:00:00
Frequency Range: 0.09765625 -- 99.90234375 MHz
Mini-Arrays: array([ 0,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
       18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
       35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
       52, 53, 54, 55], dtype=int16)

List of SST files

Combination of SST Observations

SST FITS files are most often split to only cover one or two hours of observation. In this regard, SST_Data objects have been designed to allow for time concatenation between several SST_Data instances. The arithmetic operator Addition is used to fill this role.

>>> from nenupy.beamlet import SST_Data

>>> sst1 = SST_Data('/path/to/XXX_1_SST.fits')
>>> sst2 = SST_Data('/path/to/XXX_2_SST.fits')

>>> print(sst1.tMin, sst1.tMax)
2017-04-26T00:00:00 2017-04-26T00:59:59

>>> print(sst2.tMin, sst2.tMax)
2017-04-26T01:00:00 2017-04-26T01:08:14

>>> # Combine SST_Data instances with `+` operator
>>> combined_sst = sst1 + sst2
>>> print(combined_sst.tMin, combined_sst.tMax)
2017-04-26T00:00:00 2017-04-26T01:08:14

>>> # Combine SST_Data instances with `sum` (leads to the same result)
>>> combined_sst = sum([sst1, sst2])
>>> print(combined_sst.tMin, combined_sst.tMax)
2017-04-26T00:00:00 2017-04-26T01:08:14

The same idea governs the exclusion of one particular SST file. If an SST_Data is composed of multiple observation files, the Subtraction operator allows to remove those associated with another SST_Data instance. Considering the previous result stored in combined_sst, which is the combination of two SST files, removing the first one is simply done by:

>>> smaller_sst = combined_sst - sst1
>>> print(smaller_sst.tMin, smaller_sst.tMax)
2017-04-26T01:00:00 2017-04-26T01:08:14

smaller_sst is therefore strictly identical to sst2 in this example:

>>> smaller_sst == sst2
True

Data analysis

Observation properties

Data selection

Plotting

Reference

SST_Data

Class to read NenuFAR SST data stored as FITS files.

select

param freqRange:

filename

SST FITS file name(s).

altazA

Mini-Arrays analog pointing orders file.

fMin

getter:

fMax

getter:

freqRange

Sets the minimum and maximum frequencies of SST data selection.

ma

Sets the Mini-Array of SST data selection.

mas

getter:

polar

Sets the polarization of SST data selection.

tMax

Gets the end time of the SST_Data instance.

tMin

Gets the start time of the SST_Data instance.

timeRange

Sets the start and end times of SST data selection.

class nenupy.beamlet.sstdata.SST_Data(filename, altazA=None, **kwargs)[source]

Bases: object

Class to read NenuFAR SST data stored as FITS files.

Parameters:
  • filename (str or list) – Path to SST file.

  • altazA (str or list) – Path to *.altazA file, which describe the analogical pointing.

Addition and Subtraction are allowed between SST_Data instances.

Example:
>>> from nenupy.beamlet import SST_Data
>>> sst1 = SST_Data('./File1_SST.fits')
>>> sst2 = SST_Data('./File1_SST.fits')
>>> newSST = sst1 + sst2

Added in version 1.1.0.

property altazA

Mini-Arrays analog pointing orders file.

Setter:

Getter:

Type:

list

property fMax

getter:

Type:

Quantity

property fMin

getter:

Type:

Quantity

property filename

SST FITS file name(s).

Setter:

SST file name(s) to be read. It can be provided by either a single str or a list of str corresponding to the desired FITS file(s).

Getter:

List of the SST file name(s) loaded for this instance of SST_Data.

Type:

list

property freqRange

Sets the minimum and maximum frequencies of SST data selection.

Setter:

Getter:

Type:

list of Quantity

property ma

Sets the Mini-Array of SST data selection.

Setter:

Getter:

Type:

int

property mas

getter:

Type:

MiniArrays

property polar

Sets the polarization of SST data selection.

Setter:

Getter:

Type:

str

select(**kwargs)[source]
Parameters:
Returns:

Return type:

SData

property tMax

Gets the end time of the SST_Data instance.

Getter:

Type:

Time

property tMin

Gets the start time of the SST_Data instance.

Getter:

Type:

Time

property timeRange

Sets the start and end times of SST data selection.

Setter:

Getter:

Type:

list of Time