Pyuvdata

Latest version: v3.1.3

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 9

3.1.3

Added
- Option to write the uvw_array as double precision in UVFITS files even when
the data array are single precision. Default is set to write them as doubles.
- ATA has been added to the list of known telescopes.

Fixed
- Bug in `calc_frame_pa_angle` which gave rise to an indexing error at positions close
to the Southern celestial pole. Additionally fixed a bug where these values were
incorrectly calculated.
- A sign flip of the MWA beam response to azimuthally aligned polarization. This
was caused by the difference in coordinates used in UVBeam and the mwa_pb repo,
the coordinates themselves were properly accounted for but the flip in
orientation of the basis vectors was not properly handled.
- Bug in the `uvh5._add` method that expected keys which could be
optional for some phase-center catalog-entry types. This was noticed as an issue when
adding two uvh5 objects that were of type "sidereal" which did not have "info_source"
entries in their phase-center catalogs.
- Bug in the `look_in_catalog` utility function that expected keys which could be
optional for some phase-center catalog-entry types. This was noticed as an issue when
adding two uvh5 objects that were of type "sidereal" which did not have "cat_times"
entries in their phase-center catalogs.
- Bug in selecting baselines on a UVData object using `bls` keyword with 3-tuples and
more than one polarization (introduced in 3.1.2).

3.1.2

Added
- New keyword `check_kw` to `new_uvdata` that lets the user specify options to the
checking of the created object.
- New keyword `all_times_unique` to `calc_app_coords` that short-cuts the calculation
when it is known that all input times are unique.
- New convenience methods on `BeamInterface` to simplify the handling of analytic vs UVBeam objects.
- Added support for partial read for MWA correlator FITS files.
- Added `antenna_names`, `time_range`, `lsts` and `lst_range` parameters to
`UVFlag.select` to match UVData and UVCal select methods.

Changed
- Made it possible to *not* return the `interp_basis_vector` array from beam
interpolators.

Fixed
- Initialization of analytic beams with single feed.

3.1.1

Fixed
- New test failures related to incorrect tolerances for floating point comparisons
in tests. Floating point comparisons have been updated throughout the code base.

3.1.0

Added
- New analytic beam classes: AiryBeam, GaussianBeam, ShortDipoleBeam, UniformBeam
that support evaluating either the efield or power beam in any direction and frequency.
- A new BeamInterface class that provides a unified interface to UVBeam and analytic
beam objects to get beam responses in any direction and frequency (via
interpolation or evaluation as appropriate).
- New optional spatial interpolation method, ``interpolation_function="az_za_map_coordinates"``
that improves the linear interpolation speed for data in ``az_za`` coordinates.
- New UVParameter `pol_convention` on `UVData` and `UVCal`. This specifies the convention
assumed for converting linear to stokes polarizations -- either "sum" or "avg". Also
added to `uvcalibrate` to apply from the `UVCal` to the `UVData`.
- New `ignore_telescope_param_update_warnings_for` function that globally ignores
warnings for specific telescopes.
- New `.telescope` cached property on the `FastUVH5Meta` object that auto-creates a
telescope object from the metadata.
- `UVData.get_enu_data_ants` method to get east, north, up positions only for
antennas with data.

Changed
- Updated minimum optional dependency versions: lunarsky>=0.2.5, pytest>=8.2.0

Fixed
- A bug in the MWA beam reader that resulted in the wrong polarization response
(the azimuthal-aligned response was swapped with the zenith angle-aligned response).
- A bug in reading UVH5 files with antenna names saved as variable length strings
that was introduced in v3.0.0.

3.0.0

