Version 3.0
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 packageutils
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 oftime_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 theblts_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 onUVBase
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 theuse_future_array_shapes
method onUVBase
objects. - Accessing the telescope-related metadata through their old attribute names on
UVData
,UVCal
andUVFlag
rather than via their attributes on the attachedTelescope
object (e.g.UVData.telescope_name
->UVData.telescope.name
andUVData.antenna_positions
->UVData.telescope.antenna_positions
). - Passing telescope-related metadata as separate parameters to
UVData.new
andUVCal.new
rather thanTelescope
objects. - The
UVData.get_ENU_antpos
method in favor ofUVData.telescope.get_enu_antpos
. - The
Telescope.telescope_location
andTelescope.telescope_name
attributes in favor ofTelescope.location
andTelescope.name
. - The
get_telescope
function in favor of theknown_telescope_location
function and theTelescope.from_known_telescopes
classmethod. - The KNOWN_TELESCOPE dict in favor of the
known_telescope_location
function and theTelescope.from_known_telescopes
classmethod.
Removed:
- Support for current array shapes has been removed on
UVData
,UVCal
,UVFlag
, andUVBeam
objects, as well as theuse_current_array_shapes
method for these classes. - The
flex_spw
attribute has been removed onUVData
andUVCal
objects. - Support for using the old phasing attributes (
phase_center_ra
,phase_center_dec
,phase_center_frame
,phase_center_epoch
,phase_type
, andobject_name
) inUVData
. - Support for handling of the
input_flag_array
parameter forUVCal
objects. - Support for 'unknown' cal type in
UVCal
objects.
Full details below and in our changelog:
What's Changed
- Prepare for version 3.0 by @bhazelton in #1444
Full Changelog: v2.4.5...v3.0.0