Releases: RadioAstronomySoftwareGroup/pyuvdata
Version 3.1.1
This is a patch release that fixes some floating point comparison issues in our tests to enable conda releases.
Full details below and in our changelog:
What's Changed
- Set tolerances for floating point comparisons in tests by @bhazelton in #1492
Full Changelog: v3.1.0...v3.1.1
Version 3.1.0
This version has several additions, the most notable are:
- Adds new analytic beam objects.
- Adds a new BeamInterface object that unifies the interface for analytic and UVBeam objects.
- Adds a new
pol_convention
parameter onUVData
andUVCal
to specify the convention assumed for converting linear to stokes polarizations -- either "sum" or "avg". Also added touvcalibrate
to apply from theUVCal
to theUVData
. - Adds a new optional spatial interpolation method,
interpolation_function="az_za_map_coordinates"
that improves the linear interpolation speed for data inaz_za
coordinates.
This version also fixes some bugs including:
- Fixes a bug in the MWA beam reader that resulted in the wrong polarization response.
- Fixes a bug in reading UVH5 files with antenna names saved as variable length strings that was introduced in v3.0.0.
There are a some new optional dependency version changes:
- lunarsky>=0.2.5
- pytest>=8.2.0
Full changes detailed below and in our changelog:
What's Changed
- Add UVData.get_enu_data_ants to get ENU positions for antennas with data by @bhazelton in #1457
- feat: add Telescope object to FastUVH5Meta by @steven-murray in #1456
- feat: ignore_telescope_param_update_warnings_for by @steven-murray in #1459
- Pol convention by @steven-murray in #1455
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1465
- Fix uvh5 ant names bug by @bhazelton in #1468
- Use Ruff for linting (replaces flake8, black and isort) by @bhazelton in #1466
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1471
- CalH5 Memo by @bhazelton in #1462
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1472
- Faster interpolation in
UVBeam.interp
by @tyler-a-cox in #1464 - Correctly pass spline_opts to new uvbeam interpolator by @tyler-a-cox in #1474
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1475
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1476
- CI fix: Mambaforge is deprecated and mamba in now the default installer by @bhazelton in #1478
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1479
- Benchmark by @mkolopanis in #1463
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1480
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1481
- Add AnalyticBeam objects and a unified interface for UVBeams and AnalyticBeams by @bhazelton in #1383
- Fix a bug in the MWA beams where the polarization responses were swapped by @bhazelton in #1485
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #1489
- benchmark against the compiled extension explicitly by @mkolopanis in #1484
- Prepare for version 3.1.0 by @bhazelton in #1490
New Contributors
- @tyler-a-cox made their first contribution in #1464
Full Changelog: v3.0.0...v3.1.0
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
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-consistentUVBeam
object 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
check
by @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
simps
method 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.WarningChecker
when 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
MirParser
fromPath
objects 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_generator
utility method for calculating the expected uvws (and a few other values) without needing to instantiate a wholeUVData
object. - Proper round-tripping of the telescope frame through UVH5, UVFITS and MS files.
- New options to
UVFlag.read
andUVFlag.__init__
to help with setting telescope metadata for old UVFlag files that are missing it. - Support for recarrays in
UVParameter
objects 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_ms
handling 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_average
method, 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) ornovas
astrometry libraries. - The
quality_array
on UVCal objects is no longer required. - Fixed a bug in reading
mwa_corr_fits
files 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_average
by @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.new
andUVData.new
methods to create self-consistent object from scratch from a set of flexible input parameters. - A new
fast_concat
method onUVCal
. - A new generic
read
method onUVCal
that supports all file types and a newUVCal.from_file
class 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_file
methods 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_array
attribute 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