-1

我在 python 中使用 OpenTripPlanner 来计算从一组约 70 个起点到一组约 600 个目标点的旅行时间。当我计算每组点的旅行时间时,我得到一组时间,但过程非常缓慢(大约 5 小时)。当我使用表面来查找时间时,它要快得多(3 分钟),但时间似乎不太准确(此处的文档:)。尽管起点不同,但许多目的地显示相同的时间。我正在使用来自所有湾区机构的 GTFS 数据图表。我的两个功能在这里:

# function to return the itineraries point to point
def return_itineraries(param):

    ox = param[0]
    oy = param[1]
    dx = param[2]
    dy = param[3]
    date_us = param[4]
    hr = param[5]
    minute = param[6]

    # parameters
    options = {
        'fromPlace': str(oy) + ", " + str(ox),
        'toPlace': str(dy) + ", " + str(dx),
        'time': str(hr)+':' + str(minute),
        'date': date_us,
        'mode': 'TRANSIT,WALK',
        'maxWalkDistance':5000,
        'clampInitialWait':0,
        'wheelchair':False,
        #'batch': True,
        'numItineraries': 1
    }
   
    # send to server and get data
    response = requests.get(
        "http://localhost:8080/otp/routers/default/plan",
        params = options
           )
    # return as json
    data = json.loads(response.text)
    return data

# one-to-many function
def return_itineraries_otm(param):

    ox = param[0]
    oy = param[1]
    date_us = param[2]
    hr = param[3]
    minute = param[4]
    
    # parameters
    surface_options = {
        'fromPlace': str(oy) + ", " + str(ox),
        'time': str(hr)+':' + str(minute),
        'date': date_us,
        'mode': 'TRANSIT,WALK',
        'maxWalkDistance':5000,
        'clampInitialWait':0,
        'wheelchair':False,
        'batch': True,
    }
    
    #create surface
    surf_resp = requests.post(
        "http://localhost:8080/otp/surfaces",
        params = surface_options)
   
    surf_data = json.loads(surf_resp.text)

   # parameters
    options = {
        'targets': 'destinations',
        'detail':'true'
    }

    # send to server and get data
    response = requests.get(
        "http://localhost:8080/otp/surfaces/" + str(surf_data['id']) + "/indicator",
        params = options)
           
    # return as json
    data = json.loads(response.text)
    return data

有没有办法提高一对多函数的精度,让结果更接近点对点的计算?

谢谢!

4

0 回答 0