PIconnect.PIData module

PIData contains a number of auxiliary classes that define common functionality among PIPoint and PIAFAttribute objects.

class PIconnect.PIData.PISeriesContainer

Bases: ABC

With the ABC class we represent a general behaviour with PI Point object (General class for objects that return PISeries objects).

Todo

Move __boundary_types to PIConsts as a new enumeration

property current_value: Any

Return the current value of the attribute.

filtered_summaries(start_time: str | datetime, end_time: str | datetime, interval: str, filter_expression: str, summary_types: SummaryType, calculation_basis: CalculationBasis = CalculationBasis.TIME_WEIGHTED, filter_evaluation: ExpressionSampleType = ExpressionSampleType.EXPRESSION_RECORDED_VALUES, filter_interval: str | None = None, time_type: TimestampCalculation = TimestampCalculation.AUTO) <MagicMock id='139665794867056'>

Return one or more summary values for each interval within a time range

Parameters:
  • start_time (str or datetime) – String containing the date, and possibly time, from which to retrieve the values. This is parsed, together with end_time, using AF.Time.AFTimeRange.

  • end_time (str or datetime) – String containing the date, and possibly time, until which to retrieve values. This is parsed, together with start_time, using AF.Time.AFTimeRange.

  • interval (str) – String containing the interval at which to extract data. This is parsed using AF.Time.AFTimeSpan.Parse.

  • filter_expression (str, optional) – Defaults to ‘’. Query on which data to include in the results. See Filtering values for more information on filter queries.

  • summary_types (int or PIConsts.SummaryType) – Type(s) of summaries of the data within the requested time range.

  • calculation_basis (int or PIConsts.CalculationBasis, optional) – Event weighting within an interval. See Event weighting and CalculationBasis for more information. Defaults to CalculationBasis.TIME_WEIGHTED.

  • filter_evaluation (int or PIConsts.ExpressionSampleType, optional) – Determines whether the filter is applied to the raw events in the database, of if it is applied to an interpolated series with a regular interval. Defaults to ExpressionSampleType.EXPRESSION_RECORDED_VALUES.

  • filter_interval (str, optional) – String containing the interval at which to extract apply the filter. This is parsed using AF.Time.AFTimeSpan.Parse.

  • time_type (int or PIConsts.TimestampCalculation, optional) – Timestamp to return for each of the requested summaries. See Summary timestamps and TimestampCalculation for more information. Defaults to TimestampCalculation.AUTO.

Returns:

Dataframe with the unique timestamps as row index

and the summary name as column name.

Return type:

pandas.DataFrame

interpolated_value(time: str | datetime) <MagicMock name='mock.__getitem__()' id='139665660940976'>

Return a PISeries with an interpolated value at the given time

Parameters:

time (str, datetime) – String containing the date, and possibly time, for which to retrieve the value. This is parsed, using AF.Time.AFTime.

Returns:

A PISeries with a single row, with the corresponding time as

the index

Return type:

PISeries

interpolated_values(start_time: str | datetime, end_time: str | datetime, interval: str, filter_expression: str = '') <MagicMock name='mock.__getitem__()' id='139665660940976'>

Return a PISeries of interpolated data.

Data is returned between start_time and end_time at a fixed interval. All three values are parsed by AF.Time and the first two allow for time specification relative to “now” by use of the asterisk.

filter_expression is an optional string to filter the returned values, see OSIsoft PI documentation for more information.

The AF SDK allows for inclusion of filtered data, with filtered values marked as such. At this point PIconnect does not support this and filtered values are always left out entirely.

Parameters:
  • start_time (str or datetime) – Containing the date, and possibly time, from which to retrieve the values. This is parsed, together with end_time, using AF.Time.AFTimeRange.

  • end_time (str or datetime) – Containing the date, and possibly time, until which to retrieve values. This is parsed, together with start_time, using AF.Time.AFTimeRange.

  • interval (str) – String containing the interval at which to extract data. This is parsed using AF.Time.AFTimeSpan.Parse.

  • filter_expression (str, optional) – Defaults to ‘’. Query on which data to include in the results. See Filtering values for more information on filter queries.

