From 2717f3aa36899a53fbda089d2b0186c53e4418b5 Mon Sep 17 00:00:00 2001 From: Bryna Hazelton Date: Wed, 18 Sep 2024 14:52:31 -0700 Subject: [PATCH] move analytic_beam.py and beam_interface.py to top level --- src/pyuvdata/__init__.py | 11 ++---- src/pyuvdata/{uvbeam => }/analytic_beam.py | 6 ++-- src/pyuvdata/{uvbeam => }/beam_interface.py | 0 src/pyuvdata/data/test_analytic_beam.py | 2 +- src/pyuvdata/uvbeam/__init__.py | 2 -- tests/conftest.py | 37 +++++++++++++++++++++ tests/{uvbeam => }/test_analytic_beam.py | 2 +- tests/{uvbeam => }/test_beam_interface.py | 0 tests/uvbeam/conftest.py | 36 -------------------- 9 files changed, 45 insertions(+), 51 deletions(-) rename src/pyuvdata/{uvbeam => }/analytic_beam.py (99%) rename src/pyuvdata/{uvbeam => }/beam_interface.py (100%) rename tests/{uvbeam => }/test_analytic_beam.py (99%) rename tests/{uvbeam => }/test_beam_interface.py (100%) diff --git a/src/pyuvdata/__init__.py b/src/pyuvdata/__init__.py index b09b6589e..626305a72 100644 --- a/src/pyuvdata/__init__.py +++ b/src/pyuvdata/__init__.py @@ -45,16 +45,11 @@ def branch_scheme(version): # pragma: nocover warnings.filterwarnings("ignore", message="numpy.dtype size changed") warnings.filterwarnings("ignore", message="numpy.ufunc size changed") +from .analytic_beam import AiryBeam, GaussianBeam, ShortDipoleBeam, UniformBeam # noqa +from .beam_interface import BeamInterface # noqa from .telescopes import Telescope # noqa from .telescopes import get_telescope # noqa # NB: get_telescopes is deprecated -from .uvbeam import ( # noqa - AiryBeam, - BeamInterface, - GaussianBeam, - ShortDipoleBeam, - UniformBeam, - UVBeam, -) +from .uvbeam import UVBeam # noqa from .uvcal import UVCal # noqa from .uvdata import FastUVH5Meta # noqa from .uvdata import UVData # noqa diff --git a/src/pyuvdata/uvbeam/analytic_beam.py b/src/pyuvdata/analytic_beam.py similarity index 99% rename from src/pyuvdata/uvbeam/analytic_beam.py rename to src/pyuvdata/analytic_beam.py index 62c6652c2..5c8fcaed8 100644 --- a/src/pyuvdata/uvbeam/analytic_beam.py +++ b/src/pyuvdata/analytic_beam.py @@ -17,9 +17,9 @@ from astropy.constants import c as speed_of_light from scipy.special import j1 -from .. import utils -from ..docstrings import combine_docstrings -from .uvbeam import UVBeam, _convert_feeds_to_pols +from . import utils +from .docstrings import combine_docstrings +from .uvbeam.uvbeam import UVBeam, _convert_feeds_to_pols __all__ = ["AnalyticBeam", "AiryBeam", "GaussianBeam", "ShortDipoleBeam", "UniformBeam"] diff --git a/src/pyuvdata/uvbeam/beam_interface.py b/src/pyuvdata/beam_interface.py similarity index 100% rename from src/pyuvdata/uvbeam/beam_interface.py rename to src/pyuvdata/beam_interface.py diff --git a/src/pyuvdata/data/test_analytic_beam.py b/src/pyuvdata/data/test_analytic_beam.py index 466718166..2ba2bdcfa 100644 --- a/src/pyuvdata/data/test_analytic_beam.py +++ b/src/pyuvdata/data/test_analytic_beam.py @@ -7,7 +7,7 @@ import numpy.typing as npt -from ..uvbeam.analytic_beam import AnalyticBeam +from ..analytic_beam import AnalyticBeam @dataclass(kw_only=True) diff --git a/src/pyuvdata/uvbeam/__init__.py b/src/pyuvdata/uvbeam/__init__.py index b208d9904..ce9798348 100644 --- a/src/pyuvdata/uvbeam/__init__.py +++ b/src/pyuvdata/uvbeam/__init__.py @@ -3,6 +3,4 @@ """Init file for UVBeam.""" -from .analytic_beam import AiryBeam, GaussianBeam, ShortDipoleBeam, UniformBeam # noqa -from .beam_interface import BeamInterface # noqa from .uvbeam import * # noqa diff --git a/tests/conftest.py b/tests/conftest.py index 1d72c9609..3dd03caf5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -5,6 +5,7 @@ import os +import numpy as np import pytest from astropy.coordinates import EarthLocation from astropy.time import Time @@ -123,3 +124,39 @@ def uvcalibrate_uvdata_oldfiles(uvcalibrate_uvdata_oldfiles_main): uvd = uvcalibrate_uvdata_oldfiles_main.copy() yield uvd + + +@pytest.fixture() +def az_za_coords(): + az_array = np.deg2rad(np.linspace(0, 350, 36)) + za_array = np.deg2rad(np.linspace(0, 90, 10)) + + return az_array, za_array + + +@pytest.fixture() +def az_za_deg_grid(az_za_coords): + az_array, za_array = az_za_coords + freqs = np.linspace(100, 200, 11) * 1e8 + + az_vals, za_vals = np.meshgrid(az_array, za_array) + + return az_vals.flatten(), za_vals.flatten(), freqs + + +@pytest.fixture() +def xy_grid(): + nfreqs = 20 + freqs = np.linspace(100e6, 130e6, nfreqs) + + xy_half_n = 250 + zmax = np.radians(90) # Degrees + arr = np.arange(-xy_half_n, xy_half_n) + x_arr, y_arr = np.meshgrid(arr, arr) + x_arr = x_arr.flatten() + y_arr = y_arr.flatten() + radius = np.sqrt(x_arr**2 + y_arr**2) / float(xy_half_n) + za_array = radius * zmax + az_array = np.arctan2(y_arr, x_arr) + + return az_array, za_array, freqs diff --git a/tests/uvbeam/test_analytic_beam.py b/tests/test_analytic_beam.py similarity index 99% rename from tests/uvbeam/test_analytic_beam.py rename to tests/test_analytic_beam.py index b06964129..b93ca7fbe 100644 --- a/tests/uvbeam/test_analytic_beam.py +++ b/tests/test_analytic_beam.py @@ -10,7 +10,7 @@ from scipy.special import j1 from pyuvdata import AiryBeam, GaussianBeam, ShortDipoleBeam, UniformBeam, UVBeam -from pyuvdata.uvbeam.analytic_beam import AnalyticBeam +from pyuvdata.analytic_beam import AnalyticBeam def test_airy_beam_values(az_za_deg_grid): diff --git a/tests/uvbeam/test_beam_interface.py b/tests/test_beam_interface.py similarity index 100% rename from tests/uvbeam/test_beam_interface.py rename to tests/test_beam_interface.py diff --git a/tests/uvbeam/conftest.py b/tests/uvbeam/conftest.py index 7114608e3..e944c2c8c 100644 --- a/tests/uvbeam/conftest.py +++ b/tests/uvbeam/conftest.py @@ -336,39 +336,3 @@ def phased_array_beam_1freq(phased_array_beam_2freq): yield beam del beam - - -@pytest.fixture() -def az_za_coords(): - az_array = np.deg2rad(np.linspace(0, 350, 36)) - za_array = np.deg2rad(np.linspace(0, 90, 10)) - - return az_array, za_array - - -@pytest.fixture() -def az_za_deg_grid(az_za_coords): - az_array, za_array = az_za_coords - freqs = np.linspace(100, 200, 11) * 1e8 - - az_vals, za_vals = np.meshgrid(az_array, za_array) - - return az_vals.flatten(), za_vals.flatten(), freqs - - -@pytest.fixture() -def xy_grid(): - nfreqs = 20 - freqs = np.linspace(100e6, 130e6, nfreqs) - - xy_half_n = 250 - zmax = np.radians(90) # Degrees - arr = np.arange(-xy_half_n, xy_half_n) - x_arr, y_arr = np.meshgrid(arr, arr) - x_arr = x_arr.flatten() - y_arr = y_arr.flatten() - radius = np.sqrt(x_arr**2 + y_arr**2) / float(xy_half_n) - za_array = radius * zmax - az_array = np.arctan2(y_arr, x_arr) - - return az_array, za_array, freqs