Main Features and Updates
New Spectral Model: N<sub>2</sub>H<sup>+</sup>
This release introduces a new, 2-component spectra model to fit N<sub>2</sub>H<sup>+</sup> (1–0) lines, in addition to the pre-existing NH<sub>3</sub> (1,1) 2-component models described in [Chen et al. (2020)](https://ui.adsabs.harvard.edu/link_gateway/2020ApJ...891...84C/doi:10.3847/1538-4357/ab7378). The implementation of the N<sub>2</sub>H<sup>+</sup> model was led by jcaza02.
Likelihood Calculation Patch for Refits
The previous versions contain a long-standing bug where the calculated relative log-likelihood (ln _k_) for pixels replaced by a refit can be incorrect, even though the pixel was correctly replaced with a better 2-component model as determined by the AICc. The bug ultimately only affects how pixels were selected for refits, following the initial attempt. The ln _k_ maps saved by `save_best_2comp_fit` were unaffected, since the saving method was designed to isolate these types of bugs. The bug also did not affect refit selection that was performed fresh from loading the earlier results from a new instance of the `UltraCube` class.
Python 3.12 Compitable
MUFASA is now `Python 3.12` compatible. Installation requirements, specifically for the `pyspeckit` and `FITS_tools` packages, have been specified in `setup.py` to ensure compatibility.
New Refitting Method
The `refit_bad_2comp` module under `master_fitter.py` now contains a new guessing method called `'best_neighbour'` and is made the default option. The `'best_neighbour'` method uses the best-fit model in a pixel's immediate neighbourhood as its guesses for the refit.
Visualization Tools
MUFASA now has visualization tools to plot the spectral fits in a grid and modelled parameters in 3D (PPV).
Documentation on Read the Docs
MUFASA now has a documentation [site](https://mufasa.readthedocs.io/en/latest/) on Read the Docs
**Notable Changes**
**Bug Fixes and Stability Improvements**
- Fixed long-standing bug in `load_model` when converting between km/s and GHz by [mcyc](https://github.com/mcyc/mufasa/pull/20).
- Fixed small pixel-number bug and refined guessing with `astropy`'s convolve as the default method by [mcyc](https://github.com/mcyc/mufasa/pull/64).
- Addressed invalid starting position bug by [mcyc](https://github.com/mcyc/mufasa/pull/88).
- Patched `pandas` forward-compatibility issue by [mcyc](https://github.com/mcyc/mufasa/pull/71).
- Addressed **`astropy 6.1.4` compatibility** issues by [mcyc](https://github.com/mcyc/mufasa/pull/122).
- Improved unit handling with automatic checks and conversions when loading cubes by [mcyc](https://github.com/mcyc/mufasa/pull/195).
**Refitting and Model Enhancements**
- Added a new **refit method**: `'best_neighbour'`, now the default option in `refit_bad_2comp`, by [mcyc](https://github.com/mcyc/mufasa/pull/53).
- Enhanced refit capabilities:
- **Masked recalculations** [mcyc](https://github.com/mcyc/mufasa/pull/114).
- **Refitting marginally good models** with `refit_marginal()` by [mcyc](https://github.com/mcyc/mufasa/pull/157).
- Generalized `replace_bad_pix()` for broader applications by [mcyc](https://github.com/mcyc/mufasa/pull/179).
- Improved wide 2-component refitting for NH₃ by [mcyc](https://github.com/mcyc/mufasa/pull/131).
- Changed `lnk_thresh` default to `-5` in `refit_bad_2comp` by [mcyc](https://github.com/mcyc/mufasa/pull/135).
**New Features and Tools**
- Added **spectral model support** for N₂H⁺ (1–0), building on contributions by [jcaza02](https://github.com/mcyc/mufasa/pull/36) and [mcyc](https://github.com/mcyc/mufasa/pull/53).
- Implemented **visualization tools**:
- Spectral fit visualization and saved FITS loading by [mcyc](https://github.com/mcyc/mufasa/pull/154).
- Added visualization example to `README.md` [mcyc](https://github.com/mcyc/mufasa/pull/155).
- Enabled **3D PPV scatter plots** by [mcyc](https://github.com/mcyc/mufasa/pull/165).
- Improved peak T estimator accuracy within the `MetaModel` class by [mcyc](https://github.com/mcyc/mufasa/pull/198).
**Performance and Efficiency**
- Improved **memory efficiency** for moment and SNR estimates by [mcyc](https://github.com/mcyc/mufasa/pull/177).
- Improved multicore selection for parallel processing by [taiwithers](https://github.com/mcyc/mufasa/pull/57).
**Logging and Error Handling**
- Added robust **logging functionality** by [taiwithers](https://github.com/mcyc/mufasa/pull/27).
- Implemented time-stamped logging for better debugging and reproducibility by [mcyc](https://github.com/mcyc/mufasa/pull/68).
- Introduced custom **exception classes** for in-house error handling by [mcyc](https://github.com/mcyc/mufasa/pull/141).
**Documentation**
- Released the **first complete MUFASA documentation website** on Read the Docs by [mcyc](https://github.com/mcyc/mufasa/pull/216).
New Contributors
* taiwithers made their first contribution in https://github.com/mcyc/mufasa/pull/23
* jcaza02 made their first contribution in https://github.com/mcyc/mufasa/pull/36
**Full Changelog**: https://github.com/mcyc/mufasa/compare/v1.2.0...v1.4.0