Commit 0a8af5f2 authored by Andrea Giannetti's avatar Andrea Giannetti
Browse files

Added apptainer definition to run on HPC environments.

parent 781b25ce
Loading
Loading
Loading
Loading

apptainer.def

0 → 100644
+7 −0
Original line number Diff line number Diff line
Bootstrap: docker
From: postgres:14.1-alpine

%environment
export POSTGRES_DB=$DB_NAME
export POSTGRES_USER=$DB_USER
export POSTGRES_PASSWORD=$DB_PASS
+3 −0
Original line number Diff line number Diff line
rm swiss_army_knife_latest.sif
singularity pull --disable-cache docker://git.ia2.inaf.it:5050/andrea.giannetti/swiss_army_knife
+28 −0
Original line number Diff line number Diff line
#!/bin/bash
# Set PYCHARM_HOME, INSTALL_DEPENDENCIES environment variable
PYCHARM_HOME=${PYCHARM_HOME:=$HOME/PycharmProjects}
INSTALL_DEPENDENCIES="${INSTALL_DEPENDENCIES:=true}"
echo $PYCHARM_HOME
cd $PYCHARM_HOME
export RADMC_HOME=$PYCHARM_HOME/radmc3d-2.0
if [[ ! -d "$RADMC_HOME" ]]
then
    echo RADMC not found, cloning into "$(pwd)"
    git clone https://github.com/dullemond/radmc3d-2.0.git
fi

if $INSTALL_DEPENDENCIES
then
    sudo apt-get install gfortran build-essential python3-dev
fi

cd $RADMC_HOME/src
make
make install

# Add this to the .bashrc configuration file (or equivalent)
export PATH=$HOME/bin:$PATH
export PYTHONPATH=$HOME/bin/python:$PYTHONPATH

cd $RADMC_HOME/python/radmc3dPy
python setup.py install
+36 −4
Original line number Diff line number Diff line
@@ -2,12 +2,13 @@ import matplotlib.pyplot as plt
import numpy as np
import os
import xarray as xr
from typing import Union
from typing import Union, Tuple
from itertools import product
from astropy.io import fits
from sqlalchemy.orm import Session
from sqlalchemy import and_, or_
from stg.stg_build_db_structure import (GridPars,
                                        GridFiles,
                                        StarsPars,
                                        ModelPars,
                                        RatioMaps,
@@ -34,9 +35,14 @@ def get_aggregated_ratio_from_db(
    :param session: the SQLAlchemy session to use
    :return: the aggregated ratio
    """
    results = session.query(GridPars, RatioMaps).join(StarsPars, isouter=True).join(ModelPars).join(MomentZeroMaps).join(RatioMaps,
    results = session.query(GridPars, RatioMaps) \
        .join(StarsPars, isouter=True) \
        .join(ModelPars) \
        .join(MomentZeroMaps) \
        .join(RatioMaps,
              or_(RatioMaps.mom_zero_map_1,
                                                                                               RatioMaps.mom_zero_map_2)).filter(
                  RatioMaps.mom_zero_map_2)) \
        .filter(
        and_(GridPars.dust_temperature_at_reference == dust_temperature,
             GridPars.density_at_reference == gas_density,
             # GridPars.central_density == gas_density,
@@ -44,6 +50,32 @@ def get_aggregated_ratio_from_db(
    return results[1].aggregated_ratio


def get_density_distribution(
        dust_temperature: float,
        gas_density: float,
        lines: Union[list, tuple],
        session: Session) -> Tuple[float, str, str, np.array, np.array]:
    results = session.query(GridPars, RatioMaps, GridFiles) \
        .join(GridFiles) \
        .join(StarsPars, isouter=True) \
        .join(ModelPars) \
        .join(MomentZeroMaps) \
        .join(RatioMaps,
              or_(RatioMaps.mom_zero_map_1,
                  RatioMaps.mom_zero_map_2)) \
        .filter(
        and_(GridPars.dust_temperature_at_reference == dust_temperature,
             GridPars.density_at_reference == gas_density,
             GridFiles.quantity == 'gas_number_density',
             ModelPars.iline.in_(lines),
             GridPars.run_id == '55d05c03-192a-47da-9dcf-c41df1882868')).order_by(GridPars.created_on.desc()).first()
    with fits.open(os.path.join('prs', 'fits', 'grids', results[2].fits_grid_name)) as fitsfile:
        grid_values = fitsfile[0].data
    with fits.open(os.path.join('prs', 'fits', 'ratios', results[1].ratio_map_name)) as ratio_fitsfile:
        ratio_values = ratio_fitsfile[0].data
    return results[1].aggregated_ratio, results[1].ratio_map_name, results[2].fits_grid_name, grid_values, ratio_values


def main():
    engine = get_pg_engine(logger=logger)
    config = load_config_file(os.path.join('config', 'config.yml'))
+3 −0
Original line number Diff line number Diff line
docker login git.ia2.inaf.it:5050
docker tag sak_etl:latest git.ia2.inaf.it:5050/andrea.giannetti/swiss_army_knife
docker push git.ia2.inaf.it:5050/andrea.giannetti/swiss_army_knife
 No newline at end of file