Skip to content

Commit 4bf2b13

Browse files
committed
update the tutorial and changelog
1 parent 5c27852 commit 4bf2b13

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ All notable changes to this project will be documented in this file.
33

44
## [Unreleased]
55

6+
### Added
7+
- Support for MWA Average Embedded Element beams in UVBeam.
8+
69
## [3.2.6] - 2025-03-13
710

811
### Added

docs/uvbeam_tutorial.rst

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,7 @@ UVBeam: Instantiating a UVBeam object from a file (i.e. reading data)
6969

7070
Use the :meth:`pyuvdata.UVBeam.from_file` to instantiate a UVBeam object from
7171
data in a file (alternatively you can create an object with no inputs and then
72-
call the :meth:`pyuvdata.UVBeam.read` method). Most file types require a single
73-
file or folder to instantiate an object, FHD and raw MWA correlator data sets
74-
require the user to specify multiple files for each dataset.
72+
call the :meth:`pyuvdata.UVBeam.read` method).
7573

7674
``pyuvdata`` can also be used to create a UVBeam object from arrays in memory
7775
(see :ref:`new_uvbeam`) and to read in multiple datasets (files) into a single
@@ -82,18 +80,29 @@ a) Instantiate an object from a single file or folder
8280
*****************************************************
8381
BeamFITS and MWA beams are stored in a single file.
8482

85-
To get all the frequencies available for the MWA full embedded element beam
86-
you need to download the output simulation file via
87-
`wget http://cerberus.mwa128t.org/mwa_full_embedded_element_pattern.h5`
88-
For this tutorial we use the file saved in the test data which only
89-
contains a few frequencies.
83+
To get all the frequencies available for the MWA beams you need to download the
84+
output simulation file(s) for the model you want:
85+
86+
- for the full embedded element (FEE) beam use:
87+
``wget http://cerberus.mwa128t.org/mwa_full_embedded_element_pattern.h5``
88+
- for the average embedded element (AEE) beam use:
89+
``wget https://github.com/MWATelescope/mwa_pb/blob/master/mwa_pb/data/Jmatrix.fits``
90+
and
91+
``wget https://github.com/MWATelescope/mwa_pb/blob/master/mwa_pb/data/Zmatrix.fits``
92+
93+
For this tutorial we use the files saved in the test data which only
94+
contain a few frequencies.
9095

9196
For MWA beams, which are composed of phased arrays of dipoles, you can specify
9297
delay and amplitude arrays to generate beams pointed any where or with varying
9398
gains per dipole. Set a delay to 32 to get a beam where that dipole is turned
94-
off (or set the amplitude to zero). The native format of the beam is spherical
95-
harmonic modes, so there is also an option `pixels_per_deg` to set the output
96-
beam resolution (default is 5 pixels per degree).
99+
off (or set the amplitude to zero).
100+
101+
Depending on the beam version you want, you also need to specify some other paramers:
102+
103+
- For the AEE beam you need to pass the Z matrix file to the ``mwa_zfile`` parameter.
104+
- The native format of the FEE beam is spherical harmonic modes, so there is also
105+
a ``pixels_per_deg`` parameter to set the output beam resolution (default is 5 pixels per degree).
97106

98107
.. clear-namespace
99108
@@ -103,16 +112,20 @@ beam resolution (default is 5 pixels per degree).
103112
from pyuvdata import UVBeam
104113
from pyuvdata.datasets import fetch_data
105114
106-
filename = fetch_data("mwa_full_EE")
115+
fee_filename = fetch_data("mwa_full_EE")
116+
aee_filename = fetch_data("mwa_jmatrix")
117+
aee_z_filename = fetch_data("mwa_zmatrix")
107118
# for a zenith pointed beam let the delays default to all zeros
108-
beam = UVBeam.from_file(filename)
119+
fee_beam = UVBeam.from_file(fee_filename)
120+
aee_beam = UVBeam.from_file(aee_filename, mwa_zfile=aee_z_filename)
109121
110122
# to point the beam off zenith apply a delay slope across the tile
111123
# use the same pointing for both pols.
112124
delays = np.empty((2, 16), dtype=int)
113125
for pol in range(2):
114126
delays[pol] = np.tile(np.arange(0, 8, 2), 4)
115-
beam = UVBeam.from_file(filename, pixels_per_deg=1, delays=delays)
127+
fee_beam = UVBeam.from_file(fee_filename, pixels_per_deg=1, delays=delays)
128+
aee_beam = UVBeam.from_file(aee_filename, mwa_zfile=aee_z_filename, delays=delays)
116129
117130
118131
a) Instantiate an object from CST or FEKO beam files

0 commit comments

Comments
 (0)