예제 #1
0
def daily_download(request):
    form = TimeSeriesFilterForm(request.GET)

    if (form.is_valid()):
        gages = form.cleaned_data['site_list']
        _logger.info("hourly csv download, gages is %s" % (gages))
        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]

        station_dict = stage_queries.station_dict(gages)

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]

        q, dt = stage_queries.daily_query(*station_dict.values())
        if beginDate:
            q = q.where(dt >= beginDate)
        if endDate:
            q = q.where(dt <= endDate)
        data = q.execute()

        # data_type = 'Hourly Water Level, NAVD88(ft)'  # hard coded for now... maybe this could be in the form where the user's can selected between hourly and daily data
        query_metadata_list = create_metadata_header(HEADER_MESSAGE, EDEN_CONTACT, END_OF_HEADER, form.cleaned_data, station_dict.values())

        response = HttpResponse(content_type='text/csv')

        stage_data.write_rdb(data, response, metadata=query_metadata_list)
        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
    pass
예제 #2
0
def daily_download(request):
    form = TimeSeriesFilterForm(request.GET)

    if form.is_valid():
        gages = form.cleaned_data["site_list"]
        _logger.info("hourly csv download, gages is %s" % (gages))
        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]

        station_dict = stage_queries.station_dict(gages)

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]

        q, dt = stage_queries.daily_query(*station_dict.values())
        if beginDate:
            q = q.where(dt >= beginDate)
        if endDate:
            q = q.where(dt <= endDate)
        data = q.execute()

        # data_type = 'Hourly Water Level, NAVD88(ft)'  # hard coded for now... maybe this could be in the form where the user's can selected between hourly and daily data
        query_metadata_list = create_metadata_header(
            HEADER_MESSAGE, EDEN_CONTACT, END_OF_HEADER, form.cleaned_data, station_dict.values()
        )

        response = HttpResponse(content_type="text/csv")

        stage_data.write_rdb(data, response, metadata=query_metadata_list)
        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
    pass
예제 #3
0
def plot_data_daily(request):
    form = TimeSeriesFilterForm(request.GET)

    if form.is_valid():
        gages = form.cleaned_data["site_list"]
        _logger.info("plot_data, gages is %s" % (gages))

        station_dict = stage_queries.station_dict(gages)

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]

        q, dt = stage_queries.daily_query_split(*station_dict.values())
        if beginDate:
            q = q.where(dt >= beginDate)
        if endDate:
            q = q.where(dt <= endDate)
        data = q.execute()

        response = HttpResponse(content_type="text/csv")
        if len(gages) == 1:
            site_name = "%s_NGVD29" % gages[0]
        else:
            site_name = None
        # stage_data.write_csv(results=data, outfile=response, station_name=site_name)
        stage_data.write_csv_for_plot(results=data, outfile=response, column_name=site_name)
        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
예제 #4
0
def plot_data_daily(request):
    form = TimeSeriesFilterForm(request.GET)

    if form.is_valid():
        gages = form.cleaned_data['site_list']
        _logger.info("plot_data, gages is %s" % (gages))

        station_dict = stage_queries.station_dict(gages)

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]

        q, dt = stage_queries.daily_query_split(*station_dict.values())
        if beginDate:
            q = q.where(dt >= beginDate)
        if endDate:
            q = q.where(dt <= endDate)
        data = q.execute()

        response = HttpResponse(content_type='text/csv')
        if len(gages) == 1:
            site_name = '%s_NGVD29' % gages[0]
        else:
            site_name = None
        # stage_data.write_csv(results=data, outfile=response, station_name=site_name)
        stage_data.write_csv_for_plot(results=data, outfile=response, column_name=site_name)
        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
예제 #5
0
def plot_data(request):
    # TODO Pull gage list up to list of model objects
    form = TimeSeriesFilterForm(request.GET)

    if form.is_valid():
        gages = form.cleaned_data['site_list']
        _logger.info("plot_data, gages is %s" % (gages))

        station_dict = stage_queries.station_dict(gages)

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]
        maxCount = form.cleaned_data["max_count"]

        response = HttpResponse(content_type='text/csv')

        data = stage_data.data_for_plot(gages,
                                        beginDate=beginDate,
                                        endDate=endDate,
                                        maxCount=maxCount,
                                        station_dict=station_dict
                                        )

        stage_data.write_csv_for_plot(results=data, outfile=response)
        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))
    def test_station_dict(self):
        "Test for station dict"
        names = ["G-3567", "RG3", "ANGEL", "BARW4", "TSH", "W15", "W2", "Upstream_Taylor_River", "CH1"]
        sd = stage_queries.station_dict(names)

        # self.assertEqual(len(names), len(sd))
        self.assertEquals(names, [s.station_name_web for s in sd.values()])
        self.assertEquals(names, sd.keys())
예제 #7
0
    def test_station_dict(self):
        "Test for station dict"
        names = [
            "G-3567", "RG3", "ANGEL", "BARW4", "TSH", "W15", "W2",
            "Upstream_Taylor_River", "CH1"
        ]
        sd = stage_queries.station_dict(names)

        # self.assertEqual(len(names), len(sd))
        self.assertEquals(names, [s.station_name_web for s in sd.values()])
        self.assertEquals(names, sd.keys())
예제 #8
0
def _daily_plot_data(form):
    gages = form.cleaned_data["site_list"]
    _logger.info("plot_data, gages is %s" % (gages))
    station_dict = stage_queries.station_dict(gages)
    station1 = station_dict.values()[0]
    beginDate = form.cleaned_data["timeseries_start"]
    endDate = form.cleaned_data["timeseries_end"]
    q, dt = stage_queries.daily_query_split(*station_dict.values())
    if beginDate:
        q = q.where(dt >= beginDate)
    if endDate:
        q = q.where(dt <= endDate)
    data = q.execute()
    return data, beginDate, endDate, station1
예제 #9
0
def _daily_plot_data(form):
    gages = form.cleaned_data['site_list']
    _logger.info("plot_data, gages is %s" % (gages))
    station_dict = stage_queries.station_dict(gages)
    station1 = station_dict.values()[0]
    beginDate = form.cleaned_data["timeseries_start"]
    endDate = form.cleaned_data["timeseries_end"]
    q, dt = stage_queries.daily_query_split(*station_dict.values())
    if beginDate:
        q = q.where(dt >= beginDate)
    if endDate:
        q = q.where(dt <= endDate)
    data = q.execute()
    return data, beginDate, endDate, station1
예제 #10
0
def plot_data(request):
    # TODO Pull gage list up to list of model objects
    form = TimeSeriesFilterForm(request.GET)

    if form.is_valid():
        gages = form.cleaned_data["site_list"]
        _logger.info("plot_data, gages is %s" % (gages))

        station_dict = stage_queries.station_dict(gages)

        beginDate = form.cleaned_data["timeseries_start"]
        endDate = form.cleaned_data["timeseries_end"]
        maxCount = form.cleaned_data["max_count"]

        response = HttpResponse(content_type="text/csv")

        data = stage_data.data_for_plot(
            gages, beginDate=beginDate, endDate=endDate, maxCount=maxCount, station_dict=station_dict
        )

        stage_data.write_csv_for_plot(results=data, outfile=response)
        return response
    else:
        return HttpResponseBadRequest(",".join(form.errors))