Recent Releases of WODEN

WODEN - v2.6.0-alpha pyuvdata UVBeam

  • You can run HERA primary beams via pyuvdata.UVBeam models, via --primary_beam=uvbeam_HERA, and either linking a set of CST files via --cst_file_list or a single beam FITS file via --uvbeam_file_path.
    • You can also run the UVBeam MWA beam model via --primary_beam=uvbeam_MWA, which will use the existing environment variables to read in mwa_full_embedded_element_pattern.h5. Full support for flagging and dipole amplitudes is implemented in the same way it is for mwa_hyperbeam. UVBeam does use more memory and far more compute, so be aware. It does frequency interpolation however, so gives you more spectrally smooth outputs.
    • Slightly experimental support to move the array location in a measurement set to a new lat/lon, e.g. you can move a LOFAR measurement set to the MWA lat/lon, and use EveryBeam to simulate LOFAR at Inyarrimanha Ilgari Bundara (MWA site). To do this, have to rotate array positions, but also renormalise each station to a new faux-zenith direction. See the example detailed here for notes on accuracy.

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine 7 months ago

WODEN - v2.5.0-alpha CPU mode

  • CPU-only mode! Just add --cpu_mode to run_woden.py. You should use this when running with an EveryBeam primary beam, as >= 70% of all computation time is spent in the primary beam calculation. On a cluster, the GPU just sits there doing nothing but costing you and the environment.
  • All GPU functions have equivalent CPU functions written in C. Zero optimisation on the C code at the moment, as the main reason for CPU mode is using EveryBeam, and EveryBeam is the bottleneck.
  • EveryBeam is now called directly from C++ rather than the Python wrapper. It's a good deal faster that way.

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine 9 months ago

WODEN - v2.4.0-alpha Use EveryBeam

  • You can now use the EveryBeam package to create a LOFAR, OSKAR, or MWA primary beam. You need an appropriate measurement set as an input to run EveryBeam. See the LOFAR examples on the examples page to see how things are run
  • EveryBeam runs on the CPU. These calculations happen as each skymodel chunk is read in. As a result, WODEN is now multi-threaded at this stage to try and speed things up, and will default to using as many cores as it can find. To revert to old behaviour, run with --num_threads=1
  • Never fear, you don't have to use EveryBeam. WODEN uses the Everybeam Python wrapper. If you don't want to install EveryBeam, WODEN just checks it exists at run time, and if it doesn't, WODEN ignores it entirely. Unless you ask it to run an EveryBeam primary beam, then WODEN will refuse and you'll be sad.
  • More details and integration tests can be found on the EveryBeam testing page

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine about 1 year ago

WODEN - v2.3.0-alpha Stokes QUV

  • Full polarisation is back! You can now simulate visibilities using QUV information in the skymodel, and they can be independent to Stokes I. In fact, you can set Stokes I to zero in the sky model, and still enter QUV information.
  • Stokes V can either be a power-law, curved power-law, be a polarisation fraction of Stokes I, or be a list of flux densities.
  • Linear polarisation (Q and U) can either be a power-law, curved power-law, be a polarisation fraction of Stokes I, or be a list of flux densities. The first three are always used in conjunction with a rotation measure. List-type fluxes can be given separately for Q and U, which makes Q and U independent of each other. Alternatively, a single list of linear polarisation fluxes can be given, which is used in conjunction with a rotation measure to determine Q and U.
  • Also worked out a way to dynamically create the ctypes classes used to mirror the structs used in the C code, as they needed either float or double precision. Removes the need for having two different sets of near identical code.

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine over 1 year ago

WODEN - v2.2.0-alpha HIP support

Get a bunch of macros in there thanks to Marcin Sokolowski to run on HIP, so in theory WODEN can be run on AMD GPUs now. Tested to run on Setonix, but nowhere else, hence this is an alpha release. Also thanks to Dev Null for getting things working on Setonix. Made a bunch of Docker images.

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine over 1 year ago

WODEN - v2.1.0 MWA FEE dipole flagging and amplitudes

  • Dipole flagging for the MWA FEE beam is now enabled (--use_MWA_dipflags)
  • Dipole amplitudes for the MWA FEE beam is now enabled (--use_MWA_dipamps). Needs a modified metafits file to work, including the column Dipamps
  • Things are still all Stokes I; plan is to implement QUV in version 2.2

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine over 1 year ago

WODEN - Creation of `wodenpy` and introduction of the FITS skymodel and lazy loading

