Skip to main content

FlashCam File Format (FCIO) reader for python.

Project description

Installation

Run python3 -m pip install fcio to install from the pypi repository.

Description

fcio-py provides a read-only wrapper around the fcio.c io library used in fc250b based digitizer systems.

The wrapper exposes the fcio.c memory fields as closely as possible to standard c-structs using numpy ndarrays or scalars where applicable. For convenience all supported fcio records are exposed as iterable properties of the base FCIO class to preselect records of interest.

Usage

Simple code example

The following example opens an fcio file and prints some basic event content to stdout:

from fcio import fcio_open

filename = 'path/to/an/fcio/file'

with fcio_open(filename, extended=True) as io:
  print("#evtno run_time utc_unix_sec utc_unix_nsec ntraces bl_mean bl_std")
  for event in io.events:
    print(f"{event.eventnumber} {event.run_time:.09f} {event.utc_unix_sec} {event.utc_unix_nsec} {event.trace_list.size} {event.fpga_baseline.mean():.1f} {event.fpga_baseline.std():.2f}")

Differences to C usage

  • fcio-py codifies the assumption that a FCIOConfig record must be available and skips all previous records on opening
  • reading of zstd or gzip compressed files is possible using suprocesses. This requires zstd or gzip to be available. If a file ends in .zst or .gz respectively and the compression parameter is default, this will happen automatically.

Development

Development is best done in a local environment, e.g. using venv:

# create local environment:
export MY_ENV=fcio_dev
python3 -m venv $MY_ENV

# activate the environment
source $MY_ENV/bin/activate

This library depends on meson-python/meson as build tool and Cython/numpy to wrap the c-sources. These should be installed automatically wenn running python3 -m build. To allow a more traditional workflow a thin Makefile is available which wraps the python3 and meson specific commands.

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

fcio-0.2.4.dev7.tar.gz (96.6 kB view details)

Uploaded Source

File details

Details for the file fcio-0.2.4.dev7.tar.gz.

File metadata

  • Download URL: fcio-0.2.4.dev7.tar.gz
  • Upload date:
  • Size: 96.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for fcio-0.2.4.dev7.tar.gz
Algorithm Hash digest
SHA256 1ea7a14f334ce7fc61e27de36f5fca4c43849a99ab5bfea06183914aa0dda252
MD5 eec5592d22991ae6dfedfec09351efee
BLAKE2b-256 8178cb57b4bc16b5e1f7e0b7e6555f206562a090357defc2e0385e767c123115

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page