Exemplo n.º 1
0
    def calc_and_store_sluice_error_timeseries(
        self, start_date_calc, end_date_calc, timestep,
        name=None, parameter=None):
        """
        Calculate, store and return waterbalance timeseries for sluice error.
        """
        if name is None:
            name = 'sluice_error'
        if parameter is None:
            parameter, _ = Parameter.objects.get_or_create(
                name='sluitfout', unit='m')

        ts = self.calc_sluice_error_timeseries(
            start_date_calc, end_date_calc)[0]  # Is actually quite fast.
        if timestep == WaterbalanceTimeserie.TIMESTEP_DAY:
            ts_dict = dict(ts.events())
        elif timestep == WaterbalanceTimeserie.TIMESTEP_MONTH:
            ts_dict = dict(ts.monthly_events())
        else:
            logger.error("Timestep %d is not supported yet." % timestep)
            return None
        result_timeseries = WaterbalanceTimeserie.create(
            name=name,
            parameter=parameter,
            timeseries=ts_dict,
            configuration=self.configuration,
            timestep=timestep,
            hint_datetime_start=start_date_calc,
            hint_datetime_end=end_date_calc)
        return result_timeseries
Exemplo n.º 2
0
 def test_waterbalance_timeserie_create(self):
     """
     Creates local waterbalance timeserie.
     """
     parameter = Parameter(name='test parameter', unit='nvt')
     parameter.save()
     c = None  # WaterbalanceConf.objects.all()[0]
     timestep = WaterbalanceTimeserie.TIMESTEP_DAY
     ts = {
         datetime.datetime(2011, 1, 1): 1.414,
         datetime.datetime(2011, 2, 1): 2.25,
         datetime.datetime(2011, 3, 1): 2.71,
         }
     wb_ts = WaterbalanceTimeserie.create(
         name='jacktest', parameter=parameter,
         timeseries=ts, configuration=c, timestep=timestep)
     ts = wb_ts.get_timeseries()
     events = ts.timeseries_events.all()
     self.assertEquals(events[0].time, datetime.datetime(2011, 1, 1))
     self.assertEquals(events[0].value, 1.414)  # Does it work? Float..
     self.assertEquals(events[1].time, datetime.datetime(2011, 2, 1))
     self.assertEquals(events[1].value, 2.25)  # Does it work? Float..
     self.assertEquals(events[2].time, datetime.datetime(2011, 3, 1))
     self.assertEquals(events[2].value, 2.71)  # Does it work? Float..