Big changes going into version 2.0.0:

  • Large swathes of the code have been transferred from C into python
  • The C/CUDA code that remains is called directly from python now, meaning the .json and .dat files are no longer needed
  • A new FITS sky model format is supported, meaning you can run simulations with greater than 25 million components via lazy loading
  • I've done away with using Stokes QUV to speed things up. The plan is to implement some kind of rotation measure model to include Q/U, and reinstate Stokes V in a future release
  • There is a now a docker image, which means you might be able to get away with not installing things yourself. Check out the installation guide in the documentation
  • Updated to use hyperbeam v0.6.0

Full Changelog: https://github.com/JLBLine/WODEN/compare/v1.3.0...v2.0.0

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine about 2 years ago

WODEN - Swap bespoke MWA FEE code for `mwa_hyperbeam`

This release swaps out the MWA Fully Embedded Element primary beam code, which was adapted from the RTS, with mwa_hyperbeam. This has garnered a significant speed up when running using the --primary_beam=MWA_FEE_interp flag. It does add another dependency but extra installation notes have been added accordingly.

Took the opportunity to consolidate some functionality and modify the structs used to store sky model and beam gain information to tidy the code up. These changes have not affected the functionality but should make things easier to read / modify going forward.

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine almost 4 years ago

WODEN - Frequency-smooth MWA primary beams

This release adds two new primary beam models:

  • --MWA_FEE_interp - adds the ability to use the new hdf5 MWA Fully Embedded Element (FEE) file MWA_embedded_element_pattern_rev2_interp_167_197MHz.h5, which contains frequency interpolated coefficients. At the time of this release, this file was unpublished. If the documentation doesn't specify how to obtain the file yet, please contact jack.line@curtin.edu.au to obtain/discuss. This file only spans the frequencies between 167 and 197 MHz
  • --MWA_analy - An analytic version of the MWA primary beam. Not as accurate as the MWA FEE beam, but covers all frequencies, allowing smooth spectral behaviours at all frequencies.

Both new models have had tests written for them, and updated documentation.

Also note that run_woden.py should work from both a git repo and the release tarball now (previously it only worked from a git repo).

Full Changelog: https://github.com/JLBLine/WODEN/compare/v1.1.0...v1.2.0

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine almost 4 years ago

WODEN - JOSS reviewed version

WARNING - run_woden.py was hard-coded to run from a git repository, so if you download the release source code, it won't work. You have two options to fix this:

  1. (Best solution) Clone the WODEN repo and revert to v1.1.0 via the command: git reset --hard v1.1.0
  2. (Alternative solution) Download the release source code, and edit line 1335 of run_woden.py, and delete the line gitlabel = check_output(["git", "describe", "--always"],universal_newlines=True).strip() and replace it with gitlabel = "v1.1.0"

This release includes all the changes implemented during the JOSS paper review, namely:

  • Adding a switch that allows toggling between float and double precision
  • An estimation on the absolute accuracy of the simulation package as a whole
  • Huge additions to the documentation, especially on what the unit tests are doing
  • An option to make install, which installs to the default installation path
  • Code coverage reports on the C and python code
  • Making the output uvfits files capable of being read into pyuvdata
  • Adding community guidelines of how to contribute

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine almost 4 years ago

WODEN - Initial working release

I seriously advise to use later versions of WODEN, this one is old and crummy now.

This is the first release of WODEN, where the basic functionality has been tested and documented. This version includes simulations via point source, Gaussian, and shapelet sky models, and can simulate the MWA and EDA2 primary beams, along with a Gaussian primary beam. This version includes the MWA FEE beam, at a coarse resolution of 1.28MHz.

NOTE - in this old version, you must set the evironment variable WODEN_DIR to where you build the code, e.g. export WODEN_DIR=/home/jline/software/WODEN-1.0.0/build

WARNING - run_woden.py was hard-coded to run from a git repository, so if you download the release source code, it won't work. You have two options to fix this:

  1. (Best solution) Clone the WODEN repo and revert to v1.0.0 via the command: git reset --hard v1.0.0
  2. (Alternative solution) Download the release source code, and edit line 1198 of run_woden.py, and delete the line gitlabel = check_output(["git", "describe", "--always"],universal_newlines=True).strip() and replace it with gitlabel = "v1.0.0"

Scientific Software - Peer-reviewed - Jupyter Notebook
Published by JLBLine over 4 years ago