Troubleshooting

Common Issues

Conda fails to solve dependencies when installing

Ensure conda-forge has the highest channel priority, and channel priority is set to strict.

conda install --file conda_requirements.txt -c conda-forge

The richdem package won’t install or cannot be found when creating a static file

The richdem package is not available on PyPI for Python 3.11+. If you are using a pip venv, you will need to compile richdem yourself.

Consider using conda/mamba to install dependencies:

conda install richdem

COSIPY does not work on Windows

Windows is not currently supported. Consider installing Windows Subsystem for Linux.

Input data is out of range

Please check your settings in the utilities configuration for aws2cosipy and wrf2cosipy. By default, the in_K parameter is set to true.

Data in the output file do not match the input file

Some input variables are modified when loaded into COSIPY, e.g. negative values in incoming solar radiation are set to zero.

interp_subT() raises an IndexError

The glacier has melted away completely at a particular grid point. Consider increasing the initial glacier height.

Parameters set in the Slurm configuration file are not passed on to Slurm

Ensure parameters between your Slurm configuration file are identical to those in your sbatch script.

Developer Issues

Error when referencing Config.<X> or Constants.<X> inside an njitted function

Variables must be declared at the module level if you wish to use them in an njitted function:

from cosipy.config import Config
from cosipy.constants import Constants

foo = Config.foo  # declare at module level if used in an njitted function

@njit
def get_foo_njit(...):
    """Njitted functions cannot reference the imported parameters directly."""
    return foo

def get_foo_nopython(...):
    """Non-compiled functions can reference the parameters directly."""
    return Config.foo

Dask workers run out of memory when saving the output

This is a known issue. Consider selecting fewer output variables under [OUTPUT_VARIABLES] in config.toml.

Cannot set values of imported Config or Constants attributes

Parameters parsed from configuration files are read-only. Some users work around this by passing parameters as a dict argument into cosipy_core.