Skip to main content

.

Project description

Lifespec FL

Parse .FL files from a Lifespec TRPL machine.

Install with python -m pip install lifespec-fl

Parser

The lifespec_fl.parse(<file>) method is used to parse a .FL file. This is the main function of this package.

File format description

Parsing the .FL binary file uses the parse_binary_file package. This package uses configuration files to describe the structure of a binary file format for parsing.

You can find this configuration file at lifespec_fl/data/fl_descriptor.yaml.

CLI

Installs a command line interface (CLI) named lifespec_fl that can be used to convert .FL files to .csv.

Example

Library

import pandas as pd
import lifespec_fl as fl


# parse the 'my_trpl.FL' file
(counts, data) = fl.parse('my_trpl.FL')

# place counts into a pandas Series
df = pd.Series(counts[:, 1], index = counts[:, 0])

CLI

Convert all .FL files in the current directory to .csv.

lifespec_fl

Convert all .FL files ending in trpl in the current directly into a single .csv.

lifespec_fl --join *trpl.FL

File Format Notes

  • 3 lines separated by \r\n (0d0a)
  • Little Endian
  • latin-1 encoded
  • Heads of lines 1 and 2 follow similar pattern

Line 0 (0x00 - 0x14, 0x15 bytes)

EAI Multiple Scans null terminated (0x00) string followed by \r\n

Line 1 (0x15 - 0x60, 0x4d bytes)

head (0x34 bytes)

  1. bytes 0x00 - 0x01 (0x02 bytes): dc05
  2. bytes 0x02 - 0x05 (0x04 bytes): 0000 0033
  3. bytes 0x06 - 0x09 (0x04 bytes): 0000 0096
  4. bytes 0x0a - 0x10 (0x07 bytes): null
  5. bytes 0x11 - 0x14 (0x04 bytes): Stop time as a float
  6. bytes 0x15 - 0x19 (0x05 bytes): X axis label (e.g. 'Time') as a null terminated string
  7. bytes 0x1a - 0x1c (0x03 bytes): Time scale (e.g. 'ns', 'us') as a null terminated string
  8. bytes 0x1d - 0x20 (0x04 bytes): null
  9. bytes 0x21 - 0x24 (0x04 bytes): ?, possibly no. of counts in 1000 as float
  10. bytes 0x25 - 0x2b (0x07 bytes): Y axis label (e.g. 'Counts') as a null terminated string
  11. bytes 0x2c - 0x33 (0x08 bytes): '1.4.5.0' null terminated string, version?

body

  1. bytes 0x36 - 0x3d (0x08 bytes): Seems to always be 6400 0000 0100 0000
  2. bytes 0x3e - 0x4c (0x0d bytes): Scan type as null terminated string
  3. bytes 0x4d - 0x4e (0x02 bytes): \r\n to end line

Line 2 (0x61 - end)

head (0x34 bytes)

  1. bytes 0x00 - 0x01 (0x02 bytes): 8813
  2. bytes 0x02 - 0x06 (0x04 bytes): ?, float
  3. bytes 0x07 - 0x09 (0x04 bytes): 0100 0096, control sequence?
  4. bytes 0x0a - 0x10 (0x07 bytes): null
  5. bytes 0x11 - 0x14 (0x04 bytes): Stop time as a float
  6. bytes 0x15 - 0x19 (0x05 bytes): X axis label (e.g. 'Time') as a null terminated string
  7. bytes 0x1a - 0x1c (0x03 bytes): Time scale (e.g. 'ns', 'us') as a null terminated string
  8. bytes 0x1d - 0x24 (0x08 bytes): null
  9. bytes 0x25 - 0x2b (0x07 bytes): Y axis label (e.g. 'Counts') null terminated string
  10. bytes 0x2c - 0x33 (0x08 bytes): '1.4.5.0' null terminated string, version?

body

  1. Original file name, null terminated
  2. (0x01 bytes) 2c
  3. (0x04 bytes) 0100 0000, control secquence?
  4. (0x02 bytes) 0400
  5. (0x02 bytes) null
  6. (0x0f bytes) ?
  7. (0x02 bytes) 4090, control sequence?
  8. (0x04 bytes) 0100 0000, control sequence?
  9. (0x04 bytes) ?, null terminated
  10. (0x07 bytes) null
  11. (0x04 bytes) f401 0000, control sequence?
  12. (0x0c bytes) 'TCSPC Diode' string, null terminated
  13. (0x0a bytes) null
  14. (0x0a bytes) 'Reference' string, null terminated
  15. (0x02 bytes) null
  16. (0x03 bytes) 'HC' string, null terminated
  17. (0x04 bytes) f6ff ffff, control sequence?
  18. (0x02 bytes) 1000
  19. (0x03 bytes) null
  20. (0x02 bytes) 000c
  21. (0x0c bytes) 'TCSPC Diode' sting, null t2rminated
  22. (0x06 bytes) null
  23. (0x01 bytes) fe, control sequence?
  24. (0x04 bytes) 'K B' string, null terminated
  25. (0x01 bytes) null
  26. (0x0a bytes) 'HS PMT920' string, null terminated
  27. (0x05 bytes) ?, float
  28. (0x06 bytes) 00f6 ffff ff0d 00 control sequence?
  29. (0x03 bytes) null
  30. (0x0d bytes) '200nm-1000nm' string, null terminated
  31. (0x01 bytes) 05, control sequence?
  32. (0x12 bytes) 'High Speed PMT920' string, null terminated
  33. (0x02 bytes) 0001
  34. (0x16 bytes) null
  35. 002c 0100 0001 0000 00 control sequence?
  36. (0x04 bytes) ?, float?
  37. (0x04 bytes) ?, float?
  38. (0x0d bytes) c220 b043 2000 0000
  39. Time scale string (e.g. '50ns', '100ns'), null terminated
  40. (0x01 bytes) Data padding
    • If 30, skip next byte
    • If 31
      • If 2e39, skip next byte
      • if 392e, skip next 2 bytes

data

  • Each 4 bytes should be interpreted as a float

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

lifespec_fl-0.0.4.tar.gz (8.9 kB view details)

Uploaded Source

Built Distribution

lifespec_fl-0.0.4-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file lifespec_fl-0.0.4.tar.gz.

File metadata

  • Download URL: lifespec_fl-0.0.4.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for lifespec_fl-0.0.4.tar.gz
Algorithm Hash digest
SHA256 3346134ee7a7bcdd3a2777442aa7f6a0082aeda0e5ce39387a8ddcd7a510d2df
MD5 f88b231cadee0a5b4125421721c91caf
BLAKE2b-256 2378e6b7ac3ce69468b39e4190793be1f967b4c79316ac314433b7d02ef95491

See more details on using hashes here.

File details

Details for the file lifespec_fl-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: lifespec_fl-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for lifespec_fl-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 69fe05a7cec66d24e8a15dc39bfd129e57962ddb380adc4925e0a50d3e0c0d13
MD5 20ce9737b972056c1623b1342d1d8b1e
BLAKE2b-256 42d94b5008bcf03d9efd868dec3b4b36471416b98a02ddaaa65653d2cd6d03aa

See more details on using hashes here.

Supported by

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