Skip to main content

Analysis chain for the CTA MSTN NectarCAM prototype

Project description

nectarchain Build Status pypi conda

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.9.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

nectarchain-0.1.9-py3-none-any.whl (214.1 kB view details)

Uploaded Python 3

File details

Details for the file nectarchain-0.1.9.tar.gz.

File metadata

  • Download URL: nectarchain-0.1.9.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for nectarchain-0.1.9.tar.gz
Algorithm Hash digest
SHA256 b5e7094adc8177fda84529d228ef54b81d90dc23395de2d4c3f6357377f2e737
MD5 514a50ed2bdc2ea52d8737898ef6a925
BLAKE2b-256 848b719f3357fea31920d3601e3a0b45250b79f8546f2a08d9da7cd10709f855

See more details on using hashes here.

File details

Details for the file nectarchain-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: nectarchain-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 214.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for nectarchain-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a7044a06b5be0d64d819baff00c339df27bacf6473516cc437169f7693651621
MD5 9a8a17407b265fcbb0209c7325bb2bc2
BLAKE2b-256 b53649ce04aa6c7579cc597e6a52b83ef10f8ed36004efabbadec72234b29eca

See more details on using hashes here.

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