def handle(self, **options):
        grower = GrowerInfo.objects.get(pk=1)
        ds = FewsJdbcDataSource(grower)

        _from = datetime(2013, 1, 24, 9, 30, tzinfo=pytz.utc)
        to = datetime(2013, 1, 29, 9, 30, tzinfo=pytz.utc)

        # get_rain data
        for rain_type in ('min', 'mean', 'max'):  # rain types
            results = ds.get_rain(rain_type, _from, to)
            data = convert_timeseries_to_python(results)
            if data:
                f = open('rain_%s_data.py' % rain_type, 'w')
                f.write(DATA_MODULE_START_TEXT)
                for dt, value in data:
                    f.write("    [%s, %s],\n" % (format_datetime(dt), value))
                f.write(DATA_MODULE_END_TEXT)
                f.close()

        # get_fill data
        _from = datetime(2012, 12, 29, 9, 30, tzinfo=pytz.utc)
        to = datetime(2013, 1, 29, 9, 30, tzinfo=pytz.utc)

        results = ds.get_fill(_from, to)
        data = convert_timeseries_to_python(results)
        if data:
            f = open('fill_data.py', 'w')
            f.write(DATA_MODULE_START_TEXT)
            for dt, value in data:
                f.write("    [%s, %s],\n" % (format_datetime(dt), value))
            f.write(DATA_MODULE_END_TEXT)
            f.close()
Пример #2
0
class FewsJdbcDataSourceTest(TestCase):
    fixtures = ['jdbc_source.json']

    def setUp(self):
        self.ds = FewsJdbcDataSource()

    def test_connection(self):
        fews_data = self.ds.get_fill(w30_0, w30_5)
        self.assertGreater(len(fews_data), 10)
Пример #3
0
    def rain(self, t0):
        _from = t0 - settings.CONTROLNEXT_FILL_HISTORY
        to = t0 + settings.CONTROLNEXT_FILL_PREDICT_FUTURE

        ds = FewsJdbcDataSource(self.basin, self.constants)
        mean = ds.get_rain('mean', _from, to)
        sum_ = ds.get_rain('sum', t0, to)
        kwadrant = ds.get_rain('kwadrant', t0, to)

        rain_graph_info = {
            'data': {
                'mean': self.series_to_js(mean),
                'sum': self.series_to_js(sum_),
                'kwadrant': self.series_to_js(kwadrant)
            },
            'x0': self.datetime_to_js(t0)
        }
        return {
            't0': t0,
            'rain_graph_info': rain_graph_info,
        }
Пример #4
0
    def rain(self, t0, rain_exaggerate_pct):
        _from = t0 - constants.fill_history
        to = t0 + constants.fill_predict_future

        ds = FewsJdbcDataSource()
        min = ds.get_rain("min", t0, to)
        mean = ds.get_rain("mean", _from, to)
        max = ds.get_rain("max", t0, to)

        if rain_exaggerate_pct != 100:
            rain_exaggerate = rain_exaggerate_pct / 100
            min *= rain_exaggerate
            mean *= rain_exaggerate
            max *= rain_exaggerate

        # import pdb; pdb.set_trace()
        rain_graph_info = {
            "data": {"min": series_to_js(min), "mean": series_to_js(mean), "max": series_to_js(max)},
            "x0": datetime_to_js(t0),
        }
        return {"t0": t0, "rain_graph_info": rain_graph_info}
Пример #5
0
 def setUp(self):
     self.ds = FewsJdbcDataSource()