## Installation

ALCF is written in Python and Fortran. Installation on Linux is recommended. Installation on other operating systems may be possible and planned in the future, but is not described here at the moment.

### Linux

The installation has been tested on Debian GNU/Linux 10, Devuan GNU/Linux 2.1, Ubuntu Desktop 19.10 and Fedora 31 Workstation.

Install the following required software:

- gfortran and gcc (usually available in Linux distribution repositories)
- Python 3 (usually pre-installed on Linux distributions)

Download and unpack the latest ALCF version or one of the releases, and run commands below in the unpacked directory.

Before compiling the dependencies, you might need to install the following packages: gfortran, libexpat-dev, m4, libcurl4-openssl-dev and zlib1g-dev, python3-setuptools, python3-pip and eccodes. Install with:

    # Debian, Devuan, Ubuntu:
    apt-get install gfortran libexpat-dev m4 libcurl4-openssl-dev zlib1g-dev python3-setuptools python3-pip libeccodes-tools
    # Fedora:
    yum install make patch g++ gfortran expat-devel m4 libcurl-devel zlib-devel python3-setuptools python3-pip eccodes

To download and build dependencies (UDUNITS, NetCDF, NetCDF-Fortran, OSSP uuid, HDF5, CMOR, COSP):

    ./download_dep
    ./build_dep
    make

`download_dep` will automatically download required libraries and `build_dep` will compile the libraries (it might take up to 5 minutes to finish).

Note: ALCF uses the Python libraries ds-python, aquarius-time and pst, which are installed with the commands below.

To install in system directories:

    pip3 install https://github.com/peterkuma/ds-python/archive/master.zip \
        https://github.com/peterkuma/aquarius-time/archive/master.zip \
        https://github.com/peterkuma/pst/archive/master.zip
    python3 setup.py install

To install in user directories (make sure `~/.local/bin` is in the environmental variable `PATH`):

    pip3 install --user https://github.com/peterkuma/ds-python/archive/master.zip \
        https://github.com/peterkuma/aquarius-time/archive/master.zip \
        https://github.com/peterkuma/pst/archive/master.zip
    python3 setup.py install --user

You should now be able to run ALCF in the terminal:

    alcf

should output:

    alcf - Tool for processing of automatic lidar and ceilometer (ALC) data
    and intercomparison with atmospheric models.

    Usage:

        alcf <cmd> [<options>]
        alcf <cmd> --help

    Arguments:

    - `cmd`: see Commands below
    - `options`: command options

    Options:

    `--help`: print help for command

    Commands:

    - `convert`: convert input instrument or model data to ALCF standard NetCDF
    - `model`: extract model data at a point or along a track
    - `cosp`: simulate lidar measurements from model data using COSP
    - `lidar`: process lidar data
    - `stats`: calculate cloud occurrence statistics
    - `plot`: plot lidar data
    - `plot_stats`: plot lidar statistics

## Releases

Below is a list of releases of ALCF. The version numbers follow the Semantic Versioning.

#### 1.0.0-beta.2 (2020-05-01) [documentation]

- Initial beta release.