Full Changelog#

Version 0.4.0#

Functionality & Enhancements#

  • Calibration of Nod observations
    • Nod observations can be calibrated using GBTFITSLoad.getnod(). By default dysh will identify which beams were used for the nodding, but these can be specified via the fdnum argument.

  • Metadata management
    • SDFITSLoad and GBTFITSLoad objects now have access to their column data via their get and set methods. For an example see the metadata management recipes.

  • Smoothing
    • Spectrum objects can now be smoothed using their smooth method.

    • Current smoothing kernels include a Gaussian, boxcar and Hanning windows. Their widths are specified in channels.

    • By default the Spectrum will be decimated by the kernel width. This can be changed with the decimate argument.

  • Alignment of Spectrum objects
    • Spectrum objects can now be aligned with respect to each other to match their spectral axes.

    • The alignment matches the first channel of the Spectrum being aligned.

    • The alignment can be done in frequency or velocity space.

  • Data IO
    • dysh can now write and read SDFITSLoad, ScanBlock and Spectrum objects to a variety of formats. For an example see data IO recipes.

  • Logging
  • Data reduction history
    • dysh objects now keep track of their history in their history attribute. This is written to disk to enhance data reduction reproducibility.

  • Online/Offline mode
    • dysh can now access the latest spectral line observations using GBTOnline. This will also automatically update the contents of the GBTFITSLoad object as new data is written to disk. This mode is only available when working from a GBO data reduction host.

    • GBTOffline will fetch the data for an observations by specifying the session id (e.g., AGBT24A_999_01).

  • Drop support for Python3.8 and Python3.9
    • dysh now is only available for Python3.10 and above.

  • Gain correction classes
    • Gain correction classes for computing gain correction as a function of elevation, aperture efficiency, surface error, and airmass. (See GBTGainCorrection).

Bug Fixes#

Version 0.3.0#

Functionality & Enhancements#

  • Handling of Doppler frames and conventions
    • A GBT Spectrum has a spectral axis derived from the WCS of the spectrum (which in turn is created from meta data in the SDFITS file). The default Doppler frame for this axis is topocentric. The spectral axis of a Spectrum can be converted to standard frames recognized by astropy: LSRK, HCRS, ICRS, GCRS, ITRS, GalactoCentric. See Spectrum.set_frame, Spectrum.with_frame, and also the xaxis_unit and vel_frame keywords to SpecPlot.plot.

    • The Doppler conventions radio, optical, relativistic are recognized by dysh. Users can convert a Spectrum to different conventions with Spectrum.set_convention and Spectrum.with_velocity_convention. See also, the doppler_convention keyword of SpecPlot.plot

  • Data Selection
    • The Selection class implements a very flexible way of selecting data rows from an SDFITS file using any column name. (Column name aliases are also supported). Multiple selection rules are logically combined to a final selection.

    • Data selection is implemented on GBTFITSLoad via delegation to a Selection attribute.

  • Frequency switching calibration
    • FS data can be calibrated using GBTFITSLoad.getfs() with the option to fold the signal and reference spectra.

    • The Scan class for calibrating frequency switching, FSScan, has been implemented. Users should not need to create these directly, but rather through getfs().

  • ScanBlock API change
    • timeaverage() now returns a Spectrum instead of a list. Previously the list contained the time average of each Scan within the ScanBlock. Now the time average across all Scans in the ScanBlock is returned.

Bug Fixes#