CPL - The Common Pipeline Library
Latest News
PyHDRL version 1.0.0 has been released - (10-Jun-2026)
This is the first production release of the HDRL Python Bindings 1.0 release series. Read more...
PyCPL version 1.0.4 has been released - (10-Jun-2026)
This is a maintenance release of the CPL Python Bindings 1.0 release series. Version 1.0.4 or newer is required to build and use PyHDRL 1.0 Read more...
CPL version 7.4 has been released - (10-Jun-2026)
This is an update to the CPL 7 release series. CPL 7.4 is required for building and using PyCPL 1.0.4 and PyHDRL 1.0.
Please note an important change of the CPL build system: As of CPL 7.4 the default for looking up the required libcext utility library has changed! By defautlt a stand-alone installation of libcext is expected to be found in a suitable system location using the pkg-config utility. To use the bundled version of libcext, as in previous versions, the CPL configure script must be run with --with-system-cext=no! Please have a look at the configure script help output for details.
HDRL version 1.6.0 has been released - (02-Jun-2026)
This is a feature release allowing HDRL to be build and installed as a stand-alone shared object library. This standalone version of HDRL is required to build and use PyHDRL 1.0 and newer.
PyCPL version 1.0.3 has been released - (21-May-2025)
Overview
The Common Pipeline Library (CPL) comprises a set of ISO-C libraries that provide a comprehensive, efficient and robust software toolkit to develop astronomical data-reduction tasks (known as "recipes"). These data-reduction tasks can then be executed manually by a user, or can be triggered in an automated data-reduction framework (known as "pipelines") which are used at ESO to monitor the health status of VLT instruments, for quick-look data processing at the observatory, and the creation of data products available from the ESO archive facility.
The Common Pipeline Library was developed to standardise the way VLT instrument pipelines are built, to shorten their development cycle and to ease their maintenance. However, it may be more generally applied to any similar application, and the details of the CPL code have been engineered in away to make the library portable and flexible, as well as minimising external dependencies.
The CPL provides a host of functionality, presented in a clear, generic and uniform manner. Among its many features, the CPL offers:
- many useful low-level data types (images, tables, matrices, strings, property lists, ...),
- many fundamental statistic, arithmetic and conversion operations for these data types.
- medium-level data access methods (e.g. a data abstraction layer for FITS files),
- data table organisation and manipulation,
- keyword/value handling and management,
- a standardised application interface for pipeline recipes, and,
- support for dynamic loading of recipe modules.
Despite the current bias towards instrument pipeline development, the library also provides a variety of general-purpose image- and signal-processing functions, making it an excellent framework for the creation of more generic data-handling packages.
For more information about the CPL project, please see the web pages whose links appear at the top of this page.
