The LSST EFD Client

The LSST EFD Client helps you access the LSST Engineering Facility Database (EFD), which is backed by InfluxDB. The client, EfdClient handles authentication and provides convenience methods for accessing data in ready-to-use formats:


Get the topics in the EFD.


Get the fields in a particular topic.


Build an InfluxQL query for a topic and time range.


Get a DataFrame containing results of a time range query.


Get a DataFrame with high cadence telemetry expanded into a single DataFrame.


Get a DataFrame with the results of just the most recent rows.


Return metadata about fields associated with a topic. This includes the description, units and an astropy.units.Unit where possible. If any of the metadata is missing in the topic definition, it will be None in the returned schema.

This package also provides some useful utility functions for dealing with data returned from the various EfdClient data access methods:


Resample a pandas.DataFrame onto the the sampling of a second pandas.DataFrame


Given one pandas.DataFrame, find all entries in another pandas.DataFrame that are closest (default is nearest in the past).

Follow the Getting started guide to start accessing EFD data. Also, check out the demo notebooks for examples.

Using lsst_efd_client

Python API reference

lsst_efd_client Package

Collection of EFD utilities


resample(df1, df2[, interp_type])

Resample one DataFrame onto another.

rendezvous_dataframes(left, right[, ...])

Each record in left will be extended with a corresponding record in right if one exists.

merge_packed_time_series(packed_dataframe, ...)

Select fields that are time samples and unpack them into a dataframe. Parameters ---------- packed_dataframe : pandas.DataFrame packed data frame containing the desired data base_field : str Base field name that will be expanded to query all vector entries. stride : int, optional Only use every stride value when unpacking. Must be a factor of the number of packed values. (1 by default) ref_timestamp_col : str, optional Name of the field name to use to assign timestamps to unpacked vector fields (default is 'cRIO_timestamp'). fmt : str, optional Format to give to the astropy.Time constructor. Defaults to 'unix_tai' since most internal timestamp columns are in TAI. scale : str, optional Time scale to give to the astropy.Time constructor. Defaults to 'tai'. Returns ------- result : pandas.DataFrame A pandas.DataFrame containing the results of the query.



Class to help keep authentication credentials secret.

EfdClient(efd_name[, db_name, port, ...])

Class to handle connections and basic queries


lsst_efd_client is developed at Please use GitHub issues in the project repository to report problems and contribute.