pyuvdata 3.2.7__tar.gz → 3.2.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/workflows/macosx_windows_ci.yaml +13 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/workflows/numba_test.yaml +1 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/workflows/publish-to-test-pypi.yaml +29 -8
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/workflows/warning_test.yaml +1 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.gitignore +3 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.pre-commit-config.yaml +2 -2
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/CHANGELOG.md +28 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/PKG-INFO +1 -1
- pyuvdata-3.2.8/ci/prefetch_test_data.py +67 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/conventions.rst +10 -7
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/datasets.py +2 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/coordinates.c +25379 -21424
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/gain_interpolate.py +2 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/phasing.c +22661 -19112
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/phasing.py +29 -20
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/tools.py +8 -8
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/uvbeam.c +22731 -19176
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/ms_cal.py +22 -15
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/corr_fits.c +25515 -21617
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/ms.py +70 -33
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/miriad_wrap.cpp +9732 -7624
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/uvdata.py +68 -35
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata.egg-info/PKG-INFO +1 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata.egg-info/SOURCES.txt +1 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata.egg-info/scm_file_list.json +1 -0
- pyuvdata-3.2.8/src/pyuvdata.egg-info/scm_version.json +8 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/conftest.py +1 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_ms_cal.py +7 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_miriad.py +20 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_ms.py +80 -1
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_uvdata.py +119 -0
- pyuvdata-3.2.7/src/pyuvdata.egg-info/scm_version.json +0 -8
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.circleci/config.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.codecov.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.coveragerc +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/CITATION.cff +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/CONTRIBUTING.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.github/dependabot.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/.readthedocs.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/CODE_OF_CONDUCT.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/LICENSE +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/README.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/azure-piplines.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/pyuvdata_min_deps_tests.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/pyuvdata_min_versions_tests.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/pyuvdata_tests.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/pyuvdata_tests_mac_arm.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/pyuvdata_tests_windows.yml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/ci/test_requirements.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/abs_gains.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/airy_beam_100MHz.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/airy_beam_200MHz.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/amplitude_waterfall.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/amplitude_waterfall_spw0.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/beam_coordinate_figure.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/dipole_mwa_power.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/efield_power_beam_cut.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/hera_efield.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/hera_efield_phase.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/hera_efield_zoom.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/hera_power_healpix_zoom.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/hera_power_zoom.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/hera_pstokes.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_fa_proj.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_fa_resp.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_off_zenith_power.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_zenith_cross_power.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_zenith_efield.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_zenith_efield_abs.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/mwa_zenith_power.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/select_beam_cut.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/short_dipole_beam.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/short_dipole_fa_projection.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Images/short_dipole_fa_response.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/Makefile +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/_templates/breadcrumbs.html +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/analytic_beam_tutorial.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/analytic_beams.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/beam_interface.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/beam_interface_tutorial.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/conf.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/conftest.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/cst_settings_yaml.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/developer_docs.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/fast_calh5_meta.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/fast_uvh5_meta.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/make_index.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/make_telescope.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/make_uvbeam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/make_uvcal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/make_uvdata.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/make_uvflag.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/AIPSMEM117.PDF +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/Far_field_spherical_FEKO_draft2.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/GPS.G1-X-00006_Datum_Transformations.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/aasjournal.bst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/app_icrs_frame_comp.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/beamfits_memo.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/beamfits_memo.tex +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/calfits_memo.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/calfits_memo.tex +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/calh5.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/calh5.tex +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/making_release.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/miriad-uvvars.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/ncp_icrs_app.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/phasing.bib +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/phasing.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/phasing.tex +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/simple_interferometer.png +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/uvh5_diagram.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/uvh5_memo.pdf +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/references/uvh5_memo.tex +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/requirements.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/tutorial.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/tutorial_data_note.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/utility_functions.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/uvbeam_tutorial.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/uvcal_tutorial.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/docs/uvdata_tutorial.rst +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/environment.yaml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/paper.bib +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/paper.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/pyproject.toml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/check_uvfits_equal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/convert_to_uvfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/fhd_batch_convert.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/make_bad_fhd_files.pro +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/pyuvdata_inspect.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/readwrite_uvfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/renumber_ants.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/test_cover_noinstall.sh +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/test_coverage.sh +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/truncate_fhd_files.pro +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/scripts/uvfits_memtest.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/setup.cfg +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/setup.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/analytic_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/beam_interface.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/README.md +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/hera_ant_pos.csv +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/jpl_major_bodies.json +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa128_ant_layouts.npz +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_ant_pos.csv +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/Chebychev_coeff.h5 +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/MWA_rev_cb_10khz_doubles.h5 +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/MWA_rev_cb_10khz_doubles.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/mwa_lna_impedance.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/mwax_pfb_bandpass_40kHz.h5 +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/mwax_pfb_bandpass_80kHz.h5 +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/mwa_config_data/sigma1.h5 +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/test_analytic_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/test_data.yaml +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/data/test_data_registry.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/docstrings.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/parameter.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/telescopes.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/testing/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/testing/warning_check.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/antenna.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/apply_uvflag.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/array_collapse.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/averaging.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/averaging_numba.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/bls.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/bls_numba.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/bltaxis.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/coordinates.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/coordinates.pyx +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/frequency.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/history.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/io/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/io/antpos.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/io/fhd.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/io/fits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/io/hdf5.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/io/ms.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/phase_center_catalog.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/phasing.pyx +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/plotting.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/pol.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/redundancy.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/times.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/types.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/utils/uvcalibrate.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbase.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/beamfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/cst_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/feko_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/initializers.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/mwa_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/uvbeam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvbeam/uvbeam.pyx +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/calfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/calh5.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/fhd_cal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/initializers.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/miriad_cal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvcal/uvcal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/aipy_extracts.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/corr_fits.pyx +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/fhd.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/initializers.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/mir.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/mir_meta_data.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/mir_parser.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/miriad.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/mwa_corr_fits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/aipy_compat.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/bug.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/dio.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/headio.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/hio.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/hio.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/io.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/maskio.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/maxdimc.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/miriad.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/miriad_wrap.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/miriad_wrap.pyx +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/pack.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/sysdep.h +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/src/uvio.c +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/uvfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvdata/uvh5.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvflag/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata/uvflag/uvflag.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata.egg-info/dependency_links.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata.egg-info/requires.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/src/pyuvdata.egg-info/top_level.txt +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_analytic_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_beam_interface.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_docstrings.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_parameter.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_telescopes.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_uvbase.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/test_warning_check.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/conftest.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/io/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/io/test_hdf5.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/io/test_ms.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_apply_uvflag.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_array_collapse.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_averaging.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_bls.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_bls_numba.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_bltaxis.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_coordinates.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_gain_interpolate.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_phase_center_catalog.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_phasing.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_plotting.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_pol.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_redundancy.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_times.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_tools.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/utils/test_uvcalibrate.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/conftest.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/test_beamfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/test_cst_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/test_feko_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/test_initializers.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/test_mwa_beam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvbeam/test_uvbeam.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/conftest.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_calfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_calh5.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_fhd_cal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_initializers.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_miriad_cal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvcal/test_uvcal.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/conftest.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_aipy_extracts.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_fhd.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_import_errors.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_initializers.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_mir.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_mir_meta_data.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_mir_parser.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_mwa_corr_fits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_uvfits.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvdata/test_uvh5.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvflag/__init__.py +0 -0
- {pyuvdata-3.2.7 → pyuvdata-3.2.8}/tests/uvflag/test_uvflag.py +0 -0
|
@@ -19,6 +19,9 @@ jobs:
|
|
|
19
19
|
name: Run Tests
|
|
20
20
|
env:
|
|
21
21
|
PYTHON: ${{ matrix.python-version }}
|
|
22
|
+
# Keep the test data in the workspace rather than the per-OS default cache
|
|
23
|
+
# location, so it can be cached with a single path on every runner.
|
|
24
|
+
PYUVDATA_DATA_DIR: ${{ github.workspace }}/pooch_cache
|
|
22
25
|
runs-on: ${{ matrix.os }}
|
|
23
26
|
defaults:
|
|
24
27
|
run:
|
|
@@ -59,6 +62,16 @@ jobs:
|
|
|
59
62
|
exit 1;
|
|
60
63
|
fi
|
|
61
64
|
|
|
65
|
+
- name: Restore cached test data
|
|
66
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
67
|
+
with:
|
|
68
|
+
path: pooch_cache
|
|
69
|
+
key: pooch-${{ runner.os }}-${{ hashFiles('src/pyuvdata/datasets.py') }}
|
|
70
|
+
|
|
71
|
+
- name: Download any test data not already cached
|
|
72
|
+
run: |
|
|
73
|
+
python ci/prefetch_test_data.py "$PYUVDATA_DATA_DIR"
|
|
74
|
+
|
|
62
75
|
- name: Install
|
|
63
76
|
run: |
|
|
64
77
|
CFLAGS="-DCYTHON_TRACE=1 -DCYTHON_TRACE_NOGIL=1" pip install .
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
persist-credentials: false
|
|
26
26
|
|
|
27
27
|
- name: Setup Python
|
|
28
|
-
uses: actions/setup-python@
|
|
28
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
29
29
|
with:
|
|
30
30
|
python-version-file: pyproject.toml
|
|
31
31
|
|
|
@@ -16,6 +16,8 @@ jobs:
|
|
|
16
16
|
build_wheels:
|
|
17
17
|
name: Build wheel for ${{ matrix.python }}-${{ matrix.buildplat[1] }} ${{ matrix.buildplat[2] }}
|
|
18
18
|
runs-on: ${{ matrix.buildplat[0] }}
|
|
19
|
+
env:
|
|
20
|
+
PYUVDATA_DATA_DIR: ${{ github.workspace }}/pooch_cache
|
|
19
21
|
strategy:
|
|
20
22
|
fail-fast: false
|
|
21
23
|
matrix:
|
|
@@ -35,13 +37,38 @@ jobs:
|
|
|
35
37
|
fetch-depth: 0
|
|
36
38
|
persist-credentials: false
|
|
37
39
|
|
|
40
|
+
# Only for the prefetch step below
|
|
41
|
+
- name: Setup Python
|
|
42
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
43
|
+
with:
|
|
44
|
+
python-version-file: pyproject.toml
|
|
45
|
+
|
|
46
|
+
# Suppress the cache-poisoning audit for this step, since the only way to fix it
|
|
47
|
+
# is to allow for lookup-only , which would stop the cache from being restored.
|
|
48
|
+
# Known issue: https://github.com/zizmorcore/zizmor/issues/2071 -- the ignore can
|
|
49
|
+
# get removed once the issue is implemented in zizmor.
|
|
50
|
+
- name: Restore cached test data
|
|
51
|
+
if: github.event_name != 'release'
|
|
52
|
+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 # zizmor: ignore[cache-poisoning]
|
|
53
|
+
with:
|
|
54
|
+
path: pooch_cache
|
|
55
|
+
key: pooch-${{ runner.os }}-${{ hashFiles('src/pyuvdata/datasets.py') }}
|
|
56
|
+
|
|
57
|
+
- name: Download any test data not already cached
|
|
58
|
+
shell: bash
|
|
59
|
+
run: |
|
|
60
|
+
python -m pip install pooch pyyaml
|
|
61
|
+
python ci/prefetch_test_data.py "$PYUVDATA_DATA_DIR"
|
|
62
|
+
|
|
38
63
|
- name: Build wheels
|
|
39
|
-
uses: pypa/cibuildwheel@
|
|
64
|
+
uses: pypa/cibuildwheel@1828c10ab37f080699c7b81cea34097c684a7074 # v4.2.0
|
|
40
65
|
env:
|
|
41
66
|
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}*
|
|
42
67
|
CIBW_ARCHS: ${{ matrix.buildplat[2] }}
|
|
43
68
|
CIBW_TEST_REQUIRES: "-r ci/test_requirements.txt"
|
|
44
69
|
CIBW_TEST_COMMAND: "pytest {project}/tests -n auto"
|
|
70
|
+
CIBW_ENVIRONMENT: PYUVDATA_DATA_DIR='${{ env.PYUVDATA_DATA_DIR }}'
|
|
71
|
+
CIBW_ENVIRONMENT_LINUX: PYUVDATA_DATA_DIR=/project/pooch_cache
|
|
45
72
|
|
|
46
73
|
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
47
74
|
with:
|
|
@@ -79,12 +106,6 @@ jobs:
|
|
|
79
106
|
path: dist
|
|
80
107
|
merge-multiple: true
|
|
81
108
|
|
|
82
|
-
- name: Upload to test PyPI
|
|
83
|
-
if: startsWith(github.ref, 'refs/tags')
|
|
84
|
-
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
85
|
-
with:
|
|
86
|
-
repository_url: https://test.pypi.org/legacy/
|
|
87
|
-
|
|
88
109
|
- name: Upload to PyPI
|
|
89
110
|
if: startsWith(github.ref, 'refs/tags')
|
|
90
|
-
uses: pypa/gh-action-pypi-publish@
|
|
111
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
@@ -39,7 +39,7 @@ jobs:
|
|
|
39
39
|
persist-credentials: false
|
|
40
40
|
|
|
41
41
|
- name: Setup Python
|
|
42
|
-
uses: actions/setup-python@
|
|
42
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
43
43
|
with:
|
|
44
44
|
python-version: ${{ matrix.python-version }}
|
|
45
45
|
|
|
@@ -17,7 +17,7 @@ repos:
|
|
|
17
17
|
args: ['--fix=no']
|
|
18
18
|
|
|
19
19
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
20
|
-
rev: v0.16.
|
|
20
|
+
rev: v0.16.7
|
|
21
21
|
hooks:
|
|
22
22
|
- id: ruff
|
|
23
23
|
- id: ruff-format
|
|
@@ -30,6 +30,6 @@ repos:
|
|
|
30
30
|
additional_dependencies: ["bandit[toml]"]
|
|
31
31
|
|
|
32
32
|
- repo: https://github.com/zizmorcore/zizmor-pre-commit
|
|
33
|
-
rev: v1.
|
|
33
|
+
rev: v1.30.1
|
|
34
34
|
hooks:
|
|
35
35
|
- id: zizmor
|
|
@@ -3,6 +3,34 @@ All notable changes to this project will be documented in this file.
|
|
|
3
3
|
|
|
4
4
|
## [Unreleased]
|
|
5
5
|
|
|
6
|
+
## [3.2.8] - 2025-09-18
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- A bug in `UVData.read_ms` where visibility units could not be parsed when stored in
|
|
10
|
+
a MeasurementSet as a singleton entry/list.
|
|
11
|
+
- A bug in `UVData.write_ms` which caused `corrected_data` and `model_data` not to be
|
|
12
|
+
reordered in the same way that, e.g., `UVData.data_array` was on write.
|
|
13
|
+
- A bug in `UVData.write_ms` which caused `corrected_data` and `model_data` not to be
|
|
14
|
+
conjugated (and inconsistent with `UVData.data_array`) when a mixture of baseline
|
|
15
|
+
conjugation schemes was present.
|
|
16
|
+
- A bug in `UVData.read_ms_cal` and `UVData.write_ms_cal` where gains tables where not
|
|
17
|
+
being conjugated correctly.
|
|
18
|
+
- A bug where the Jones array stored in calibration tables generated ny `UVCal.write_ms_cal`
|
|
19
|
+
could be incorrectly ordered.
|
|
20
|
+
- A bug where `utils.gain_interpolate.time_interp_cal` was not unwrapping phase gains
|
|
21
|
+
along the time axis correctly (mistakenly was using the Jones axis instead).
|
|
22
|
+
- A bug where calling `UVData.conjugate_bls` was not reordering `nsample_array` and
|
|
23
|
+
`flag_array` cross-polarization entries.
|
|
24
|
+
- A bug in `UVData.phase` where near-field phasing ignored `select_mask` and applied the
|
|
25
|
+
near-field correction to every record, overwriting the w-coordinate and rotating the
|
|
26
|
+
visibilities of records belonging to other phase centers.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- `UVData.read_ms` and `UVData.write_ms` now always flip conjugation scheme on read and
|
|
30
|
+
write for non-pyuvdata generated MeasurementSets (it was previously believed that when
|
|
31
|
+
ant1 > ant2, the conjugation scheme may be flipped, but that was a misreading of CASA's
|
|
32
|
+
codebase).
|
|
33
|
+
|
|
6
34
|
## [3.2.7] - 2025-08-20
|
|
7
35
|
|
|
8
36
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyuvdata
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.8
|
|
4
4
|
Summary: A pythonic interface for radio astronomy interferometry data
|
|
5
5
|
Author-email: Bryna Hazelton <brynah@phys.washington.edu>, Adam Beardsley <adam.beardsley@winona.edu>, Daniel Jacobs <daniel.c.jacobs@gmail.com>, Garrett Keating <garrett.keating@cfa.harvard.edu>, Nicholas Kern <nkern@mit.edu>, Matthew Kolopanis <matthew.kolopanis@gmail.com>, Adam Lanman <alanman@mit.edu>, Paul La Plante <paul.laplante@unlv.edu>, Steven Murray <murray.steveng@gmail.com>, Jonathan Pober <jonathan_pober@brown.edu>, Pyxie Star <pyxiestar@gmail.com>
|
|
6
6
|
Maintainer-email: Bryna Hazelton <brynah@phys.washington.edu>, Matthew Kolopanis <matthew.kolopanis@gmail.com>, Garrett Keating <garrett.keating@cfa.harvard.edu>, Steven Murray <murray.steveng@gmail.com>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
Download the pyuvdata test data into a shared pooch cache.
|
|
4
|
+
|
|
5
|
+
The wheel-building jobs run the test suite once per wheel, in an environment with a
|
|
6
|
+
cold cache, so each one re-downloads the whole test dataset from github. Running this
|
|
7
|
+
once on the runner and pointing the test environments at the result via the
|
|
8
|
+
PYUVDATA_DATA_DIR environment variable turns those N downloads into one.
|
|
9
|
+
|
|
10
|
+
Usage: python ci/prefetch_test_data.py <cache_dir>
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
import importlib.util
|
|
14
|
+
import os
|
|
15
|
+
import sys
|
|
16
|
+
import types
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
20
|
+
SRC = REPO_ROOT / "src" / "pyuvdata"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def load_datasets_module():
|
|
24
|
+
"""
|
|
25
|
+
Load pyuvdata.datasets without importing pyuvdata itself.
|
|
26
|
+
|
|
27
|
+
Importing the real package pulls in the compiled extensions, which have not been
|
|
28
|
+
built yet when this runs. datasets.py only needs DATA_PATH from the parent, so
|
|
29
|
+
stub out just enough of the package for it to import.
|
|
30
|
+
"""
|
|
31
|
+
pkg = types.ModuleType("pyuvdata")
|
|
32
|
+
pkg.__path__ = [str(SRC)]
|
|
33
|
+
data_pkg = types.ModuleType("pyuvdata.data")
|
|
34
|
+
data_pkg.DATA_PATH = str(SRC / "data")
|
|
35
|
+
sys.modules["pyuvdata"] = pkg
|
|
36
|
+
sys.modules["pyuvdata.data"] = data_pkg
|
|
37
|
+
|
|
38
|
+
spec = importlib.util.spec_from_file_location(
|
|
39
|
+
"pyuvdata.datasets", SRC / "datasets.py"
|
|
40
|
+
)
|
|
41
|
+
module = importlib.util.module_from_spec(spec)
|
|
42
|
+
sys.modules["pyuvdata.datasets"] = module
|
|
43
|
+
spec.loader.exec_module(module)
|
|
44
|
+
return module
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def main():
|
|
48
|
+
"""Fetch every dataset in the registry into the requested cache directory."""
|
|
49
|
+
if len(sys.argv) != 2:
|
|
50
|
+
sys.exit(f"usage: {sys.argv[0]} <cache_dir>")
|
|
51
|
+
|
|
52
|
+
# pooch reads this when the Pooch object is created, so it has to be set before
|
|
53
|
+
# datasets.py is executed.
|
|
54
|
+
cache_dir = Path(sys.argv[1]).resolve()
|
|
55
|
+
os.environ["PYUVDATA_DATA_DIR"] = str(cache_dir)
|
|
56
|
+
|
|
57
|
+
datasets = load_datasets_module()
|
|
58
|
+
print(f"Caching {len(datasets.fetch_dict)} datasets into {datasets.pup.abspath}")
|
|
59
|
+
|
|
60
|
+
for name in datasets.fetch_dict:
|
|
61
|
+
datasets.fetch_data(name)
|
|
62
|
+
|
|
63
|
+
print(f"Done. Cache is at {datasets.pup.abspath}")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
if __name__ == "__main__":
|
|
67
|
+
main()
|
|
@@ -23,13 +23,16 @@ the position of the first (after which various rotations are applied). The secon
|
|
|
23
23
|
*ant1-ant2*, where :math:`\mathcal{V}_{12}=\langle V_{1} V_{2}^{*} \rangle`, and the
|
|
24
24
|
*uvw*-coordinate is calculated by taking the position of the first antenna minus
|
|
25
25
|
the second. The pyuvdata software package uses the *ant2-ant1* convention, as does
|
|
26
|
-
MIRIAD; with UVFITS, FHD, and
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
MIRIAD; with UVFITS, FHD, Mir, and MeasurementSet (used within CASA) formats using the
|
|
27
|
+
opposite convention. Note that this also applies to calibration solutions derived from
|
|
28
|
+
the dataset, with the implication being that gains solved in the *ant2-ant1* convention
|
|
29
|
+
are the complex conjugates of those solved in the *ant1-ant2* convention.
|
|
30
|
+
|
|
31
|
+
Note that separately from the conjugation convention, some platforms have requirements
|
|
32
|
+
for which antenna is listed first in the baseline (e.g., AIPS needs UVFITS files
|
|
33
|
+
recorded with :math:`\text{ant1}<\text{ant2}`), separate from the conjugation
|
|
34
|
+
convention. pyuvdata is able to support so-called "mixed" conventions in this respect,
|
|
35
|
+
with the antenna ordering convention being independent of the conjugation convention.
|
|
33
36
|
|
|
34
37
|
Phase Center Types
|
|
35
38
|
------------------
|