CpEfdClient

class lsst.cp.pipe.CpEfdClient(efdInstance='usdf_efd', dieOnSearch=False, log=None)

Bases: object

An EFD client to retrieve calibration results.

Parameters:
efdInstancestr, optional

EFD instance name to connect to.

loglogging.Logger, optional

Log to write messages to.

Methods Summary

checkConnection()

Check the connection to the EFD.

getEfdElectrometerData([dataSeries, ...])

Retrieve Electrometer data from the EFD.

getEfdMonochromatorData([dataSeries, ...])

Retrieve Monochromator data from the EFD.

getSchemaDtype(topicName)

Get datatypes for a topic.

parseElectrometerStatus(data, dateStr[, ...])

Determine electrometer status for a specific date.

parseMonochromatorStatus(data, dateStr)

Determine monochromator status for a specific date.

query(query)

Execute an EFD query.

rewriteElectrometerStatus(inResults)

Rewrite intermediate electrometer data extracted from the EFD logEvents.

searchResults(data, dateStr)

Find the row entry in data immediately preceding the specified date.

selectTimeSeries(topicName[, fields, ...])

Query a topic for a time series.

Methods Documentation

checkConnection()

Check the connection to the EFD.

Raises:
RuntimeError

Raised if the connection check fails.

getEfdElectrometerData(dataSeries=None, dateMin=None, dateMax=None)

Retrieve Electrometer data from the EFD.

Parameters:
dataSeriesstr, optional

Data series to request from the EFD.

dateMinstr, optional

Minimum date (in TAI) to retrieve from EFD.

dateMaxstr, optional

Maximum date (in TAI) to retrieve from EFD.

Returns:
resultsastropy.table.Table

The table of results returned from the EFD.

getEfdMonochromatorData(dataSeries=None, dateMin=None, dateMax=None)

Retrieve Monochromator data from the EFD.

Parameters:
dataSeriesstr, optional

Data series to request from the EFD.

dateMinstr, optional

Minimum date (in TAI) to retrieve from EFD.

dateMaxstr, optional

Maximum date (in TAI) to retrieve from EFD.

Returns:
resultsastropy.table.Table

The table of results returned from the EFD.

getSchemaDtype(topicName)

Get datatypes for a topic.

Parameters:
topicNamestr

Topic to get datatypes for

Returns:
datatypeslist [tuple [str, str]]

List of tuples of field names and data types.

parseElectrometerStatus(data, dateStr, dateEnd=None, doIntegrateSamples=False, index=201)

Determine electrometer status for a specific date.

Parameters:
dataastropy.table.Table

The dataframe of electrometer results from the EFD.

dateStrstr

The date (in TAI) to look up in the status for.

dateEndstr

The end date (in TAI) to look in the status for.

doIntegrateSamples: `bool`

If true, take the average of all samples between dateStr and dateEnd.

indexint

The salIndex of the device we want to read. For LATISS, this should be 201. For the main telescope, 101.

Returns:
indexDatestr

Date string (in TAI) indicating the electrometer state change.

intensity: float

Average electrometer intensity.

parseMonochromatorStatus(data, dateStr)

Determine monochromator status for a specific date.

Parameters:
dataastropy.table.Table

The dataframe of monochromator results from the EFD.

dateStrstr

The date (in TAI) to look up in the status for.

Returns:
indexDatestr

Date string (in TAI) indicating the monochromator state change.

wavelengthfloat

Monochromator commanded peak.

query(query)

Execute an EFD query.

Parameters:
querystr

Query to run.

Returns:
resultsdict

Dictionary of results returned.

Raises:
RuntimeError

Raised if the the database could not be read from.

rewriteElectrometerStatus(inResults)

Rewrite intermediate electrometer data extracted from the EFD logEvents.

Parameters:
inResultsastropy.table.Table

The table of results returned from the EFD.

Returns:
outResultsastropy.table.Table

The rewritten table containing only electrometer summary status events.

searchResults(data, dateStr)

Find the row entry in data immediately preceding the specified date.

Parameters:
dataastropy.table.Table

The table of results from the EFD.

dateStrstr

The date (in TAI) to look up in the status for.

Returns:
result = astropy.table.Row

The row of the data table corresponding to dateStr.

selectTimeSeries(topicName, fields=[], startDate=None, endDate=None)

Query a topic for a time series.

Parameters:
topicNamestr

Database “topic” to query.

fieldslist, optional

List of fields to return. If empty, all fields are returned.

startDateastropy.time.Time, optional

Start date to limit the results returned.

endDateastropy.time.Time, optional

End date to limit the results returned.

Returns:
tableastropy.table.Table

A table containing the fields requested, with each row corresponding to one date (available in the "time" column).