Package: icesat2-tracks
ICESAT2 Track AnalysisInstallation for DevelopersPrerequisites:A POSIX-compatible system (Linux or macOS)Python 3.9 (runpython --versionto check that your version of python is correct)MPI (e.g. frombrew install open-mpion macOS)HDF5 (e.g. frombrew install hdf5on macOS)[!IMPORTANT]Windows is not supported for development work – useWSLon Windows hostsInstallation:Clone the repository:Navigate tohttps://github.com/brown-ccv/icesat2-tracksClick the "<> Code" button and select a method to clone the repository, then follow the promptsOpen a shell (bash, zsh) in the repository working directoryCreate a new virtual environment named.venv:python-mvenv.venvActivate the environmentsource".venv/bin/activate"Upgrade pippipinstall--upgradepipInstall or update the environment with the dependencies for this project:pipinstall--upgrade--editable".[dev]"You may need to set the value of theHDF5_DIRenvironment variable to install some of the dependencies, especially when installing on macOS.For Apple Silicon (M-Series) CPUs:exportHDF5_DIR="/opt/homebrew/opt/hdf5"pipinstall--upgrade--editable".[dev]"For Intel CPUs:exportHDF5_DIR="/usr/local/opt/hdf5"pipinstall--upgrade--editable".[dev]"Check the moduleicesat2_tracksis available by loading the module:python-c"import icesat2_tracks; print(icesat2_tracks.__version__)"Installing on Oscar (Deprecated)If any of these commands fail, check the conda configuration (listed below) before retrying for possible fixes.Load a conda module.moduleloadminiconda/23.1.0Follow any prompts from the module load command, like running the following line:source/gpfs/runtime/opt/miniconda/23.1.0/etc/profile.d/conda.shCreate a new environment using:condacreate--name"2021-icesat2-tracks"Activate the environment using:condaactivate"2021-icesat2-tracks"Install or update the packages in the environment with those listed in theenvironment.ymlfile using:condaenvupdate--fileenvironment.yml(You can create and install dependencies in the environment in a single command using:condaenvcreate--name"2021-icesat2-tracks"--fileenvironment.yml... but this has more steps and is thus more likely to fail. Since the installation step takes a long period of time, it is recommended to use the separate commands instead.)Conda ConfigurationConda draws its configuration from multiple places, and will behave differently when the configuration is different, even when using the sameenvironment.ymlfile..condarcThe.condarcfile in your home directory sets your conda configuration. If the file doesn't exist, you can create it with:touch~/.condarcpkgs_dirspkgs_dirsis the location where conda downloads package files from registries likeanaconda.org.If you use the defaults, when trying to install packages you may get a warning like:WARNING conda.lock:touch(51): Failed to create lock, do not run conda in parallel processes [errno 13]
...
ERROR   Could not open file /gpfs/runtime/opt/miniconda/4.12.0/pkgs/cache/b63425f9.jsonIn this case, you might be trying to download packages to the global directory/gpfs/runtime/opt/miniconda/4.12.0/pkgswhere you have no write-permissions, rather than your home directory where you have write-permissions.View the conda configuration:condaconfig--showCheck that thepkgs_dirssetting points to a location in your home directory:pkgs_dirs:-/users/username/anaconda/pkgIf it doesn't, update this using:condaconfig--addpkgs_dirs~/anaconda/pkg(Use--removeinstead of--addto remove an entry.)envs_dirsenvs_dirsis the location where there is a separate directory per environment containing the installed packages.View the conda configuration:condaconfig--showCheck that theenvs_dirssetting to a location in your home directory:envs_dirs:-/users/username/anaconda/envs... and update this using:condaconfig--addenvs_dirs~/anaconda/envs(Use--removeinstead of--addto remove an entry.)Always re-check the configuration after running theconda configcommand.Environment VariablesNote that modules (likeminiconda/23.1.0) set environment variables likeCONDA_ENVS_PATHwhich override the conda config.You might view the conda config and see the following entries:envs_dirs:-/users/username/anaconda-/users/username/anaconda/envsIf you try to runcondaconfig--removeenvs_dirs~/anaconda... you'll get a warning:'envs_dirs': '/users/username/anaconda' is not in the 'envs_dirs' key of the config file... and find that the value is still there when you rerunconda config --show:envs_dirs:-/users/username/anaconda# <-- still here!-/users/username/anaconda/envsThe value might have been silently set by themodule loadcommand using an environment variable.Check for environment variables by running:$printenv|grep^CONDA_CONDA_SHLVL=0CONDA_EXE=/gpfs/runtime/opt/miniconda/23.1.0/bin/condaCONDA_ENVS_PATH=~/anaconda# <- this is the offending variableCONDA_PYTHON_EXE=/gpfs/runtime/opt/miniconda/23.1.0/bin/pythonTo unset a value likeCONDA_ENVS_PATHuse:unsetCONDA_ENVS_PATH... then check that rerunconda config --showno longer shows the has modified the conda config to match the values you wanted:envs_dirs:-/users/username/anaconda/envs