A software ecosystem for analysis of the data from the LUCID (Langton's Ultimate Cosmic-ray Detector) project onboard TechDemoSAT-1 in space.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


LANE (Langton ANalysis Ecosystem)

A software ecosystem for analysis of the data from the Langton physics projects For example, the LUCID (Langton's Ultimate Cosmic-ray Detector) project onboard TechDemoSAT-1 in space.

This software package contains:

  • A lane management/automation python scripts.
  • A selection of analysis modules.
  • A library of C++ code for use in analysis of Langton physics data.

See the LUCID wiki for further information.

Prerequisites and installation

To build this code you will need


  • Enter the lane directory in your shell:
cd lane-directory
  • Run setupBuild, passing it the path to which you would like lane to be installed:
./setupBuild.py install-path

The setupBuild script can also be forced to generate build files for a specific build system. See the setupBuild script's usage information for more information:

./setupBuild.py --help
  • Enter the desired build directory inside the lane directory and build the project. For example, on a unix based system:
cd build/release
make install

This will build the project and install the results in the earlier specified directory.


Use configLane to generate a config.ini file before running lane:


Any LUCID data you wish to be analysed should be placed inside the data directory, inside the lucid folder, within a folder named like so: year-month-day, inside another folder with an ID identifying the capture number of that data. For example: data/lucid/2015-01-15/01.

Use runLane to run the analysis modules on the data:


Useful scripts

Inside the scripts directory are several useful scripts for lane development and usage.

  • sortLucidCaptures.py is a script that scans all files in a directory with the *.ldat extension and joins up files determined to be members of the same overall capture file.

  • rawToIntermediate is an (in development) script for reading in LUCID raw data files (currently doesn't work).

Notes for when making additions

It's a good idea to make your desired module code changes in a lane installation, and backport these changes to the source location before committing the code. This means it will be possible to test run the code. In the base source location prior to installation, lane is not designed to be run!

Project organization

The main directory contains some information and the lane configuration script, configLane The project is also organized into a couple of subdirectories.

  • The modules directory contains the source code of the analysis modules.
  • The lib directory contains the libraries used in the software.
  • The lib/lane directory contains C++-based libraries of code for use in the analysis modules.
  • The scripts directory contains some possibly useful maintenance scripts.
  • The cmake directory contains some utility scripts for the cmake C++ build system.


Issued under the Simplified (2-clause) BSD license. Please see LICENSE.md.

External Libraries:

None as of yet



  • Fix the parser for lucid files to allow for reading in unjoined files of arbitrary size - Modify the raw-to-intermediate conversion modules to allow for this.

  • Figure out a sound way of creating a python library for use in modules (plane)
    that's sanely accessible from python modules, or decide if it's worth just outright writing every module in C++?

-Less Urgent-

  • Add support for XYV compression to liblane.

  • Add support for some more of the settings in the data files' header to liblane.

  • Add telemetry, detector configs, pixel masks and calibration files support to lane.