Spectrogram

class sunpy.spectra.spectrogram.Spectrogram(data, time_axis, freq_axis, start, end, t_init=None, t_label='Time', f_label='Frequency', content='', instruments=None)[source] [edit on github]

Bases: sunpy.util.create.Parent

Deprecated since version 0.8: this module is being moved to radiospectra - http://docs.sunpy.org/projects/radiospectra/

Spectrogram Class.

Warning

This module is under development! Use at your own risk.

data

ndarray – two-dimensional array of the image data of the spectrogram.

time_axis

ndarray – one-dimensional array containing the offset from the start for each column of data.

freq_axis

ndarray – one-dimensional array containing information about the frequencies each row of the image corresponds to.

start

datetime – starting time of the measurement

end

datetime – end time of the measurement

t_init

int – offset from the start of the day the measurement began. If None gets automatically set from start.

t_label

str – label for the time axis

f_label

str – label for the frequency axis

content

str – header for the image

instruments

str array – instruments that recorded the data, may be more than one if it was constructed using combine_frequencies or join_many.

Deprecated since version 0.8: this module is being moved to radiospectra - http://docs.sunpy.org/projects/radiospectra/

Attributes Summary

COPY_PROPERTIES
dtype
shape

Methods Summary

at_freq(freq)
auto_const_bg() Automatically determine background.
auto_find_background([amount]) Automatically find the background.
clip_freq([vmin, vmax]) Return a new spectrogram only consisting of frequencies in the interval [vmin, vmax].
clip_values([vmin, vmax, out]) Clip intensities to be in the interval [vmin, vmax].
format_freq(freq) Override to configure default plotting.
format_time(time) Override to configure default plotting.
freq_overlap(other) Get frequency range present in both spectrograms.
interpolate(frequency) Linearly interpolate intensity at unknown frequency using linear interpolation of its two neighbours.
linearize_freqs([delta_freq]) Rebin frequencies so that the frequency axis is linear.
peek(*args, **kwargs) Plot spectrum onto current axes.
plot([figure, overlays, colorbar, vmin, …]) Plot spectrogram onto figure.
randomized_auto_const_bg(amount) Automatically determine background.
randomized_subtract_bg(amount) Perform randomized constant background subtraction.
rescale([vmin, vmax, dtype]) Rescale intensities to [vmin, vmax].
subtract_bg() Perform constant background subtraction.
time_formatter(x, pos) This returns the label for the tick of value x at a specified pos on the time axis.
time_to_x(time) Return x-coordinate in spectrogram that corresponds to the passed datetime value.

Attributes Documentation

COPY_PROPERTIES = [('time_axis', 1), ('freq_axis', 1), ('instruments', 1), ('start', 0), ('end', 0), ('t_label', 0), ('f_label', 0), ('content', 0), ('t_init', 0)]
dtype
shape

Methods Documentation

at_freq(freq)[source] [edit on github]
auto_const_bg()[source] [edit on github]

Automatically determine background.

auto_find_background(amount=0.05)[source] [edit on github]

Automatically find the background. This is done by first subtracting the average value in each channel and then finding those times which have the lowest standard deviation.

Parameters:amount (float) – The percent amount (out of 1) of lowest standard deviation to consider.
clip_freq(vmin=None, vmax=None)[source] [edit on github]

Return a new spectrogram only consisting of frequencies in the interval [vmin, vmax].

Parameters:
  • vmin (float) – All frequencies in the result are greater or equal to this.
  • vmax (float) – All frequencies in the result are smaller or equal to this.
clip_values(vmin=None, vmax=None, out=None)[source] [edit on github]

Clip intensities to be in the interval [vmin, vmax].

Any values greater than the maximum will be assigned the maximum, any values lower than the minimum will be assigned the minimum. If either is left out or None, do not clip at that side of the interval.

Parameters:
  • min (int or float) – New minimum value for intensities.
  • max (int or float) – New maximum value for intensities
static format_freq(freq)[source] [edit on github]

Override to configure default plotting.

static format_time(time)[source] [edit on github]

Override to configure default plotting.

freq_overlap(other)[source] [edit on github]

Get frequency range present in both spectrograms. Returns (min, max) tuple.

Parameters:other (Spectrogram) – other spectrogram with which to look for frequency overlap
interpolate(frequency)[source] [edit on github]

Linearly interpolate intensity at unknown frequency using linear interpolation of its two neighbours.

Parameters:frequency (float or int) – Unknown frequency for which to linearly interpolate the intensities. freq_axis[0] >= frequency >= self_freq_axis[-1]
linearize_freqs(delta_freq=None)[source] [edit on github]

Rebin frequencies so that the frequency axis is linear.

Parameters:delta_freq (float) – Difference between consecutive values on the new frequency axis. Defaults to half of smallest delta in current frequency axis. Compare Nyquist-Shannon sampling theorem.
peek(*args, **kwargs)[source] [edit on github]

Plot spectrum onto current axes.

Parameters:
  • *args (dict) –
  • **kwargs (dict) – Any additional plot arguments that should be used when plotting.
Returns:

fig (Figure) – A plot figure.

plot(figure=None, overlays=[], colorbar=True, vmin=None, vmax=None, linear=True, showz=True, yres=1080, max_dist=None, **matplotlib_args)[source] [edit on github]

Plot spectrogram onto figure.

Parameters:
  • figure (Figure) – Figure to plot the spectrogram on. If None, new Figure is created.
  • overlays (list) – List of overlays (functions that receive figure and axes and return new ones) to be applied after drawing.
  • colorbar (bool) – Flag that determines whether or not to draw a colorbar. If existing figure is passed, it is attempted to overdraw old colorbar.
  • vmin (float) – Clip intensities lower than vmin before drawing.
  • vmax (float) – Clip intensities higher than vmax before drawing.
  • linear (bool) – If set to True, “stretch” image to make frequency axis linear.
  • showz (bool) – If set to True, the value of the pixel that is hovered with the mouse is shown in the bottom right corner.
  • yres (int or None) – To be used in combination with linear=True. If None, sample the image with half the minimum frequency delta. Else, sample the image to be at most yres pixels in vertical dimension. Defaults to 1080 because that’s a common screen size.
  • max_dist (float or None) – If not None, mask elements that are further than max_dist away from actual data points (ie, frequencies that actually have data from the receiver and are not just nearest-neighbour interpolated).
randomized_auto_const_bg(amount)[source] [edit on github]

Automatically determine background. Only consider a randomly chosen subset of the image.

Parameters:amount (int) – Size of random sample that is considered for calculation of the background.
randomized_subtract_bg(amount)[source] [edit on github]

Perform randomized constant background subtraction. Does not produce the same result every time it is run.

Parameters:amount (int) – Size of random sample that is considered for calculation of the background.
rescale(vmin=0, vmax=1, dtype=dtype('float32'))[source] [edit on github]

Rescale intensities to [vmin, vmax]. Note that vmin ≠ vmax and spectrogram.min() ≠ spectrogram.max().

Parameters:
  • vmin (float or int) – New minimum value in the resulting spectrogram.
  • vmax (float or int) – New maximum value in the resulting spectrogram.
  • dtype (numpy.dtype) – Data-type of the resulting spectrogram.
subtract_bg()[source] [edit on github]

Perform constant background subtraction.

time_formatter(x, pos)[source] [edit on github]

This returns the label for the tick of value x at a specified pos on the time axis.

time_to_x(time)[source] [edit on github]

Return x-coordinate in spectrogram that corresponds to the passed datetime value.

Parameters:time (parse_time compatible str) – datetime to find the x coordinate for.