Skip to main content

Analysis chain for the CTA MSTN NectarCAM prototype

Project description

nectarchain Build Status

Repository for the high level analysis of the NectarCAM data. The analysis is heavily based on ctapipe, adding custom code for NectarCAM calibration.

Installation

nectarchain is available as a PyPI or conda package, or as a Singularity/Apptainer container.

Using conda/mamba

conda is a package manager, distributed e.g. within Anaconda. Use of its re-implementation in C++, mamba, is strongly advised instead. mamba is shipped e.g. within Mambaforge which can advantageously replace Anaconda altogether (lighter and faster).

mamba create -n nectarchain -c conda-forge nectarchain

Using pip

nectarchain can also be manually installed as a PyPI package, albeit following specific requirements which are automatically accounted for through a conda/mamba installation.

mamba create -n nectarchain python=3.11
mamba activate nectarchain
pip install nectarchain

As a container

nectarchain is planned to be pushed on each release on the GitHub Container Registry as an Apptainer image. Such a container can be instantiated with:

apptainer shell oras://ghcr.io/cta-observatory/nectarchain:latest

The nectarchain code is then available under /opt/cta/nectarchain.

DIRAC support is fully available and configured within such a container.

Note to macOS users

macOS users may experience errors when trying to initialize a proxy to DIRAC when the DIRAC support is enabled, especially with recent hardware equipped with M1 or M2 Apple CPU chips. The container alternative can then help having an environment with CTADIRAC fully configured. However, Apptainer is not readily available on macOS, but there is a workaround using lima virtualization technology on a Mac.

TL;DR

brew install qemu lima
limactl start template://apptainer
limactl shell apptainer apptainer run --bind $HOME:/home/$USER.linux oras://ghcr.io/cta-observatory/nectarchain:latest

If you are running a Mac which CPU is based on ARM architecture (M1 or M2 Apple chips), when starting the apptainer container (second line above), please select the Open an editor to review or modify the current configuration option and add the following line at the beginning of the configuration file:

arch: "x86_64"

otherwise, please proceed with the Proceed with the current configuration option.

The mount point /tmp/lima is shared between the host machine and the apptainer container, and writable from both.

Manual installation (for developers)

This is the recommended installation procedure for developers. nectarchain should be pip-installed in development (aka editable) mode.

git clone https://github.com/cta-observatory/nectarchain.git
cd nectarchain
mamba env create --name nectarchain --file environment.yml
mamba activate nectarchain
pip install -e .

Enable pre-commit hooks, which enforces adherence to PEP8 coding style:

pre-commit install

Please follow the same conventions as ctapipe regarding settings of Git remotes, and how to contribute to the code with pull requests.

Optional DIRAC support

Note: this is not needed if you are using nectarchain as a container, as DIRAC is already fully installed and configured within.

To enable support for DIRAC within the same environment, do the following after the installation of nectarchain described above:

mamba activate nectarchain 
mamba install dirac-grid
conda env config vars set X509_CERT_DIR=${CONDA_PREFIX}/etc/grid-security/certificates X509_VOMS_DIR=${CONDA_PREFIX}/etc/grid-security/vomsdir X509_VOMSES=${CONDA_PREFIX}/etc/grid-security/vomses
# The following is needed for the environment variables, used for DIRAC configuration, to be available:
mamba deactivate
mamba activate nectarchain
pip install CTADIRAC
dirac-configure

Some Mac OS users (running on M1 chip) may experience a M2Crypto.SSL.SSLError error when trying to initiate a DIRAC proxy with dirac-proxy-init. Instead of:

mamba install dirac-grid

one may try:

mamba install dirac-grid "voms=2.1.0rc2=h7a71a8a_7"

or the container alternative as explained above.

nectarchain is currently pinned to ctapipe version 0.19.

Contributing

All contribution are welcome.

Guidelines are the same as ctapipe's ones. See here how to make a pull request to contribute.

Report issue / Ask a question

Please use GitHub Issues.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nectarchain-0.1.8.tar.gz (2.2 MB view hashes)

Uploaded Source

Built Distribution

nectarchain-0.1.8-py3-none-any.whl (192.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page