Example #1
0
def get_sd_ratios(what,orgn,dstn,fltnum,dfrom,dto,daysprior,cls):

    curr_dt = datetime.now()
    curr_date = date(curr_dt.year, curr_dt.month, curr_dt.day)

    if what == 'pb':
        [vals,obs,diff,dptdts] = get_fcsterr_by_dptdt_dflc_lvl('uncons',orgn,dstn,fltnum,dfrom,curr_date,daysprior,cls)
    elif what == 'fb':
        print "fp parameter what isn't implemented"
        assert 0
    elif what == 'ns':
        vals = get_noshows_by_flc_lvl(orgn,dstn,fltnum,dfrom,dto,cls)
    else:
        print 'Unknown parameter what in get_sd_ratios'
        assert 0

    print vals

    try:

        vals_r = robjects.FloatVector(vals)
        res_r = r.find_var_prop(vals_r) 
        res = robjects.default_ri2py(res_r)   
    except:
        res = [0,0]

    return res
Example #2
0
def get_fcsterr_mse(type, orgn, dstn, fltnum, dfrom, dto, daysprior, cls):

    [fcst, obs, diff, dptdt_l] = get_fcsterr_by_dptdt_dflc_lvl(type, orgn, dstn, fltnum, dfrom, dto, daysprior, cls)
    r_diff = robjects.FloatVector(diff)
    r_mse = r.get_mse(r_diff)
    mse = robjects.default_ri2py(r_mse)[0]

    return mse
Example #3
0
def get_ljung_box_pval(type, orgn, dstn, fltnum, dfrom, dto, daysprior, cls):

    [fcst, obs, diff, dptdt_l] = get_fcsterr_by_dptdt_dflc_lvl(type, orgn, dstn, fltnum, dfrom, dto, daysprior, cls)
    if len(diff) != 0:
        r_diff = robjects.FloatVector(diff)
        r_pval = r.get_ljung_box_pval(r_diff)
        pval = robjects.default_ri2py(r_pval)[0]
    else:
        pval = 0
    return pval
Example #4
0
def cd_uncons_fval_by_dptdt(request,val_type,orgn,dstn,fltnum,cls,daysprior,dfrom,dto):

    if dfrom != '' and dto != '':

        dfrom_l = dfrom.split('-')
        dto_l = dto.split('-')
        dfrom = date(int(dfrom_l[0]),int(dfrom_l[1]),int(dfrom_l[2]))
        dto = date(int(dto_l[0]),int(dto_l[1]),int(dto_l[2]))

    gr = graph()
    gr.title('FORECASTED UNCONSTRAINED VALUES', '{font-size: 18px; color: #777777; font-family: Georgia}')

    if len(cls) == 0 or dfrom == '' or dto == '' or daysprior == '':
        gr.set_data([])
        gr.set_x_labels([])
    else:
        dptdt = []
        for e in cls:
            [fcst,obs,diff,dptdt] = get_fcsterr_by_dptdt_dflc_lvl('uncons',orgn,dstn,fltnum,dfrom,dto,int(daysprior),e)
            gr.set_data(fcst)
            gr.line(2,'0x'+colors[e],e,14)
        dptdt_l = []
        dptdt_s = [e.strftime('%Y-%m-%d')+' ' for e in dptdt]
        i = 0
        dptdt_len = len(dptdt_s)
        rt = dptdt_len/30
        for e in dptdt_s:
            if i % rt == 0 and i != 0:
                dptdt_l.append(e)
            else:
                dptdt_l.append('')
            i = i + 1
        gr.set_x_labels(dptdt_l)

        # show bar for daysprior
        bar_data = [0] * len(dptdt_l)
        bar_data[len(dptdt_l) - int(daysprior)] = 100
        gr.set_data(bar_data)
        gr.bar(100,bar_data,'0xFF0000',50)

    gr.set_y_min(0)
    gr.set_y_max(100)
    gr.set_bg_colour('#FFFFFF')
    gr.set_x_label_style(12,'#852B00',2)
    gr.set_y_label_style(12,'#852B00')

    return HttpResponse(gr.render())
Example #5
0
def get_fcsterr_trend_pol2(type, orgn, dstn, fltnum, dfrom, dto, daysprior, cls):

    [fcst, obs, diff, dptdt_l] = get_fcsterr_by_dptdt_dflc_lvl(type, orgn, dstn, fltnum, dfrom, dto, daysprior, cls)
    r_diff = robjects.FloatVector(diff)
    res = r.get_trend_pol2(r_diff)
    return res
Example #6
0
def cd_uncons_err_by_dptdt(request,err_type,orgn,dstn,fltnum,cls,daysprior,dfrom,dto):

    if dfrom != '' and dto != '':

        dfrom_l = dfrom.split('-')
        dto_l = dto.split('-')
        dfrom = date(int(dfrom_l[0]),int(dfrom_l[1]),int(dfrom_l[2]))
        dto = date(int(dto_l[0]),int(dto_l[1]),int(dto_l[2]))

    gr = graph()
    gr.title('UNCONSTRAINED FORECAST ERROR','{font-size: 18px; color: #777777; font-family: Georgia}')
   

    # FIXME: Re-write this mess below!!!!

    dptdt_l = []
    if len(cls) == 0 or dfrom == '' or dto == '' or daysprior == '':
        gr.set_data([])
        gr.set_x_labels([])
    else:
        dptdt = []
        for e in cls:
            [fcst,obs,diff,dptdt] = get_fcsterr_by_dptdt_dflc_lvl('uncons',orgn,dstn,fltnum,dfrom,dto,int(daysprior),e)
            gr.set_data(diff)
            gr.line(2,'0x'+colors[e],e,14)
        dptdt_s = [e.strftime('%Y-%m-%d')+'  ' for e in dptdt]
        i = 0
        dptdt_len = len(dptdt_s)
        # we need 30 observations
        rt = dptdt_len/30
        for e in dptdt_s:
            if i % rt == 0 and i != 0:
                dptdt_l.append(e)
            else:
                dptdt_l.append('')            
            i = i + 1
        gr.set_x_labels(dptdt_l)

        # show bar for daysprior
        bar_data = [0]*len(dptdt_l)
        bar_data[len(dptdt_l) - int(daysprior)] = -50
        gr.set_data(bar_data)
        gr.bar(100,bar_data,'0xFF0000',50)

        bar_data[len(dptdt_l) - int(daysprior)] = 50
        gr.set_data(bar_data)
        gr.bar(100,bar_data,'0xFF0000',50)

        # show horizontal zero line
        zero_line = [0] * len(dptdt_l)
        gr.set_data(zero_line)
        gr.line(1,'0x000000','',14)

    if err_type == 'ae':
        gr.set_y_min(-50)
        gr.set_y_max(50)
    elif err_type == 're':
        gr.set_y_min(-1)
        gr.set_y_max(1)
    else:
        pass

    gr.set_bg_colour('#FFFFFF')
    gr.set_x_label_style(12,'#852B00',2)
    gr.set_y_label_style(12,'#852B00')

    return HttpResponse(gr.render())