Releases: RadioAstronomySoftwareGroup/pyuvdata
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
Version 2.4.5
This is the last release before version 3.0.
Primarily, it fixes compatibility with numpy v2.0.
It also fixed a bug in UVData.new() where in some corner cases the UVData.ant1_array and UVData.ant2_array were not correctly set as integer arrays.
Full details below and in our changelog:
What's Changed
- Numpy 2.0 compatibility by @pre-commit-ci in #1447
- fix: always cast antpairs to int by @steven-murray in #1448
- Prepare for v2.4.5 which adds compatibility with numpy 2.0 by @bhazelton in #1454
Full Changelog: v2.4.4...v2.4.5
Version 2.4.4
This fixes a few bugs and updates the following dependencies:
- cython >= 3.0
- astropy-healpix>=1.0.2
Full details below and in our changelog:
What's Changed
- Fix correct_cable_len default by @PyxieLouStar in #1419
- Increase astropy_healpix version to be compatible with astropy 6.0 by @bhazelton in #1423
- Cython3 by @mkolopanis in #1421
- Fix pyuvsim test CI for new package structure by @bhazelton in #1426
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1428
- Fixing bugs with extra catalog entries by @kartographer in #1429
-
- docs/ref/uvh5_memo specify baseline direction by @radonnachie in #1427
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1432
- Dcp uvfits rdate fix by @telegraphic in #1439
- Prepare for v2.4.4 by @bhazelton in #1443
New Contributors
- @telegraphic made their first contribution in #1439
Full Changelog: v2.4.3...v2.4.4
Version 2.4.3
This version has several improvements, the most notable are:
- Adds support for the new lunar ellipsoids recently added to
lunarsky. - A significant speed up for reading MWA correlator FITS files.
- Support for v.6 of the MIR data format
There are a number of dependency version changes, pyuvdata now requires:
- python >= 3.10
- astropy>=6.0
- h5py>=3.4
- numpy>=1.23
- pyerfa>=2.0.1.1
- scipy>=1.7.3
And optional dependecy version changes include:
- hdf5plugin>=3.2.0
- pytest>=6.2.5
- pytest-cases>=3.8.3
- python-casacore>=3.5.2
- pyyaml>=5.4.1
- lunarsky>=0.2.2
Full changes detailed below and in our changelog:
Full Changelog: v2.4.3...v2.4.3
Version 2.4.2
This version has several improvements, the most notable are:
- Improvements to the MIR reader and interface.
- A new gridding-based baseline redundancy finding algorithm that is now used by default (the older algorithm is still available).
- A new
UVBeam.new()method that creates a new, self-consistentUVBeamobject from scratch from a set of flexible input parameters. - Improvements for handling of telescopes on the moon.
Full changes detailed below and in our changelog:
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1350
- Better handing of discrepancies for LSTs and telescope position in
checkby @kartographer in #1356 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1358
- MS writer improvements by @kartographer in #1363
- Pyx datatypes by @mkolopanis in #1357
- Clean up freq_range and freq_array handling in UVCal by @bhazelton in #1361
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1366
- Drop python 3.8 support, add python 3.12 by @bhazelton in #1367
- Update flake8 plugin versions to match CI by @bhazelton in #1364
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1369
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1370
- Uvh5 memo updates by @bhazelton in #1368
- Updating antenna positions in UVData by @kartographer in #1372
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1373
- Run the tutorial plotting code in doctests by @bhazelton in #1374
- Replacing deprecated scipy
simpsmethod in MWA code by @kartographer in #1377 - Add a
UVBeam.new()method similar to the ones on UVData and UVCal by @bhazelton in #1378 - Minor bug fix for
tests.WarningCheckerwhen IERS is down by @kartographer in #1382 - Miriad support (UVFITS and UV file writing) and MS write with legacy array shape by @kartographer in #1392
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1385
- Fix so that write_uvfits doesn't change the object, add loopback testing by @bhazelton in #1393
- Mcmf enu calc by @mkolopanis in #1376
- SMA/MirParser Improvements by @kartographer in #1371
- Add a changelog entry for small UVFlag bug fixed in a recent PR by @bhazelton in #1394
- Fix CI by @bhazelton in #1398
- Handle differently sorted ant metadata in UVFlag to_baseline and to_antenna by @bhazelton in #1397
- Minor fixes for handling of older SMA data by @kartographer in #1399
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1400
- Adding support for initializing
MirParserfromPathobjects by @kartographer in #1405 - ignore warnings in hera_cal and hera_qm test runs by @bhazelton in #1402
- Add an option to use the HERA gridding algorithm to find redundancies by @bhazelton in #1403
- Prepare for v2.4.2 by @bhazelton in #1406
Full Changelog: v2.4.1...v2.4.2
Version 2.4.1
This version has several improvements, the most notable are:
- New
uvw_track_generatorutility method for calculating the expected uvws (and a few other values) without needing to instantiate a wholeUVDataobject. - Proper round-tripping of the telescope frame through UVH5, UVFITS and MS files.
- New options to
UVFlag.readandUVFlag.__init__to help with setting telescope metadata for old UVFlag files that are missing it. - Support for recarrays in
UVParameterobjects and inUVBase.
Full changes detailed below and in our changelog:
What's Changed
- Fix bug in calc_app_coords by @kartographer in #1325
- Undo numpy pin on python 3.11 tests by @bhazelton in #1321
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1327
- Fix docstrings for shape of waterfall-type UVFlag objects by @jsdillon in #1326
- Add warnings in check if lst_array doesn't match expectations by @bhazelton in #1322
- Add options for astrometry library to object methods, round-trip telescope frame through UVH5, UVFITS and MS files by @bhazelton in #1329
- Fix
write_mshandling of history by @kartographer in #1332 - Fix some ERFA calls by @bhazelton in #1331
- Update uvdata_tutorial.rst by @elillesk in #1337
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1338
- Add support for recarray UVParameters, needed for pyradiosky by @bhazelton in #1334
- Add external testing against SSINS by @bhazelton in #1335
- Add MWA antenna information by @bhazelton in #1340
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1345
- UVW helper utilities (for use on the moon and otherwise...) by @kartographer in #1292
- New version by @bhazelton in #1347
New Contributors
Full Changelog: v2.4.0...v2.4.1
Version 2.4
This version has several improvements, the most notable are:
- More flexibility in the
UVData.frequency_averagemethod, including support for multiple spectral windows and better handling in when averaging by a number of channels that does not divide evenly into the number of channels in each spectral window. - Fixed a bug in LST calculation that led to small discontinuities in LSTs calculated using the
erfa(the default) ornovasastrometry libraries. - The
quality_arrayon UVCal objects is no longer required. - Fixed a bug in reading
mwa_corr_fitsfiles from the new MWAX correlator - Added compatibility with Python 3.11
There are also a number of breaking changes, including changes associated with:
- Removing support for old style phasing
- Full support for multiple phase centers (so rephrasing when adding/concatenating is not required)
- A number of telescope metadata parameters are now required on UVFlag objects.
Full changes detailed below and in our changelog:
What's Changed
- Add testing against python 3.11 by @bhazelton in #1298
- small mwax metafits updates by @PyxieLouStar in #1299
- fix: error when setting freq_interp_kind to an integer by @steven-murray in #1304
- better error message if az_za_grid set but no az_array or za_array by @bhazelton in #1302
- Fix code that raises new numpy deprecation warnings by @bhazelton in #1308
- Make UVCal quality array optional by @bhazelton in #1301
- Deprecate sky_field parameter on UVCal by @bhazelton in #1312
- Fix LST discontinuities by @bhazelton in #1314
- Fix a few small CI issues by @bhazelton in #1316
- Support multiple spws in
UVData.frequency_averageby @bhazelton in #1307 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1320
- Prepare for version 2.4 by @bhazelton in #1319
Full Changelog: v2.3.3...v2.4.0
Version 2.3.3
This version adds many new features including:
- The
UVCal.newandUVData.newmethods to create self-consistent object from scratch from a set of flexible input parameters. - A new
fast_concatmethod onUVCal. - A new generic
readmethod onUVCalthat supports all file types and a newUVCal.from_fileclass method.
A new required dependency, docstring_parser was also added.
Full changes detailed below and in our changelog:
What's Changed
- Transactional FastUVH5Meta by @steven-murray in #1285
- Add
fast_concat, genericread, andfrom_filemethods to UVCal by @bhazelton in #1271 - feat: new_uvdata function for simple initialization by @steven-murray in #1281
- fix: error when times or freqs are length 1 by @steven-murray in #1287
- Fix error on ntimes one by @steven-murray in #1289
- Deprecate the 'unknown' cal_type by @bhazelton in #1288
- Deprecate the
input_flag_arrayattribute on UVCal by @bhazelton in #1275 - Cal init method by @steven-murray in #1284
- Update CI by @bhazelton in #1295
- Prepare for v2.3.3 release by @bhazelton in #1297
Full Changelog: v2.3.2...v2.3.3
Version 2.3.2
This version contains:
- Including improved support for SMA MIR files, including better integration with the UVData
readmethod. - Reduced memory/processor usage when reading and handling MIR files.
- Improvements to the UVData
readandselectmethods to enable selecting based on source/phase center name.
Full changes detailed below and in our changelog:
What's Changed
- Improved UVData to MirParser interface by @kartographer in #1282
- Update the changelog for a new version (v2.3.2) by @bhazelton in #1286
Full Changelog: v2.3.1...v2.3.2
Version 2.3.1
This version:
- Adds a new
FastUVH5Metaobject that enables quick partial reading of uvh5 file metadata. - Fixes a bug in antenna_names and antenna_numbers in
read_fhdandread_fhd_cal. - Updates the numpy requirements to
>=1.20and the scipy requirements to>=1.5.
Full changes detailed below and in our changelog:
What's Changed
- Fix fhd read functions by @PyxieLouStar in #1270
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1272
- Fix the publish to pypi CI so that it will actually publish when there's a release by @bhazelton in #1273
- feat: add FastUVH5Meta reader by @steven-murray in #1258
- ^ docs/uvh5_memo freq_array is channel centers by @radonnachie in #1277
- Fix pre-commit by @bhazelton in #1279
- Update the UVH5 memo pdf after a recent change by @bhazelton in #1278
- fix: allow reading of old uvh5 files that were silently broken by @steven-murray in #1276
- Version 2.3.1 by @bhazelton in #1280
Full Changelog: v2.3.0...v2.3.1