Вопрос: Есть ли способ уменьшить / упростить файлы GTFS до тех, которые охватывают меньшую область (зная, что я выбрал остановки, покрывающие указанную область)?
Больше подробностей и что я попробовал: Я работаю с файлами GTFS, которые охватывают весь регион Франции, однако мне нужно работать только на меньшей площади, и я хотел бы уменьшить / упростить файлы, которые у меня сейчас, так какс оригинальными файлами GTFS, с которыми мне тяжело работать.
Я сопоставил остановки в QGIS и извлек те, что покрывают меньшую область, и сохранил их в новый файл stop.txt stops_reduced.txt
. Затем я продолжил выбирать, используя .loc
все соответствующие календарь, calendar_date, stop_extentions, stop_time, маршруты, поездки и передачи.
Вот пример того, что я сделал для stops_times.txt
и trips.txt
:
stop_list = stops_reduced.stop_id.to_list()
stop_time_reduced = stop_time.loc[stop_time['stop_id'].isin(stop_list)]
trip_list = stop_time_reduced.trip_id.to_list()
trips_reduced = trips.loc[trips['trip_id'].isin(trip_list)]
Я думал, что все хорошо, и я использовал эти уменьшенные файлы с peartree для создания графика, но возникла ошибка.
Поскольку я совсем не знаком с peartree
, и я полагаю, что мой подход к сокращению файлов GTFS неправильный, я ищу другой способ сделать это.
G = pt.load_feed_as_graph(feed, start, end)
---------------------------------------------------------------------------
InsufficientSummaryResults Traceback (most recent call last)
<ipython-input-89-74a13fcca0d5> in <module>
3 # Converts feed subset into a directed network mugenerate_plotph
4
----> 5 G = pt.load_feed_as_graph(feed, start, end)
6
7 end_time = time.time()
~/anaconda3/envs/iox/lib/python3.6/site-packages/peartree/paths.py in load_feed_as_graph(feed, start_time, end_time, name, existing_graph, connection_threshold, walk_speed_kmph, stop_cost_method, fallback_stop_cost, interpolate_times, impute_walk_transfers, use_multiprocessing)
218 interpolate_times,
219 stop_cost_method,
--> 220 use_multiprocessing)
221
222 # This is a flag used to check if we need to run any additional steps
~/anaconda3/envs/iox/lib/python3.6/site-packages/peartree/graph.py in generate_summary_graph_elements(feed, target_time_start, target_time_end, fallback_stop_cost, interpolate_times, stop_cost_method, use_multiprocessing)
119
120 # Same sanity checks on the output before we continue
--> 121 _verify_outputs(all_edge_costs, all_wait_times)
122
123 summary_edge_costs = generate_summary_edge_costs(all_edge_costs)
~/anaconda3/envs/iox/lib/python3.6/site-packages/peartree/graph.py in _verify_outputs(all_edge_costs, all_wait_times)
208 # Handle if there are no valid edges returned (or wait times)
209 if all_edge_costs is None or len(all_edge_costs) == 0:
--> 210 raise InsufficientSummaryResults('The target time frame returned no '
211 'valid edge costs from feed object.')
212 if all_wait_times is None or len(all_wait_times) == 0:
InsufficientSummaryResults: The target time frame returned no valid edge costs from feed object.