Added
- Several new methods on `Telescope` objects, including the classmethods
`from_known_telescopes` and `new` to instantiate new objects and the
`get_enu_antpos` method to get antenna positions in East, North, Up coordinates.
- Support for writing "MODEL_DATA" and "CORRECTED_DATA" columns has been added to the
`UVData.write_ms` method.
- 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 (`remove_flex_jones`,
`_make_flex_jones`, and `convert_to_flex_jones`). Support for flex-Jones has been added
to `MSCal` and `CalH5` subclasses.
- A new class called `MSCal` has been added as a subclass of `UVCal`, which adds support
for reading and writing of CASA Measurement Set gains, bandpass, and delays tables. To
support this, several new optional parameters have been added to the `UVCal` class,
including `phase_center_catalog`, `phase_center_id_array`, `antenna_diameters`,
`scan_id_array`, and `ref_antenna_array` (which affords the ability to record a
different reference antenna per time-axis entry).
- A new HDF5 file format for calibration solutions called `calh5`, which supports
writing out all types of UVCal objects and supports partial reads (select on read).
- A `UVCal.get_lst_array` method similar to the `get_time_array` method that either
returns the LST of the mean of the start and stop time for each time range or the
lst_array (if there's a lst_array and no lst_range).
- A `UVCal.get_time_array` method that either returns the mean of the start and stop
time for each time range or the time_array (if there's a time_array and no time_range).
- Added new keyword handling for v.6 of the MIR data format within `MirParser`.

Changed
- Updated minimum dependency versions: scipy>=1.8, setuptools_scm>=8.1
- Updated minimum optional dependency versions: lunarsky>=0.2.4
- Restructured `utils.py` into a new submodule `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.
- Modified `UVBeam.interp` to speed up processing when `check_azza_domain=True`.
- Updated minimum dependencies: setuptools>=64, setuptools_scm>=8.0
- Restructured to a `src` layout. This should not affect most users, but the
`check_warnings` function has moved from `pyuvdata.tests` to `pyuvdata.testing`.
- Most packaging information has now moved to the `pyproject.toml`.
- Future array shapes are now the only supported standard for `UVData`, `UVCal`,
`UVFlag`, `UVBeam` classes.
- `UVCal` objects where the cal type is delay must now have `wide_band=True`.
- The `flex_spw_id_array` is now required for `UVCal` objects were `wide_band=False`.
- `UVCal` objects with `wide_band=True` may only have the `freq_range` parameter set and
the `freq_array`and `channel_width` parameters. If `wide_band=False`, then the
`freq_array`and `channel_width` parameters must be set, while the `freq_range` parameter
must be left unset.
- For `UVCal` objects, only one of the time-based parameters (`time_array` and
`time_range`) may be set on a given object.
- Telescope-related metadata (including antenna metadata) on `UVData`, `UVCal`
and `UVFlag` have been refactored into a `Telescope` object (attached to these
objects as the `telescope` attribute) and most of the code related to these
attributes from the three objects has been consolidated on the `Telescope` object.
These attributes are still accessible via their old names on the objects, although
accessing them that way is now deprecated. Note that the telescope locations are
now stored under the hood as astropy EarthLocation objects (e.g. `UVData.telescope.location`)
(or as MoonLocation objects for simulated arrays on the moon if `lunarsky` is
installed).
- The `UVData.new` and `UVCal.new` methods now accept a telescope object for
setting the telescope-related metadata (the older parameters are still accepted
but deprecated.)
- When FHD calibration solutions are read in, the `time_range` is now set to be
one quarter of an integration time before and after the earliest and latest times
respectively. This is a change from extending it by half an integration time to
prevent apparent overlaps in neighboring calibration solutions due to jd precision loss.
- 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.
- Changed the way files are passed for reading FHD files. Rather than one list including
all the types of files, each file type (e.g. params, obs, layout) must be passed to
their own parameter. This makes the API for reading FHD data files more similar to the
API for reading FHD cal files. Also removed the `use_model` parameter because it is no
longer needed (only data or model files should be passed as visibility files).
- Require keyword arguments rather than allowing for passing arguments by position for
functions and methods with many parameters.
- Only one of `time_array` and `time_range` (and similarly `lst_array` and `lst_range`)
can be set on a UVCal object.
- If `time_range` is set it must be 2D with a shape of (Ntimes, 2) where the first axis
gives the number of different time solutions and the second axis gives the start/stop
times for those solutions.

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.

Fixed
- Fixed a minor bug in `utils._check_freq_spacing` that raised issues which raised an
error when evaluating a "flex-spw" dataset where Nspws was 1.
- Fixed a bug in `UVBase` where `allowed_failures` was being ignored if a parameter had
`required=True` set.
- Fixed a bug where selection and addition/concat methods did not operate correctly on
flex-spw `UVCal` objects where `Nspws>1`.

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 providing capitalized variants of `UVBeam.feed_array`.
- Support for 'unknown' cal type in `UVCal` objects.

2.4.5

Changed
- numpy c-api for 2.0 compatibility
- numpy.string_ calls to numpy.bytes_, np.in1d to np.isin and a few other changes
for numpy 2.0 compatibility.

Fixed
- Fixed 1445 in which in some corner cases the `antpairs` array was not correctly interpreted as int.

Page 1 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.