ctapipe is not stable yet, so expect large and rapid changes to structure and functionality as we explore various design choices before the 1.0 release.

TableWriter#

class ctapipe.io.TableWriter(**kwargs: Any)[source]#

Bases: Component

Base class for writing tabular data stored in Container

A single write will add a new row to the output table, where each Field becomes a column. Subclasses of this implement specific output types.

See also

ctapipe.io.HDF5TableWriter

Implementation of this base class for writing HDF5 files

Methods Summary

add_column_transform(table_name, col_name, ...)

Add a transformation function for a column.

add_column_transform_regexp(table_regexp, ...)

Add a transformation function for a set of columns and tables that match the given regular expressions.

close()

Close open writer

exclude(table_regexp, pattern)

Exclude any columns (Fields) matching the pattern from being written.

open(filename, **kwargs)

open an output file

write(table_name, containers, **kwargs)

Write the contents of the given container or containers to a table.

Methods Documentation

add_column_transform(table_name, col_name, transform)[source]#

Add a transformation function for a column. This function will be called on the value in the container before it is written to the output file.

Parameters:
table_name: str

identifier of table being written

col_name: str

name of column in the table (or item in the Container).

transform: ColumnTransform

function that transforms input into output

add_column_transform_regexp(table_regexp, col_regexp, transform)[source]#

Add a transformation function for a set of columns and tables that match the given regular expressions. Each requested transform pattern will be turned into an explicit column transform when the table schema is built.

Parameters:
table_name: regexp

pattern matching the table name (via re.matchall)

col_name: regexp

pattern matching the column name if the table name also matches (via re.matchall)

transform: ColumnTransform

function that tranformns input value into output value

abstract close()[source]#

Close open writer

exclude(table_regexp, pattern)[source]#

Exclude any columns (Fields) matching the pattern from being written. The patterns are matched with re.fullmatch.

Parameters:
table_regexp: str

regexp matching to match table name to apply exclusion

pattern: str

regular expression string to match column name in the table

abstract open(filename, **kwargs)[source]#

open an output file

Parameters:
filename: str

output file name

kwargs:

any extra args to pass to the subclass open method

abstract write(table_name, containers, **kwargs)[source]#

Write the contents of the given container or containers to a table. The first call to write will create a schema and initialize the table within the file. The shape of data within the container must not change between calls, since variable-length arrays are not supported.

Parameters:
table_name: str

name of table to write to

containers: ctapipe.core.Container or iterable thereof

container instance(s) to write

**kwargs:

may be passed to a lower level implementation to set options