def __init__(self, latitude: float = None, longitude: float = None, location_name: str = "", **kwargs): self.latitude = latitude self.longitude = longitude self.location_name = location_name DBSensor.__init__(self, **kwargs)
def time_slot_sensor(db): """Define sensor for time slot events.""" sensor = DBSensor(name="TimeSlot15MinSensor", event_resolution=timedelta(minutes=15)) session.add(sensor) session.flush() return sensor
def ex_post_time_slot_sensor(db): """Define sensor for time slot events known in advance (ex post).""" sensor = DBSensor( name="ExPostSensor", event_resolution=timedelta(minutes=15), knowledge_horizon=( timedelta_x_days_ago_at_y_oclock, dict(x=1, y=12, z="Europe/Amsterdam"), ), ) session.add(sensor) session.flush() return sensor
def multiple_day_ahead_beliefs_about_ex_post_time_slot_event( ex_post_time_slot_sensor: DBSensor, test_source_a: DBBeliefSource): """Define multiple day-ahead beliefs about an ex post time slot event.""" n = 10 event_start = datetime(2025, 1, 2, 22, 45, tzinfo=utc) beliefs = [] for i in range(n): belief = DBTimedBelief( source=test_source_a, sensor=ex_post_time_slot_sensor, value=10 + i, belief_time=ex_post_time_slot_sensor.knowledge_time(event_start) - timedelta(hours=i + 1), event_start=event_start, ) session.add(belief) beliefs.append(belief) return beliefs
def instantaneous_sensor(db): """Define sensor for instantaneous events.""" sensor = DBSensor(name="InstantaneousSensor") session.add(sensor) session.flush() return sensor
def test_ex_post_time_slot_sensor(ex_post_time_slot_sensor: DBSensor): event_start = datetime(2018, 1, 1, 15, tzinfo=utc) assert ex_post_time_slot_sensor.knowledge_time(event_start) < event_start
def test_time_slot_sensor(time_slot_sensor: DBSensor): assert time_slot_sensor.event_resolution == timedelta(minutes=15) event_start = datetime(2018, 1, 1, 15, tzinfo=utc) event_end = event_start + time_slot_sensor.event_resolution assert time_slot_sensor.knowledge_time(event_start) == event_end