convolve-rs 1.1.2

Rust port of beamcon from RACS-tools: smooth FITS images and cubes to a common beam via UV-plane (FFT) convolution
# CLI usage

The `convolvers` binary is the command-line interface, a port of `beamcon_2D`
and `beamcon_3D` from
[RACS-tools](https://github.com/alecthomson/RACS-tools). Install it with:

```sh
cargo install convolve-rs
```

```{note}
The help text on this page is generated by running the binary at docs build
time, so it always matches the documented version.
```

```{command-output} cargo run -q --bin convolvers -- --help
:cwd: ..
```

## Common workflows

Smooth a set of images to their common beam:

```sh
convolvers 2d *.fits
```

Smooth to an explicit target beam (all three of `--bmaj`, `--bmin`, `--bpa`
required):

```sh
convolvers 2d --bmaj 20 --bmin 20 --bpa 0 image.fits
```

Report the common beam without writing anything:

```sh
convolvers 2d --dryrun *.fits
```

Smooth cubes channel-by-channel (`natural`, the default) or to one beam across
all channels and cubes (`total`):

```sh
convolvers 3d --mode total cube1.fits cube2.fits
```

## `convolvers 2d`

```{command-output} cargo run -q --bin convolvers -- 2d --help
:cwd: ..
```

## `convolvers 3d`

```{command-output} cargo run -q --bin convolvers -- 3d -h
:cwd: ..
```

Per-channel beams are read from, in priority order:

1. CASA `BEAMS` binary-table extension (`CASAMBM=T` in the header)
2. A co-located beamlog text file: `{dir}/beamlog.{stem}.txt`
3. Single `BMAJ`/`BMIN`/`BPA` from the primary header (broadcast to all
   channels)