Advanced Topics

Configurable parameters

To see the configurable parameters in McFine, there is an in-built convenience function:

from mcfine.utils import print_config_params
print_config_params()

This will list all the parameters, as well as their type and default values.

Adding another line

It is possible to add other lines to McFine relatively simply. The majority of the info just needs to be put into line_info.py. For the LTE case, these are v_lines and strength_lines. For a single-peak line, this is just 0 and 1. For RT there’s transition_lines and freq_lines. These should descend from the RADEX naming scheme. Once you’ve added those, include your new line in ALLOWED_LINES in fitting.py, and edit the config file to use this new line.

Limiting number of processes

McFine is highly multi-processed, but so are a number of packages that McFine relies on which can cause issues, especially on larger machines. To limit the number of threads packages such as numpy will use, before you call your code you can put (in the shell):

setenv MKL_NUM_THREADS 1
setenv NUMEXPR_NUM_THREADS 1
setenv OMP_NUM_THREADS 1
setenv OPENBLAS_NUM_THREADS 1
setenv GOTO_NUM_THREADS 1

or the equivalent EXPORT call, depending on the shell you use.