def param_rdb_download(request):
    form = DataParamForm(request.GET)
    if form.is_valid():
        _logger.info(
            "requested data download for %s with params %s"
            % (form.cleaned_data["site_list"], form.cleaned_data["params"])
        )

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]
        gage = form.cleaned_data["site_list"]
        p = form.cleaned_data["params"][0]

        station_list = stage_queries.station_list([gage])
        pt = Plottable(station_list[0], p, beginDate, endDate)
        data_seq = pt.sequence()

        # fifth parameter to create_metadata_header is list of Station objects
        station_list = stage_queries.station_list([gage])
        query_metadata_list = create_metadata_header(
            GENERAL_MESSAGE, EDEN_CONTACT, END_OF_HEADER, form.cleaned_data, station_list, water_level=False
        )

        response = HttpResponse(content_type="text/csv")
        stage_data.write_rdb(data_seq, response, metadata=query_metadata_list)

        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
 def test_plot_data_url(self):
     pt = Plottable("EDEN_7", "salinity", "2012-03-01", "2012-04-01")
     url = pt.data_url()
     print url
     self.assertEquals(
         url,
         "/eden/param_data_download?site_list=EDEN_7&params=salinity&timeseries_start=2012-03-01&timeseries_end=2012-04-01"
     )
 def test_plot_data_url(self):
     pt = Plottable("EDEN_7", "salinity", "2012-03-01", "2012-04-01")
     url = pt.data_url()
     print url
     self.assertEquals(
         url,
         "/eden/param_data_download?site_list=EDEN_7&params=salinity&timeseries_start=2012-03-01&timeseries_end=2012-04-01",
     )
    def test_station_title(self):
        class MockStation(object):
            station_name_web = "EDEN_3"
            short_name = "a_test_name"

        pt = Plottable(MockStation(), "temperature", "2004-02-01", "2004-04-01")
        self.assertEquals("A Test Name", pt.title())
        self.assertEquals("EDEN_3", pt.gage_name)
        self.assertIn("Temperature", pt.label_y())
    def test_station_title(self):
        class MockStation(object):
            station_name_web = "EDEN_3"
            short_name = "a_test_name"

        pt = Plottable(MockStation(), "temperature", "2004-02-01",
                       "2004-04-01")
        self.assertEquals("A Test Name", pt.title())
        self.assertEquals("EDEN_3", pt.gage_name)
        self.assertIn("Temperature", pt.label_y())
def param_page(request):
    template_name = 'eve_params.html'
    param_form = DataParamForm()

    if "clear_form" in request.REQUEST:
        return redirect(param_page)

    has_data = False
    # be careful about initial get with no parameters,
    # so we don't clobber the initial values
    if request.method == 'GET' and request.GET:
        param_form = DataParamForm(request.GET)
        has_data = True
    elif request.method == 'POST':
        param_form = DataParamForm(request.POST)
        has_data = True

    if has_data:
        if param_form.is_valid():
            # Avoid the troublesome Nones.
            plot_params = {}
            for k, v in param_form.cleaned_data.items():
                if v:
                    plot_params[k] = v

            kwargs = {
                'beginDate': param_form.cleaned_data['timeseries_start'],
                'endDate': param_form.cleaned_data['timeseries_end']
            }

            plottables = []
            station_list = stage_queries.station_list(
                [param_form.cleaned_data['site_list']])
            for s in station_list:
                for p in param_form.cleaned_data['params']:
                    pt = Plottable(s, p, **kwargs)
                    plottables.append(pt)

            render_params = {
                'param_form': param_form,
                'plottables': plottables,
                'EDEN_URL': settings.EDEN_URL,
            }
            return render(request, template_name, render_params)

        else:
            # error in input
            return render(request,
                          template_name, {
                              'param_form': param_form,
                              'EDEN_URL': settings.EDEN_URL
                          },
                          status=400)

    return render(request, template_name, {
        'param_form': param_form,
        'EDEN_URL': settings.EDEN_URL
    })
