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
telescopeattribute) - Restructured
utils.pyinto a new sub packageutilswith 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_rangeparameter 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_msmethod. - Improved performance for
antpair2indand_key2indsby using theblts_are_rectangularparameter, 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_shapesattribute onUVBaseobjects has been deprecated, as pyuvdata now exclusively uses future array shapes. - The
use_future_array_shapeskeyword in several different class methods, as well as theuse_future_array_shapesmethod onUVBaseobjects. - Accessing the telescope-related metadata through their old attribute names on
UVData,UVCalandUVFlagrather than via their attributes on the attachedTelescopeobject (e.g.UVData.telescope_name->UVData.telescope.nameandUVData.antenna_positions->UVData.telescope.antenna_positions). - Passing telescope-related metadata as separate parameters to
UVData.newandUVCal.newrather thanTelescopeobjects. - The
UVData.get_ENU_antposmethod in favor ofUVData.telescope.get_enu_antpos. - The
Telescope.telescope_locationandTelescope.telescope_nameattributes in favor ofTelescope.locationandTelescope.name. - The
get_telescopefunction in favor of theknown_telescope_locationfunction and theTelescope.from_known_telescopesclassmethod. - The KNOWN_TELESCOPE dict in favor of the
known_telescope_locationfunction and theTelescope.from_known_telescopesclassmethod.
Removed:
- Support for current array shapes has been removed on
UVData,UVCal,UVFlag, andUVBeamobjects, as well as theuse_current_array_shapesmethod for these classes. - The
flex_spwattribute has been removed onUVDataandUVCalobjects. - 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_arrayparameter forUVCalobjects. - Support for 'unknown' cal type in
UVCalobjects.
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