Skip to content

FTIR

FTIRBlock

FTIRBlock(item_id: str | None = None, collection_id: str | None = None, init_data: dict | None = None, unique_id: str | None = None)

Bases: DataBlock

Parameters:

Name Type Description Default
item_id str | None

The item to which the block is attached, or

None
collection_id str | None

The collection to which the block is attached.

None
init_data dict | None

A dictionary of data to initialise the block with.

None
unique_id str | None

A unique id for the block, used in the DOM and database.

None

Attributes:

Name Type Description
accepted_file_extensions tuple[str, ...]

A list of file extensions that the block will attempt to read.

block_db_model
block_id
blocktype

A short (unique) string key specifying the type of block.

data
defaults dict[str, Any]

Any default values that should be set if they are not

description

A longer description outlining the purpose and capability

name

The human-readable block name specifying which technique

plot_functions

A list of methods that will generate plots for this block.

version str

The implementation version of this particular block.

accepted_file_extensions

accepted_file_extensions: tuple[str, ...] = ('.asp', '.txt')

A list of file extensions that the block will attempt to read.

block_db_model

block_db_model = DataBlockResponse

block_id

block_id = unique_id or generate_random_id()

blocktype

blocktype = 'ftir'

A short (unique) string key specifying the type of block.

data

data = {'item_id': item_id, 'collection_id': collection_id, 'blocktype': blocktype, 'block_id': block_id, None: defaults}

defaults

defaults: dict[str, Any] = {}

Any default values that should be set if they are not supplied during block init.

description

description = 'This block can plot FTIR data from .asp files generated by an Agilent Spectrometer'

A longer description outlining the purpose and capability of the block.

name

name = 'FTIR'

The human-readable block name specifying which technique or file format it pertains to.

plot_functions

plot_functions

A list of methods that will generate plots for this block.

version

version: str = __version__

The implementation version of this particular block.

event_names

event_names() -> set[str]

Return a list of event names supported by this block.

events_by_name

events_by_name() -> dict[str, Callable]

Returns a dict of registered events for this block.

from_web

from_web(data: dict)

Initialise the block state from data passed via web request with a given item, collection and block ID.

Parameters:

Name Type Description Default
data dict

The block data to initialiaze the block with.

required

generate_ftir_plot

generate_ftir_plot()

null_event

null_event(**kwargs)

A null debug event that does nothing but logs its kwargs and overwrites the data dict with the args.

parse_ftir_asp

parse_ftir_asp(filename: Path) -> DataFrame

Parses .asp FTIR data generated by an Agilent Spectrometer

The file consists of a header with the number of points, the start and end wavenumber, a few lines of metadata, and then the absorbance data. This function reads the file, extracts the absorbance data, and returns it as a pandas DataFrame.

Parameters:

Name Type Description Default
filename Path

Path to the .asp file

required

Returns:

Type Description
DataFrame

FTIR dataframe with columns "Wavenumber (cm⁻¹)" and "Absorbance (%)".

parse_ftir_txt

parse_ftir_txt(filename: Path) -> DataFrame

Parses .txt FTIR data generated by a Shimadzu IR Tracer-100 FT-IR spectrophotometer

The file consists of a header with metadata: a title, data type, x units and y units, and then the IR data This function reads the file and extracts the data as a pandas DataFrame, and the x units and y units as strings. This function does not read the original .ispd file generated by the spectrometer

Parameters:

Name Type Description Default
filename Path

Path to the .txt file

required

Returns:

Type Description
DataFrame

FTIR dataframe with columns "Wavenumber (cm⁻¹)" and "Absorbance (%)".

process_events

process_events(events: list[dict] | dict)

Handle any supported events passed to the block.

to_db

to_db() -> dict

returns a dictionary with the data for this block, ready to be input into mongodb

to_web

to_web() -> dict[str, Any]

Returns a JSON serializable dictionary to render the data block on the web.

update_from_web

update_from_web(data: dict)

Update the block with validated data received from a web request. Will strip any fields that are "computed" or otherwise not controllable by the user.

Parameters:

Name Type Description Default
data dict

A dictionary of data to update the block with.

required