예제 #1
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :return:
    """
    # load_data speed data
    us = moe_helper.get_speed(route.get_stations(), prd, **kwargs)
    us_results = moe_helper.add_virtual_rnodes(us, route)

    us_data = [res.data for res in us_results]
    us_data = spatial_avg.imputation(us_data)

    # make empty whole_data for STT by copying speed whole_data and reseting data
    stt_results = [res.clone() for res in us_results]
    for ridx, res in enumerate(stt_results):
        stt_results[ridx].data = [0] * len(prd.get_timeline())
        stt_results[ridx].prd = prd

    # calculate STT
    cm_data = _calculate_stt(us_data, prd.interval, **kwargs)
    for ridx, res in enumerate(stt_results):
        res.data = cm_data[ridx]

    return stt_results
예제 #2
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :return:
    """
    # load_data speed data
    moe_congestion_threshold_speed = kwargs.pop("moe_congestion_threshold_speed",
                                                get_system_config_info().moe_congestion_threshold_speed)
    us = moe_helper.get_speed(route.get_stations(), prd, **kwargs)
    us_results = moe_helper.add_virtual_rnodes(us, route)

    us_data = [res.data for res in us_results]
    us_data = spatial_avg.imputation(us_data)

    # make empty whole_data for congested miles by copying speed whole_data and reseting data
    cmh_results = [res.clone() for res in us_results]
    for ridx, res in enumerate(cmh_results):
        cmh_results[ridx].data = [0] * len(prd.get_timeline())
        cmh_results[ridx].prd = prd

    # calculate CMH
    cm_data = _calculate_cmh(us_data, prd.interval, moe_congestion_threshold_speed, **kwargs)
    for ridx, res in enumerate(cmh_results):
        res.data = cm_data[ridx]

    return cmh_results
예제 #3
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :return:
    """
    return moe_helper.get_speed(route.get_stations(), prd, **kwargs)
예제 #4
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :rtype: list[RNodeData]
    """
    # load_data speed data
    return moe_helper.get_speed(route.get_stations(), prd, **kwargs)
예제 #5
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :return:
    """
    rnode_list = route.get_stations()

    # load_data total flow data
    us = moe_helper.get_speed(rnode_list, prd, **kwargs)
    us_results = moe_helper.add_virtual_rnodes(us, route)
    us_data = [res.data for res in us_results]
    us_data = spatial_avg.imputation(us_data)

    return us, us_results, us_data
예제 #6
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :return:
    """
    rnode_list = route.get_stations()

    # load_data speed data (load_data more data than given period)
    us_results = moe_helper.get_speed(rnode_list, prd, **kwargs)

    # make empty whole_data for acceleration by copying speed whole_data and reseting data
    accel_results = [res.clone() for res in us_results]

    # calculate travel time by increasing time index
    for ridx, rnode_data in enumerate(
            _calculate_accel(us_results, prd.interval, **kwargs)):
        accel_results[ridx].data = rnode_data

    return accel_results
예제 #7
0
def run(route, prd, **kwargs):
    """

    :type route: pyticas.ttypes.Route
    :type prd: pyticas.ttypes.Period
    :return:
    """
    ext_hour = kwargs.get('ext_hour', DEFAULT_END_HOUR_EXTENSION)
    now = datetime.datetime.now()
    ext_prd = prd.clone().extend_end_hour(ext_hour)

    if ext_prd.end_date > datetime.datetime.now():
        ext_prd.end_date = now

    n_origin_data = len(prd.get_timeline())

    # load_data speed data (load_data more data than given period)
    us = moe_helper.get_speed(route.get_stations(), ext_prd, **kwargs)
    us_results = moe_helper.add_virtual_rnodes(us, route)

    us_data = [res.data for res in us_results]
    us_data = spatial_avg.imputation(us_data)

    # make empty whole_data for travel time by copying speed whole_data and reseting data
    tt_results = [res.clone() for res in us_results]
    for idx, res in enumerate(tt_results):
        tt_results[idx].traffic_type = TrafficType.travel_time

    for ridx, res in enumerate(tt_results):
        tt_results[ridx].data = [-1] * n_origin_data
        tt_results[ridx].prd = prd

    # calculate travel time by increasing time index
    for tidx in range(n_origin_data):
        partial_data = [pd[tidx:] for pd in us_data]
        tts = _calculate_tt(partial_data, prd.interval, **kwargs)
        for ridx, tt_data in enumerate(tt_results):
            tt_results[ridx].data[tidx] = tts[ridx]

    return tt_results