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_topics

Get the topics in the EFD.

get_fields

Get the fields in a particular topic.

build_time_range_query

Build an InfluxQL query for a topic and time range.

select_time_series:

Get a DataFrame containing results of a time range query.

select_packed_time_series:

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

select_top_n

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

get_schema

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

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

rendezvous_dataframes

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

Functions

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.

Classes

NotebookAuth([service_endpoint])

Class to help keep authentication credentials secret.

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

Class to handle connections and basic queries

Contributing

lsst_efd_client is developed at https://github.com/lsst-sqre/lsst-efd-client. Please use GitHub issues in the project repository to report problems and contribute.