.
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)
- bytes 0x00 - 0x01 (0x02 bytes):
dc05
- bytes 0x02 - 0x05 (0x04 bytes):
0000 0033
- bytes 0x06 - 0x09 (0x04 bytes):
0000 0096
- bytes 0x0a - 0x10 (0x07 bytes): null
- bytes 0x11 - 0x14 (0x04 bytes): Stop time as a float
- bytes 0x15 - 0x19 (0x05 bytes): X axis label (e.g.
'Time'
) as a null terminated string - bytes 0x1a - 0x1c (0x03 bytes): Time scale (e.g.
'ns'
,'us'
) as a null terminated string - bytes 0x1d - 0x20 (0x04 bytes): null
- bytes 0x21 - 0x24 (0x04 bytes): ?, possibly no. of counts in 1000 as float
- bytes 0x25 - 0x2b (0x07 bytes): Y axis label (e.g.
'Counts'
) as a null terminated string - bytes 0x2c - 0x33 (0x08 bytes):
'1.4.5.0'
null terminated string, version?
body
- bytes 0x36 - 0x3d (0x08 bytes): Seems to always be
6400 0000 0100 0000
- bytes 0x3e - 0x4c (0x0d bytes): Scan type as null terminated string
- bytes 0x4d - 0x4e (0x02 bytes):
\r\n
to end line
Line 2 (0x61 - end)
head (0x34 bytes)
- bytes 0x00 - 0x01 (0x02 bytes):
8813
- bytes 0x02 - 0x06 (0x04 bytes): ?, float
- bytes 0x07 - 0x09 (0x04 bytes):
0100 0096
, control sequence? - bytes 0x0a - 0x10 (0x07 bytes): null
- bytes 0x11 - 0x14 (0x04 bytes): Stop time as a float
- bytes 0x15 - 0x19 (0x05 bytes): X axis label (e.g.
'Time'
) as a null terminated string - bytes 0x1a - 0x1c (0x03 bytes): Time scale (e.g.
'ns'
,'us'
) as a null terminated string - bytes 0x1d - 0x24 (0x08 bytes): null
- bytes 0x25 - 0x2b (0x07 bytes): Y axis label (e.g.
'Counts'
) null terminated string - bytes 0x2c - 0x33 (0x08 bytes):
'1.4.5.0'
null terminated string, version?
body
- Original file name, null terminated
- (0x01 bytes)
2c
- (0x04 bytes)
0100 0000
, control secquence? - (0x02 bytes)
0400
- (0x02 bytes) null
- (0x0f bytes) ?
- (0x02 bytes)
4090
, control sequence? - (0x04 bytes)
0100 0000
, control sequence? - (0x04 bytes) ?, null terminated
- (0x07 bytes) null
- (0x04 bytes)
f401 0000
, control sequence? - (0x0c bytes)
'TCSPC Diode'
string, null terminated - (0x0a bytes) null
- (0x0a bytes)
'Reference'
string, null terminated - (0x02 bytes) null
- (0x03 bytes)
'HC'
string, null terminated - (0x04 bytes)
f6ff ffff
, control sequence? - (0x02 bytes)
1000
- (0x03 bytes) null
- (0x02 bytes)
000c
- (0x0c bytes)
'TCSPC Diode'
sting, null t2rminated - (0x06 bytes) null
- (0x01 bytes)
fe
, control sequence? - (0x04 bytes)
'K B'
string, null terminated - (0x01 bytes) null
- (0x0a bytes)
'HS PMT920'
string, null terminated - (0x05 bytes) ?, float
- (0x06 bytes)
00f6 ffff ff0d 00
control sequence? - (0x03 bytes) null
- (0x0d bytes)
'200nm-1000nm'
string, null terminated - (0x01 bytes)
05
, control sequence? - (0x12 bytes)
'High Speed PMT920'
string, null terminated - (0x02 bytes)
0001
- (0x16 bytes) null
002c 0100 0001 0000 00
control sequence?- (0x04 bytes) ?, float?
- (0x04 bytes) ?, float?
- (0x0d bytes)
c220 b043 2000 0000
- Time scale string (e.g.
'50ns'
,'100ns'
), null terminated - (0x01 bytes) Data padding
- If
30
, skip next byte - If
31
- If
2e39
, skip next byte - if
392e
, skip next 2 bytes
- If
- If
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3346134ee7a7bcdd3a2777442aa7f6a0082aeda0e5ce39387a8ddcd7a510d2df |
|
MD5 | f88b231cadee0a5b4125421721c91caf |
|
BLAKE2b-256 | 2378e6b7ac3ce69468b39e4190793be1f967b4c79316ac314433b7d02ef95491 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69fe05a7cec66d24e8a15dc39bfd129e57962ddb380adc4925e0a50d3e0c0d13 |
|
MD5 | 20ce9737b972056c1623b1342d1d8b1e |
|
BLAKE2b-256 | 42d94b5008bcf03d9efd868dec3b4b36471416b98a02ddaaa65653d2cd6d03aa |