Skip to content

Version 3.0

Latest
Compare
Choose a tag to compare
@bhazelton bhazelton released this 01 Jul 22:09
· 93 commits to main since this release

This is a major new version with many new features and some breaking API changes. Highlights include:

Added/Changed:

  • Telescope-related metadata (including antenna metadata) on UVData, UVCal and UVFlag objects have been refactored into a Telescope object (attached to these objects as the telescope attribute)
  • Restructured utils.py into a new sub package utils with functions split among several submodules. Utility functions used widely are still available from pyuvdata.utils, although this access pattern is deprecated for some of them.
  • Require keyword arguments rather than allowing for passing arguments by position for
    functions and methods with many parameters.

UVCal:

  • Introduced CalH5, a new HDF5 based file format for calibration solutions.
  • Add reading and writing calibration solutions from measurement sets.
  • Improved support for calibration solutions that apply over a range of times, using the time_range parameter to give the start and stop times for each solutions instead of time_array (which is used for calibration solutions that are calculated per integration).
  • Support for "flexible-Jones" UVCal objects -- where different spectral windows can contain different Jones vectors/polarization information -- has been added, along with methods for converting UVCal objects to and from flex-Jones format and reading and writing to and from measurement sets and CalH5 files.

UVData:

  • Changed the way files are passed for reading FHD files to make it more similar to the API for reading FHD calibration solutions.
  • Support for writing "MODEL_DATA" and "CORRECTED_DATA" columns has been added to the UVData.write_ms method.
  • Improved performance for antpair2ind and _key2inds by using the blts_are_rectangular parameter, and also by caching the results. To improve performance of the cache, the resulting indices are returned as slices whenever possible.

Deprecated:

  • The future_array_shapes attribute on UVBase objects has been deprecated, as pyuvdata now exclusively uses future array shapes.
  • The use_future_array_shapes keyword in several different class methods, as well as the use_future_array_shapes method on UVBase objects.
  • Accessing the telescope-related metadata through their old attribute names on UVData, UVCal and UVFlag rather than via their attributes on the attached Telescope object (e.g. UVData.telescope_name -> UVData.telescope.name and UVData.antenna_positions -> UVData.telescope.antenna_positions).
  • Passing telescope-related metadata as separate parameters to UVData.new and UVCal.new rather than Telescope objects.
  • The UVData.get_ENU_antpos method in favor of UVData.telescope.get_enu_antpos.
  • The Telescope.telescope_location and Telescope.telescope_name attributes in favor of Telescope.location and Telescope.name.
  • The get_telescope function in favor of the known_telescope_location function and the Telescope.from_known_telescopes classmethod.
  • The KNOWN_TELESCOPE dict in favor of the known_telescope_location function and the Telescope.from_known_telescopes classmethod.

Removed:

  • Support for current array shapes has been removed on UVData, UVCal, UVFlag, and UVBeam objects, as well as the use_current_array_shapes method for these classes.
  • The flex_spw attribute has been removed on UVData and UVCal objects.
  • Support for using the old phasing attributes (phase_center_ra, phase_center_dec, phase_center_frame, phase_center_epoch, phase_type, and object_name) in UVData.
  • Support for handling of the input_flag_array parameter for UVCal objects.
  • Support for 'unknown' cal type in UVCal objects.

Full details below and in our changelog:

What's Changed

Full Changelog: v2.4.5...v3.0.0