Beispiel #7
0
def _plot_simple(gage, p, beginDate=None, endDate=None, format='png', show_logo=True):
    station_list = stage_queries.station_list([gage])
    pt = Plottable(station_list[0], p, beginDate, endDate)
    data_seq = pt.sequence()


    if show_logo:
        title = pt.title()
    else:
        title = None

    if not format in _mime_types:
        return HttpResponseBadRequest("Unknown image format: " + format)

    response = HttpResponse(content_type=_mime_types[format])
    hydrograph.png_simple(data_seq, response, beginDate=beginDate, endDate=endDate,
                          format=format, show_logo=show_logo, title=title, y_label=pt.label_y())
    return response
Beispiel #8
0
def param_data_download(request):

    form = DataParamForm(request.GET)
    if form.is_valid():
        _logger.info("requested plot data for %s with params %s" % (form.cleaned_data['site_list'], form.cleaned_data['params']))

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]
        gage = form.cleaned_data['site_list']
        p = form.cleaned_data['params'][0]

        station_list = stage_queries.station_list([gage])
        pt = Plottable(station_list[0], p, beginDate, endDate)

        data_seq = pt.sequence()

        response = HttpResponse(content_type='text/csv')
        stage_data.write_csv(data_seq, response)

        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
def _plot_simple(gage, p, beginDate=None, endDate=None, format="png", show_logo=True):
    station_list = stage_queries.station_list([gage])
    pt = Plottable(station_list[0], p, beginDate, endDate)
    data_seq = pt.sequence()

    if show_logo:
        title = pt.title()

    if not format in _mime_types:
        return HttpResponseBadRequest("Unknown image format: " + format)

    response = HttpResponse(content_type=_mime_types[format])
    hydrograph.png_simple(
        data_seq,
        response,
        beginDate=beginDate,
        endDate=endDate,
        format=format,
        show_logo=show_logo,
        title=title,
        y_label=pt.label_y(),
    )
    return response
def param_data_download(request):

    form = DataParamForm(request.GET)
    if form.is_valid():
        _logger.info(
            "requested plot data for %s with params %s" % (form.cleaned_data["site_list"], form.cleaned_data["params"])
        )

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]
        gage = form.cleaned_data["site_list"]
        p = form.cleaned_data["params"][0]

        station_list = stage_queries.station_list([gage])
        pt = Plottable(station_list[0], p, beginDate, endDate)

        data_seq = pt.sequence()

        response = HttpResponse(content_type="text/csv")
        stage_data.write_csv(data_seq, response)

        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
