====== Polpy & threeML====== Below are the instructions to install __Polpy__ and __threeML__. Everything is to be done inside the Python environment. ===== Prerequisites ===== **The process of installing Prerequisites varies with different operating systems.** **1. If you are using a MacOSX-arm64 system, please follow:** 1.1 Install miniconda3 First, we need to install miniconda Do this through: mkdir -p ~/miniconda3 curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 rm ~/miniconda3/miniconda.sh 1.2 Conda Environment Set up a Python virtual environment using conda (install Anaconda if you don't have it already). Do this through conda create -n polpyenv python=3.9 Activate your conda environment conda activate polpyenv When you finish your analysis, you can exit the environment by conda deactivate polpyenv You can deactivate it through "conda deactivate". Install pip inside conda: conda install conda-forge::pip 1.3 Installing Necessary Packages Install the necessary packages through the following commands: conda install -c conda-forge numpy pandas matplotlib scipy pip install --upgrade pip setuptools wheel conda install -c conda-forge hdf5 pip install cmake conda install -c conda-forge gfortran conda install conda-forge::pygmo conda install conda-forge::numba conda install -c conda-forge pytables **2. If you are using a Linux or MacOSX-Intel system, please follow:** 2.1 Use __pyenv__ for a Virtual Environment Creating a virtual environment allows you to install packages safely without interfering with the system Python. You can use __pyenv__ for this purpose (or __virtualenvwrapper__, instructions in this [[https://virtualenvwrapper.readthedocs.io/en/latest/]]). You can install __pyenv__ by executing this line in your terminal: curl https://pyenv.run | bash After installing the package, append the auto-loading lines printed on the terminal to ‘~/.bashrc’ or ‘~/.zshrc’, and source the files. 2.2 Establishing a Virtual Environment We suggest fixing Python 3.9 for this work (to avoid deprecation of dependencies). With __pyenv__, you can install Python 3.9 by: pyenv install 3.9 pyenv virtualenv 3.9 polpyenv pyenv activate polpyenv Once you are done with all your analysis, you can deactivate the virtual environment with (don't do it now but when you finish your analysis): pyenv deactivate 2.3 Installing Necessary Packages Install the necessary packages through the following commands: pip install --upgrade pip setuptools wheel pip install numpy pandas matplotlib scipy pip install pygmo pip install numba **Once the prerequisites are satisfied, you can thereafter follow the steps below commonly for different systems.** ===== Clone Repositories ===== Create a dedicated directory for the whole project/environment. Navigate to the folder containing the whole project: mkdir workshop cd workshop/ Thereafter, cone the GitHub repos through: git clone https://github.com/sujaymate/astromodels git clone --branch polpy_dev --single-branch https://github.com/sujaymate/threeML/ git clone https://github.com/JohannesBuchner/MultiNest/ git clone https://github.com/JohannesBuchner/PyMultiNest git clone --branch patch-1 --single-branch https://github.com/hellohancheng/polpy/ ===== Installing Astromodels ===== Assuming you are in the "workshop" directory. Install the __astromodels__ through: cd astromodels/ pip install . cd ../ ===== Installing threeML ===== Assuming you are in the "workshop" directory. Install the __threeML__ through: cd threeML/ pip install . cd ../ ===== Installing MultiNest ===== Assuming you are in the "workshop" directory. Install the __MultiNest__ through: cd ../MultiNest/build/ cmake ../ make sudo make install cd ../.. ===== Installing pyMultiNest ===== Assuming you are in the "workshop" directory. Install the __ pyMultiNest__ through: cd PyMultiNest pip install . cd ../ ===== Installing polpy ===== Assuming you are in the "workshop" directory. Install the __ polpy__ through: cd polpy pip install . cd ../ ===== Running example script to test Polpy & threeML ===== Assuming you are in the "workshop/polpy" directory. You can run the example script through: cd examples python polar_GRB170114A.py ===== Optional ===== Thereafter, if your script running complained about the incompatibilities among Numpy, Astropy and other packages, you can downgrade your Numpy by doing this: pip install numpy==1.26.4 --force-reinstall --no-cache-dir Add the following lines to your .bash_profile file (or similar). vim ~/.bash_profile Inside add the following lines. export OMP_NUM_THREADS=1 export MKL_NUM_THREADS=1 export NUMEXPR_NUM_THREADS=1 Save and exit the file. Then do: source ~/.bash_profile