Environment variables

Environment variables for each software deployment, including file paths and Slurm settings

Environment variables are used to configure deployment-specific settings for processing jobs, like file paths and Slurm settings. These variables are set automatically when sourcing the environment scripts, but you can modify them to change settings like which Slurm partition a job is submitted to, or to configure a new environment.

Quick reference

VariableValuePurpose
CAQRN_ENVdevelopmentEnvironment identification
CAQRN_CODE_ROOT$HOME/caqrn-sandbox/codeRoot directory for source code
CAQRN_CONFIG_PATH$HOME/caqrn-sandbox/code/caqrn-config/devConfiguration files directory
CAQRN_DATA_ROOT$HOME/caqrn-sandbox/dataRoot directory for data storage
CAQRN_LOG_ROOT$HOME/caqrn-sandbox/logsRoot directory for log files
CAQRN_INCOMING_DATA/projects/caqrn/shared/data/incomingRaw sensor data input
CAQRN_TEMP_DIR$HOME/caqrn-sandbox/data/processingTemporary processing work directory
CAQRN_SLURM_PARTITIONdevPartition used for Slurm job submission
CAQRN_SLURM_ACCOUNTcaqrn-devAccount used for Slurm job submission
CAQRN_JOB_PREFIX${USER}_test_Prefix for Slurm job names
VariableValuePurpose
CAQRN_ENVstagingEnvironment identification
CAQRN_CODE_ROOT/projects/caqrn/develop/codeRoot directory for source code
CAQRN_CONFIG_PATH/projects/caqrn/develop/code/caqrn-config/devConfiguration files directory
CAQRN_DATA_ROOT/projects/caqrn/develop/dataRoot directory for data storage
CAQRN_LOG_ROOT/projects/caqrn/develop/logsRoot directory for log files
CAQRN_INCOMING_DATA/projects/caqrn/develop/data/incomingRaw sensor data input
CAQRN_TEMP_DIR/projects/caqrn/develop/data/processingTemporary processing work directory
CAQRN_SLURM_PARTITIONstandardPartition used for Slurm job submission
CAQRN_SLURM_ACCOUNTcaqrnAccount used for Slurm job submission
CAQRN_JOB_PREFIXstaging_Prefix for Slurm job names
VariableValuePurpose
CAQRN_ENVproductionEnvironment identification
CAQRN_CODE_ROOT/projects/caqrn/production/codeRoot directory for source code
CAQRN_CONFIG_PATH/projects/caqrn/production/code/caqrn-config/prodConfiguration files directory
CAQRN_DATA_ROOT/projects/caqrn/production/dataRoot directory for data storage
CAQRN_LOG_ROOT/projects/caqrn/production/logsRoot directory for log files
CAQRN_INCOMING_DATA/projects/caqrn/production/data/incomingRaw sensor data input
CAQRN_TEMP_DIR/projects/caqrn/production/data/processingTemporary processing work directory
CAQRN_SLURM_PARTITIONstandardPartition used for Slurm job submission
CAQRN_SLURM_ACCOUNTcaqrnAccount used for Slurm job submission
CAQRN_JOB_PREFIXprod_Prefix for Slurm job names

CAQRN_ENV

Purpose: Identifies the active environment.

EnvironmentValue
Productionproduction
Stagingstaging
Sandboxdevelopment

Usage: Used by Slurm job scripts to determine which Python virtual environment to activate at job execution time.

The following flowchart summarizes how the active environment’s associated Python virtual environment is reactivated on the compute node(s).

flowchart LR
    subgraph LN ["Login Node"]
        direction TB
        A1["Source Environment Script<br/>Set Environment Variables"] --> A2
        A2["Activate Python venv<br/>(current user environment)"] --> A3["Submit Slurm Job<br/>Export Environment Variables<br/>(via sbatch argument)"]
    end
    
    subgraph CN ["Compute Node(s)"]
        direction TB
        B1["Slurm Job Script Executes<br/>(processing_job.sh)"] --> B2["Use $CAQRN_ENV to Determine Job Context"]
        B2 --> B3["Activate Python venv<br/>(job execution environment)"] 
    end
    
    LN --> CN

CAQRN_CODE_ROOT

Purpose: Root directory containing project source code repositories.

EnvironmentValue
Production/projects/caqrn/production/code
Staging/projects/caqrn/develop/code
Sandbox$HOME/caqrn-sandbox/code

Usage: Referenced by scripts to locate project modules and executables. Used in PYTHONPATH construction.


CAQRN_CONFIG_PATH

Purpose: Directory containing environment-specific configuration files.

EnvironmentValue
Production/projects/caqrn/production/code/caqrn-config/prod
Staging/projects/caqrn/develop/code/caqrn-config/dev
Sandbox$HOME/caqrn-sandbox/code/caqrn-config/dev

Usage: Passed to processing jobs via --config parameter to load application configuration settings.


CAQRN_DATA_ROOT

Purpose: Root directory for all data storage including downloaded data directories, temporary workspaces for Slurm jobs, and output product directories.

EnvironmentValue
Production/projects/caqrn/production/data
Staging/projects/caqrn/develop/data
Sandbox$HOME/caqrn-sandbox/data

Usage: Base path for constructing data directories. Contains the following subdirectories:

  • incoming/ - Date-based directories created by download scripts
  • processing/ - Temporary working directories for Slurm jobs
  • products/ - Date-based output directories for Slurm jobs

Slurm jobs create date-based subdirectories in the format $CAQRN_DATA_ROOT/products/YYYY/MM/DD/ for product outputs.


CAQRN_LOG_ROOT

Purpose: Root directory for all log file storage.

EnvironmentValue
Production/projects/caqrn/production/logs
Staging/projects/caqrn/develop/logs
Sandbox$HOME/caqrn-sandbox/logs

Usage: Referenced by job submission scripts for Slurm log file output paths (--output and --error parameters). Used to construct paths to application logs at $CAQRN_LOG_ROOT/processing/.


CAQRN_INCOMING_DATA

Purpose: Directory containing downloaded sensor data.

EnvironmentValue
Production/projects/caqrn/production/data/incoming
Staging/projects/caqrn/develop/data/incoming
Sandbox/projects/caqrn/shared/data/incoming

Usage: Processing jobs read input files from date-based subdirectories under this path. By default, sandbox environments use the staging environment’s downloaded sensor data, shared at /projects/caqrn/shared/data/incoming.


CAQRN_TEMP_DIR

Purpose: Directory for temporary files created during processing.

EnvironmentValue
Production/projects/caqrn/production/data/processing
Staging/projects/caqrn/develop/data/processing
Sandbox$HOME/caqrn-sandbox/data/processing

Usage: Working directory for intermediate files created during processing.


CAQRN_SLURM_PARTITION

Purpose: Slurm partition for job submission.

EnvironmentValue
Productionstandard
Stagingstandard
Sandboxdev

Usage: Passed to sbatch --partition parameter. Scheduled production and staging jobs use the cluster’s general-purpose partition, while development jobs use the dedicated development partition.


CAQRN_SLURM_ACCOUNT

Purpose: Slurm account for job submission.

EnvironmentValue
Productioncaqrn
Stagingcaqrn
Sandboxcaqrn-dev

Usage: Passed to sbatch --account parameter. Separates development resource usage from production/staging.


CAQRN_JOB_PREFIX

Purpose: Prefix applied to Slurm job names.

EnvironmentValue
Productionprod_
Stagingstaging_
Sandbox${USER}_test_

Usage: Prepended to job names in submission scripts. Helps identify job source in queue listings and log files.

Last modified September 3, 2025: Remove line break (2c11eca)