InstrumentBase

class synthesizAR.instruments.InstrumentBase(observing_time: Unit('s'), observer, pad_fov: Unit('arcsec') = None, fov_center=None, fov_width: Unit('arcsec') = None, average_over_los=False)[source]

Bases: object

Base class for instruments. This object is not meant to be instantiated directly. Instead, specific instruments should subclass this base object and implement a calculate_intensity_kernel method for that specific instrument.

Parameters:
  • observing_time (Quantity) – Tuple of start and end observing times

  • observer_coordinate (SkyCoord) – Coordinate of the observing instrument

  • cadence (Quantity) –

  • resolution (Quantity) –

  • pad_fov (Quantity, optional) – Two-dimensional array specifying the padding to apply to the field of view of the synthetic image in both directions. If None, no padding is applied and the field of view is defined by the maximal extent of the loop coordinates in each direction.

  • fov_center (SkyCoord, optional) –

  • fov_width (Quantity, optional) –

  • average_over_los (bool, optional) –

Attributes Summary

cadence

detector

observatory

observer

observing_time

pixel_area

Pixel area

projected_frame

resolution

telescope

Methods Summary

calculate_intensity_kernel(*args, **kwargs)

Converts emissivity for a particular transition to counts per detector channel.

convolve_with_psf(smap, channel)

Perform a simple convolution with a Gaussian kernel

get_detector_array(coordinates)

Calculate the number of pixels in the detector FOV and the physical coordinates of the bottom left and top right corners.

get_header(channel, coordinates[, unit])

Create the FITS header for a given channel and set of loop coordinates that define the needed FOV.

get_instrument_name(channel)

integrate_los(time, channel, skeleton, ...)

interpolate_to_instrument_time(kernel, loop, ...)

Interpolate the intensity kernel from the simulation time to the cadence of the instrument for the desired observing window.

observe(skeleton[, save_directory, channels])

Calculate the time dependent intensity for all loops and project them along the line-of-sight as defined by the instrument observer.

write_kernel_to_file(kernel, loop, indices, ...)

Attributes Documentation

cadence
detector
observatory
observer
observing_time
pixel_area

Pixel area

projected_frame
resolution
telescope

Methods Documentation

calculate_intensity_kernel(*args, **kwargs)[source]

Converts emissivity for a particular transition to counts per detector channel. When writing a new instrument class, this method should be overridden.

convolve_with_psf(smap, channel)[source]

Perform a simple convolution with a Gaussian kernel

get_detector_array(coordinates)[source]

Calculate the number of pixels in the detector FOV and the physical coordinates of the bottom left and top right corners.

get_header(channel, coordinates, unit=None)[source]

Create the FITS header for a given channel and set of loop coordinates that define the needed FOV.

get_instrument_name(channel)[source]
integrate_los(time, channel, skeleton, coordinates_centers, bins, bin_range, header, kernels=None, check_visible=False)[source]
static interpolate_to_instrument_time(kernel, loop, observing_time, axis=0)[source]

Interpolate the intensity kernel from the simulation time to the cadence of the instrument for the desired observing window.

observe(skeleton, save_directory=None, channels=None, **kwargs)[source]

Calculate the time dependent intensity for all loops and project them along the line-of-sight as defined by the instrument observer.

Parameters:
  • skeleton (Skeleton) –

  • save_directory (str or path-like) –

static write_kernel_to_file(kernel, loop, indices, channel, name, tmp_store)[source]