plugins.frequency_variation_plugin
index
/Users/anthony/Development/opq/mauka/plugins/frequency_variation_plugin.py

This plugin detects, classifies, and stores frequency variation incidents.
Frequency variations are classified as +/-0.10hz as specified by IEEE standards

 
Modules
       
config
constants
mongo
multiprocessing
numpy
plugins
protobuf

 
Classes
       
plugins.base_plugin.MaukaPlugin(builtins.object)
FrequencyVariationPlugin

 
class FrequencyVariationPlugin(plugins.base_plugin.MaukaPlugin)
    FrequencyVariationPlugin(conf: config.MaukaConfig, exit_event: <bound method BaseContext.Event of <multiprocessing.context.DefaultContext object at 0x109a54470>>)
 
Mauka plugin that classifies and stores frequency variation incidents for any event that includes a raw waveform
 
 
Method resolution order:
FrequencyVariationPlugin
plugins.base_plugin.MaukaPlugin
builtins.object

Methods defined here:
__init__(self, conf: config.MaukaConfig, exit_event: <bound method BaseContext.Event of <multiprocessing.context.DefaultContext object at 0x109a54470>>)
Initializes this plugin
:param conf: Mauka configuration
:param exit_event: Exit event that can disable this plugin from parent process
on_message(self, topic, mauka_message)
Called async when a topic this plugin subscribes to produces a message
:param topic: The topic that is producing the message
:param mauka_message: The message that was produced

Data and other attributes defined here:
NAME = 'FrequencyVariationPlugin'

Methods inherited from plugins.base_plugin.MaukaPlugin:
debug(self, msg: str)
Prints a debug message using this classes logger and formatted the plugin name.
:param msg: Message to print to debug.
get_mongo_client(self)
Returns an OPQ mongo client
 
:return: An OPQ mongo client
get_status(self) -> str
Return the status of this plugin
:return: The status of this plugin
handle_self_message(self, message: str)
Handles a self-message
 
:param message: The message to handle
is_self_message(self, topic: str) -> bool
Determines if this is a message directed at this plugin. I.e. the topic is the name of the plugin.
 
:param topic: Topic of the message
:return: If this is a self message or not
produce(self, topic: str, mauka_message: mauka_pb2.MaukaMessage)
Produces a message with a given topic to the system
 
:param topic: The topic to produce this message to
:param mauka_message: The message to produce
run_plugin(self)
This is the run loop for this plugin process
start_heartbeat(self)
This is a recursive function that acts as a heartbeat.
 
This function calls itself over-and-over on a timer to produce heartbeat messages. The interval can be
configured is the configuration file.

Data descriptors inherited from plugins.base_plugin.MaukaPlugin:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
frequency_incident_classifier(event_id: int, box_id: str, windowed_frequencies: numpy.ndarray, box_event_start_ts: int, freq_ref: float, freq_var_high: float, freq_var_low: float, freq_interruption: float, window_size: int, max_lull: int, opq_mongo_client: mongo.OpqMongoClient = None, logger=None)
Classifies a frequency incident as a Sag, Swell, or Interruption. Creates a Mongo Incident document
:param event_id: Makai Event ID
:param box_id: Box reporting event
:param windowed_frequencies: High fidelity frequency measurements of windows
:param box_event_start_ts: start timestamp of event in milliseconds
:param freq_ref: the reference frequency
:param freq_var_high: the threshold amount of variation to trigger a frequency swell incident
:param freq_var_low: the threshold amount of variation to trigger a frequency sag incident
:param freq_interruption: the frequency to trigger a frequency interruption incident
:param window_size: The number of samples per window
:param max_lull:
:param opq_mongo_client:
:param logger:
frequency_variation(frequency: float, freq_ref: float, freq_var_high: float, freq_var_low: float, freq_interruption: float)
Determine the variation type if any based on IEEE 1159 standards
:param frequency: the frequency measured over the window
:param freq_ref: the reference frequency
:param freq_var_high:
:param freq_var_low:
:param freq_interruption:
:return: variation_type: the variation type if there is a variation from the reference, otherwise False
rerun(mongo_client: mongo.OpqMongoClient, logger, mauka_message: mauka_pb2.MaukaMessage)
Rerun a makai event through the frequency variation plugin.
:param mongo_client: Mongo client to make the query.
:param logger: Application logger.
:param mauka_message: The mauka message to rerrun the frequency variation plugin over.