Installation instructions
=========================
I recommend installing *stctm* in a clean conda environment, as with any new package.
Example command-line commands could look like this::
conda create -n mystctm_env python=3.10.4
conda activate mystctm_env
You can clone *stctm* directly from GitHub and place it in your installation at the path of your choice::
git clone https://github.com/cpiaulet/stctm.git
cd stctm
pip install -e .
Dependencies
------------
The dependencies of *stctm* are: *NumPy*, *scipy*, *emcee*, *corner*, *astropy*, *h5py*, *matplotlib*, *pandas*, *pysynphot*, and *tqdm* (for progress bar with MCMC retrievals).
Stellar model package installation
----------------------------------
You may also need the additional dependency *pymsg* (my personal favorite).
To install *pymsg*, you can find instructions at `MSG documentation `_, and then download the grid(s) of your choice from `MSG grids `_.
Required inputs: the stellar models grid
----------------------------------------
The code needs as input a grid of stellar models as a function of wavelength, with a regular spacing in log g and effective temperature.
I included in the repository an auxiliary file that allows you to create such a model grid (``create_fixedR_grid_pymsg_template.py``) using *pymsg*.
To make the first setup and testing of the installation easier, I provide on Zenodo the stellar models grid I generated for TRAPPIST-1. This grid is used in all the examples listed below, and contains a grid of models generated with the MSG package.
You can download it from the latest Zenodo link: `https://doi.org/10.5281/zenodo.15334399 `_ (``TRAPPIST_1_pymsg.h5``).
To run all the tests and examples in this documentation, please copy this file to the folder ``example/R10000_model_grids``. If you want to reproduce without any edits to the code all the tests and examples mentioned below, you will need to save this file with a relative path of ``../../R10000_model_grids/TRAPPIST_1_pymsg.h5`` relative to where the example run files for *stctm* and *exotune* are located.
To generate your own grid of interpolated models using MSG for any star of your choosing, following the instructions under `Create your own grid of stellar models using MSG <#create-your-own-grid-of-stellar-models-using-msg>`_.
Testing your installation
-------------------------
I created a dummy spectrum (with only 1 point) so you can run a few-second test of the code on your laptop for both serial and parallel runs.
#. Copy the contents of the ``example/`` directory wherever in your installation you want to run the code.
#. Make sure you have a suitable stellar models grid at the path recommended above.
#. Confirm that your environment paths are set up properly. Specifically, you need to have the ``CRDS_SERVER_URL``, ``CRDS_PATH``, and ``PYSYN_CDBS`` environment variables defined.
You can do this via the command-line (see example below for ``CRDS_PATH``)::
export CRDS_PATH=/home/yourusername/crds_cache
or in the code of the analysis file itself::
import os
os.environ['CRDS_PATH'] = "/home/yourusername/crds_cache"
#. Navigate to your copy of ``stellar_contamination_analysis/template_analysis/`` and run the following test in the command line::
stctm_TLS test_ini_stctm.toml
This should display print statements as the code is running, and create a directory with output files for this "mock" fit under ``stellar_contamination_results/``.
To test instead that the parallel version of the code works (with my custom wrapper around multiprocessing ``Pool``), you can simply run::
stctm_TLS test_ini_stctm.toml -parallel=True -ncpu=2 -res_suffix=singlebin_testcode_parallel
... and that's it! You can read more in the following pages on how to customize what you do with *stctm*.