Returns:

Timeseries of the values returned by the SDK

Return type:

PISeries

abstract property name: str
recorded_value(time: str | datetime, retrieval_mode: RetrievalMode = RetrievalMode.AUTO) <MagicMock name='mock.__getitem__()' id='139665660940976'>

Return a PISeries with the recorded value at or close to the given time

Parameters:
  • time (str) – String containing the date, and possibly time, for which to retrieve the value. This is parsed, using AF.Time.AFTime.

  • retrieval_mode (int or PIConsts.RetrievalMode) – Flag determining which value to return if no value available at the exact requested time.

Returns:

A PISeries with a single row, with the corresponding time as

the index

Return type:

PISeries

recorded_values(start_time: str | datetime, end_time: str | datetime, boundary_type: str = 'inside', filter_expression: str = '')

Return a PISeries of recorded data.

Data is returned between the given start_time and end_time, inclusion of the boundaries is determined by the boundary_type attribute. Both start_time and end_time are parsed by AF.Time and allow for time specification relative to “now” by use of the asterisk.

By default the boundary_type is set to ‘inside’, which returns from the first value after start_time to the last value before end_time. The other options are ‘outside’, which returns from the last value before start_time to the first value before end_time, and ‘interpolate’, which interpolates the first value to the given start_time and the last value to the given end_time.

filter_expression is an optional string to filter the returned values, see OSIsoft PI documentation for more information.

The AF SDK allows for inclusion of filtered data, with filtered values marked as such. At this point PIconnect does not support this and filtered values are always left out entirely.

Parameters:
  • start_time (str or datetime) – Containing the date, and possibly time, from which to retrieve the values. This is parsed, together with end_time, using AF.Time.AFTimeRange.

  • end_time (str or datetime) – Containing the date, and possibly time, until which to retrieve values. This is parsed, together with start_time, using AF.Time.AFTimeRange.

  • boundary_type (str, optional) – Defaults to ‘inside’. Key from the __boundary_types dictionary to describe how to handle the boundaries of the time range.

  • filter_expression (str, optional) – Defaults to ‘’. Query on which data to include in the results. See Filtering values for more information on filter queries.

Returns:

Timeseries of the values returned by the SDK

Return type:

PISeries

Raises:

ValueError – If the provided boundary_type is not a valid key a ValueError is raised.

summaries(start_time: str | datetime, end_time: str | datetime, interval: str, summary_types: SummaryType, calculation_basis: CalculationBasis = CalculationBasis.TIME_WEIGHTED, time_type: TimestampCalculation = TimestampCalculation.AUTO) <MagicMock id='139665794894720'>

Return one or more summary values for each interval within a time range

Parameters:
Returns:

Dataframe with the unique timestamps as row index

and the summary name as column name.

Return type:

pandas.DataFrame

summary(start_time: str | datetime, end_time: str | datetime, summary_types: SummaryType, calculation_basis: CalculationBasis = CalculationBasis.TIME_WEIGHTED, time_type: TimestampCalculation = TimestampCalculation.AUTO) <MagicMock id='139665794878864'>

Return one or more summary values over a single time range.

Parameters:
Returns:

Dataframe with the unique timestamps as row index

and the summary name as column name.

Return type:

pandas.DataFrame

abstract property units_of_measurement: str | None
update_value(value: Any, time: str | datetime | None = None, update_mode: UpdateMode = UpdateMode.NO_REPLACE, buffer_mode: BufferMode = BufferMode.BUFFER_IF_POSSIBLE) None

Update value for existing PI object.

Parameters:
  • value – value type should be in cohesion with PI object or it will raise PIException: [-10702] STATE Not Found

  • time (datetime, optional) – it is not possible to set future value, it raises PIException: [-11046] Target Date in Future.

You can combine update_mode and time to change already stored value.

version = '0.1.0'