perun.processing ================ .. py:module:: perun.processing .. autoapi-nested-parse:: Processing Module. Attributes ---------- .. autoapisummary:: perun.processing.log Functions --------- .. autoapisummary:: perun.processing.processEnergyData perun.processing.processSensorData perun.processing.processDataNode perun.processing.processRegionsWithSensorData perun.processing.addRunAndRuntimeInfoToRegion perun.processing.getInterpolatedValues Module Contents --------------- .. py:data:: log .. py:function:: processEnergyData(raw_data: perun.data_model.data.RawData, start: perun.data_model.measurement_type.Number | None = None, end: perun.data_model.measurement_type.Number | None = None) -> tuple[Any, Any] Calculate total energy and average power from an energy or power time series. Using the start and end parameters the results can be limited to certain areas of the application run. :param raw_data: Raw Data from sensor :type raw_data: RawData :param start: Start time of region, by default None :type start: Optional[Number], optional :param end: End time of region, by default None :type end: Optional[Number], optional :returns: Tuple with total energy in joules and avg power in watts. :rtype: _type_ .. py:function:: processSensorData(sensorData: perun.data_model.data.DataNode) -> perun.data_model.data.DataNode Calculate metrics based on raw values. :param sensorData: DataNode with raw sensor data. :type sensorData: DataNode :returns: DataNode with computed metrics. :rtype: DataNode .. py:function:: processDataNode(dataNode: perun.data_model.data.DataNode, perunConfig: configparser.ConfigParser, force_process: bool = False) -> perun.data_model.data.DataNode Recursively calculate metrics on the dataNode tree. :param dataNode: Root data node tree. :type dataNode: DataNode :param perunConfig: Perun configuration :type perunConfig: ConfigParser :param force_process: Force recomputation of child node metrics, by default False :type force_process: bool, optional :returns: Data node with computed metrics. :rtype: DataNode .. py:function:: processRegionsWithSensorData(regions: list[perun.data_model.data.Region], dataNode: perun.data_model.data.DataNode) -> None Complete region information using sensor data found on the data node (in place op). :param regions: List of regions that use the same data node. :type regions: List[Region] :param dataNode: Data node with sensor data. :type dataNode: DataNode .. py:function:: addRunAndRuntimeInfoToRegion(region: perun.data_model.data.Region) -> None Process run and runtime stats in region objects (in place operation). :param region: Region object :type region: Region .. py:function:: getInterpolatedValues(t: numpy.typing.NDArray[numpy.floating], x: numpy.typing.NDArray[numpy.floating], start: perun.data_model.measurement_type.Number, end: perun.data_model.measurement_type.Number) -> tuple[numpy.typing.NDArray[numpy.floating], numpy.typing.NDArray[numpy.floating]] Extract a time range out of a time series, and interpolate the values at the edges. :param t: Original time steps :type t: np.ndarray :param x: Original values :type x: np.ndarray :param start: Start of the roi :type start: Number :param end: End of the roi :type end: Number :returns: Tuple with the new time steps and values. :rtype: Tuple[np.ndarray, np.ndarray]