Skip to main content

# The CFELPyUtils Library

## Introduction

CFELPyUtils is a utility library written in Python and developed at the Center For Free Electron Laser Science (CFEL) in Hamburg. It contains several functions and classes that perform various tasks related to the processing of x-ray imaging data. It is used by several internal and released CFEL software projects.

### Features

  • Read and apply geometry information to x-ray detector data

  • peak finding algorithm (new in v2.0)

  • calibration tool for the AGIPD 1M detector (new in v2.0)

  • module for reading [CrystFEL](https://www.desy.de/~twhite/crystfel/) streams (new in v2.0)

Please see the [migration guide](#migration-guide) below before upgrading from CFELPyUtils 0.x or 1.x.

## Installation

The CFELPyUtils library is available on the [Python Package Index](https://pypi.org/) (PyPI). It can be installed using the ‘pip’ command:

pip install cfelpyutils

For Python 2, please use the 1.0 version.

pip install cfelpyutils==1.0.1

The library can also be installed manually by checking out this repository and running:

python setup.py install

### Migration Guide

The following table lists functions for which the module affiliation has changes in v2.0. Please replace all old occurances with the new ones.

cfelpyutils-0.x,-1.x | cfelpytuils-2 |
———————- | ————— |
geometry_utils.compute_pix_maps() | geometry.compute_pix_maps() |
geometry_utils.compute_visualization_pix_maps() | geometry.compute_visualization_pix_maps() |
geometry_utils.apply_geometry_to_data() | geometry.apply_geometry_to_data() |
crystfel_utils.load_crystfel_geometry() | geometry.load_crystfel_geometry() |

Please note that geometry.load_crystfel_geometry() now returns a namedtuple of geometry.CrystFELGeometry. Previously it returned only a geometry.TypeDetector. This is not the first element of the tuple.

If your code did this before

`python from cfelpyutils.crystfel_utils import load_crystfel_geometry geometry = load_crystfel_geometry(path_to_geometry_file) `

it needs to be changed to something like

`python from cfelpyutils.geometry import load_crystfel_geometry geometry_tuple = load_crystfel_geometry(path_to_geometry_file) geometry = geometry_tuple.detector ` or `python from cfelpyutils.geometry import load_crystfel_geometry geometry_tuple = cfelpyutils.geometry.load_crystfel_geometry(path_to_geometry_file) geometry = geometry_tuple[0] `

## Contributors

The CFELPyUtils library is currently developed in the lab of [Henry Chapman](https://cid.cfel.de/) at the Center For Free Electron Laser Science in Hamburg.

Many people from different institutions worlwide contribute code, testing and support to the project:

  • Valerio Mariani

  • Anton Barty

  • Andrew Morgan

  • Thomas A. White

  • Thomas Kluyver

  • Philipp Middendorf

  • Luca Gelisio

  • Florian Lauck

If you have any questions or want to contribute, please [contact us](mailto:sc@cfel.de).

## Documentation

Documentation for the CFELPyUtils is available on [GitLab at DESY](https://cfel-sc-public.pages.desy.de/cfelpyutils/) and in the [docs/](docs) of the [repository](https://gitlab.desy.de/cfel-sc-public/cfelpyutils).

## Source Code

The source code of the CFELPyUtils library can be found on the DESY GitLab instance: https://gitlab.desy.de/cfel-sc-public/cfelpyutils

Metadata

Release files for cfelpyutils 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for cfelpyutils 2.2.0
File Actions
cfelpyutils-2.2.0-cp312-cp312-manylinux_2_24_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64 Details for cfelpyutils-2.2.0-cp312-cp312-manylinux_2_24_x86_64.whl
cfelpyutils-2.2.0-cp311-cp311-manylinux_2_24_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64 Details for cfelpyutils-2.2.0-cp311-cp311-manylinux_2_24_x86_64.whl
cfelpyutils-2.2.0-cp310-cp310-manylinux_2_24_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64 Details for cfelpyutils-2.2.0-cp310-cp310-manylinux_2_24_x86_64.whl
cfelpyutils-2.2.0-cp39-cp39-manylinux_2_24_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.24+ x86-64 Details for cfelpyutils-2.2.0-cp39-cp39-manylinux_2_24_x86_64.whl

Total release size: 2.4 MB

Release files / cfelpyutils-2.2.0-cp312-cp312-manylinux_2_24_x86_64.whl

Download URL cfelpyutils-2.2.0-cp312-cp312-manylinux_2_24_x86_64.whl
Size 593.9 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64
SHA-256 checksum
How to use checksums
e5773d74632e53ce28f73fc33e34f183ec0fdd5d344276e66059924073932a9a
BLAKE2b-256 checksum
How to use checksums
c50bcd85b7b487e33ac90227d6f5b271cb2451447a62bd660c2dc4604af4173b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release files / cfelpyutils-2.2.0-cp311-cp311-manylinux_2_24_x86_64.whl

Download URL cfelpyutils-2.2.0-cp311-cp311-manylinux_2_24_x86_64.whl
Size 604.3 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64
SHA-256 checksum
How to use checksums
b12845f5e011ffbbe00e9e4e412d211309b910c35253781b403ee885791fa8ad
BLAKE2b-256 checksum
How to use checksums
07442c3ca416851a546be3a2645f21f23a8457d927c7c72b469cdb49db0ebf36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release files / cfelpyutils-2.2.0-cp310-cp310-manylinux_2_24_x86_64.whl

Download URL cfelpyutils-2.2.0-cp310-cp310-manylinux_2_24_x86_64.whl
Size 575.3 kB
Tags CPython 3.10 Linux glibc 2.24+ x86-64
SHA-256 checksum
How to use checksums
97fc2927c34cb9c7f1266fb49bb07782d9585f61f3e16d4ad5e77c2e4783059e
BLAKE2b-256 checksum
How to use checksums
4350aeda74cc263dab7aa51d72a1e7fbe656bcfa677257d01cc9d9e007a8a81c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release files / cfelpyutils-2.2.0-cp39-cp39-manylinux_2_24_x86_64.whl

Download URL cfelpyutils-2.2.0-cp39-cp39-manylinux_2_24_x86_64.whl
Size 576.8 kB
Tags CPython 3.9 Linux glibc 2.24+ x86-64
SHA-256 checksum
How to use checksums
b94756e08d89090f5fdd8e3bacccd22a1e1b237b19f04ebba562e6515bd9b1e9
BLAKE2b-256 checksum
How to use checksums
432347e6cc4768cb647966489ace9e83afc1af94a437f0b976f9ba60e30d4034
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Security for cfelpyutils 2.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page