LegendDataManagement.jl

LegendDataManagement.jl provides a Julia implementation of the LEGEND data and metadata management.

The package provides a structured interface to locate, access, and query LEGEND data across data tiers, periods, runs, and channels, and integrates with the LEGEND metadata.

Configuration

The package expects a configuration file (see the example "config.yaml" in the LEGEND test data repository) describing dataset names, file roots, and partitions. While the path to this configuration file can be specified explicitly, we recommend setting an environment variable named $LEGEND_DATA_CONFIG to the absolute path of your "config.json". This can be done in the bashrc or for VisualStudioCode in terminal.integrated.env.linux".

export LEGEND_DATA_CONFIG="/path/to/legend_data_config.json"

LegendDataManagement provides a SolidStateDetectors extension that makes it possible to create SolidStateDetector objects from LEGEND metadata.

Usage examples:

using LegendDataManagement
using PropertyFunctions

l200 = LegendData(:l200)

filekey = FileKey("l200-p02-r006-cal-20221226T200846Z")

raw_filename = l200.tier[:raw, "l200-p02-r006-cal-20221226T200846Z"]

l200.metadata.hardware.detectors.germanium.diodes

chinfo = channel_info(l200, filekey)
filterby(@pf $processable && $usability)(chinfo)

Documentation structure

  • Manual pages provide step-by-step workflows for data access and explain the validity-based metadata model.
  • API contains the automatically generated reference documentation for exported types and functions.

Get started

  • Browse the Manual for an explanation of basic functions and practical examples.
  • Check Extensions for information about plotting with LegendMakie and the package extensions for LegendHDF5IO and SolidStateDetectors.
  • Consult the API section for detailed information on selectors and helper functions such as LegendData, DataTier, DataPeriod, search_disk, and read_ldata.