Beispiel #11
0
def param_rdb_download(request):
    form = DataParamForm(request.GET)
    if form.is_valid():
        _logger.info("requested data download for %s with params %s" % (form.cleaned_data['site_list'], form.cleaned_data['params']))

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]
        gage = form.cleaned_data['site_list']
        p = form.cleaned_data['params'][0]

        station_list = stage_queries.station_list([gage])
        pt = Plottable(station_list[0], p, beginDate, endDate)
        data_seq = pt.sequence()

        # fifth parameter to create_metadata_header is list of Station objects
        station_list = stage_queries.station_list([gage])
        query_metadata_list = create_metadata_header(GENERAL_MESSAGE, EDEN_CONTACT, END_OF_HEADER, form.cleaned_data, station_list, water_level=False)

        response = HttpResponse(content_type='text/csv')
        stage_data.write_rdb(data_seq, response, metadata=query_metadata_list)

        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
                                                  endDate="2006-11-12")
    station = ss[0]
    ct = png_single_station(data,
                            "/tmp/hg6b.png",
                            station,
                            beginDate=dateutil.parser.parse("2006-10-15"),
                            endDate=dateutil.parser.parse("2006-11-12"),
                            show_logo=False)
    print "hg6b.png", ct

    gage = "EDEN_3"
    p = "rainfall"
    beginDate = datetime.date(2013, 01, 01)
    endDate = datetime.date(2013, 3, 1)
    station_list = stage_queries.station_list([gage])
    pt = Plottable(station_list[0], p, beginDate, endDate)

    data_seq = pt.sequence()

    show_logo = True

    # Let logo also drive title display
    if show_logo:
        title = pt.title()

    png_simple(data_seq,
               "/tmp/hg7.png",
               beginDate=beginDate,
               endDate=endDate,
               show_logo=show_logo,
               title=title,
 def test_id(self):
     pt = Plottable("EDEN_7", "temperature", "2012-03-01", "2012-04-01")
     self.assertEquals("EDEN_7_temperature", pt.id())
 def test_no_data_pos(self):
     pt = Plottable("EDEN_3", "salinity", "2012-03-01", "2012-04-01")
     for t in pt.sequence():
         self.assertEquals(2, len(t))
 def test_labels(self):
     pt = Plottable("EDEN_3", "salinity", "2012-03-01", "2012-04-01")
     self.assertEquals("Date", pt.label_x())
     self.assertEquals("Salinity", pt.label_y())
 def test_no_data_neg(self):
     with self.assertRaises(NoData):
         pt = Plottable("2A300", "temperature")
         for t in pt.sequence():
             print t
 def test_rainfall(self):
     pt = Plottable("GAGE", "rainfall")
     self.assertEquals(pt.gage_name, "GAGE")
     self.assertEquals(pt.param, "rainfall")
 def test_no_data_neg(self):
     with self.assertRaises(NoData):
         pt = Plottable("2A300", "temperature")
         for t in pt.sequence():
             print t
 def test_oops_1(self):
     with self.assertRaises(TypeError):
         pt = Plottable("GAGE", "bogus")
         print pt.data_url()
 def test_no_data_pos(self):
     pt = Plottable("EDEN_3", "salinity", "2012-03-01", "2012-04-01")
     for t in pt.sequence():
         self.assertEquals(2, len(t))
 def test_id(self):
     pt = Plottable("EDEN_7", "temperature", "2012-03-01", "2012-04-01")
     self.assertEquals("EDEN_7_temperature", pt.id())
 def test_labels(self):
     pt = Plottable("EDEN_3", "salinity", "2012-03-01", "2012-04-01")
     self.assertEquals("Date", pt.label_x())
     self.assertEquals("Salinity", pt.label_y())
Beispiel #23
0
    print "hg6a.png", ct

    data, ss = stage_queries.data_for_plot_hourly(['CV5NR'], beginDate="2006-10-15", endDate="2006-11-12")
    station = ss[0]
    ct = png_single_station(data, "/tmp/hg6b.png", station,
                    beginDate=dateutil.parser.parse("2006-10-15"),
                    endDate=dateutil.parser.parse("2006-11-12"),
                    show_logo=False)
    print "hg6b.png", ct

    gage = "EDEN_3"
    p = "rainfall"
    beginDate = datetime.date(2013, 01, 01)
    endDate = datetime.date(2013, 3, 1)
    station_list = stage_queries.station_list([gage])
    pt = Plottable(station_list[0], p, beginDate, endDate)

    data_seq = pt.sequence()

    show_logo = True

    # Let logo also drive title display
    if show_logo:
        title = pt.title()

    png_simple(data_seq, "/tmp/hg7.png", beginDate=beginDate, endDate=endDate,
                              show_logo=show_logo, title=title, y_label=pt.label_y())
    print "hg7.png"

    data_seq = pt.sequence()
    png_simple(data_seq, "/tmp/hg7.svg", format="svg", beginDate=beginDate, endDate=endDate,
 def test_oops_1(self):
     with self.assertRaises(TypeError):
         pt = Plottable("GAGE", "bogus")
         print pt.data_url()