Source code for bspump.analyzer.geoanalyzer

import logging

from .analyzer import Analyzer
from ..matrix.geomatrix import GeoMatrix, PersistentGeoMatrix


L = logging.getLogger(__name__)


[docs] class GeoAnalyzer(Analyzer): """ This is the analyzer for events with geographical points dimension. `GeoAnalyzer` operates over the `GeoMatrix` object. `matrix_id` is an id of `GeoMatrix` object defined alternatively. **Config Defaults** max_lat : 71.26 min_lat : 23.33 min_lon : -10.10 max_lon : 40.6 """ ConfigDefaults = { "max_lat": 71.26, # Europe endpoints "min_lat": 23.33, "min_lon": -10.10, "max_lon": 40.6, }
[docs] def __init__( self, app, pipeline, matrix_id=None, dtype="float_", analyze_on_clock=False, bbox=None, resolution=5, persistent=False, id=None, config=None, ): """ Description: **Parameters** app : Application Name of the Application. pipeline : Pipeline Name of the Pipeline. matrix_id : str, default = None dtype : ??, default = "float_" analyze_on_clock : bool, default = False bbox : ??, default = None resolution : int, default = 5 persistent : bool, default = False id : str, default = None config = JSON, default = None configuration file with additional information """ super().__init__( app, pipeline, analyze_on_clock=analyze_on_clock, id=id, config=config ) svc = app.get_service("bspump.PumpService") if matrix_id is None: g_id = self.Id + "Matrix" if bbox is None: bbox = { "min_lat": float(self.ConfigDefaults["min_lat"]), "max_lat": float(self.ConfigDefaults["max_lat"]), "min_lon": float(self.ConfigDefaults["min_lon"]), "max_lon": float(self.ConfigDefaults["max_lon"]), } if persistent: self.GeoMatrix = PersistentGeoMatrix( app, dtype, bbox=bbox, resolution=resolution, id=g_id, config=config ) else: self.GeoMatrix = GeoMatrix( app, dtype, bbox=bbox, resolution=resolution, id=g_id, config=config ) svc.add_matrix(self.GeoMatrix) else: self.GeoMatrix = svc.locate_matrix(matrix_id)