Как сгруппировать остановки в родительскую станцию в GTFS?
В GTFS (определяет графики общественного транспорта и географическую информацию), станция (parent_station
) содержит несколько остановок (stop_id
).
Я анализирую данные Парижской GTFS. Все parent_station
поля являются пустым значением.
mysql> SELECT DISTINCT parent_station FROM stops;
+----------------+
| parent_station |
+----------------+
| |
| 0 |
+----------------+
Как мне указать родительские станции для остановок (или групповые остановки в родительскую станцию)?
mysql> SELECT * FROM stops LIMIT 10;
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
| stop_id | stop_code | stop_name | stop_desc | stop_lat | stop_lon | location_type | parent_station |
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
| 1166824 | | "Olympiades" | "91 rue de Tolbiac - 75113" | 48.826948 | 2.367038 | 0 | |
| 1166825 | | "Olympiades" | "91 rue de Tolbiac - 75113" | 48.826948 | 2.367038 | 0 | |
| 1166826 | | "Bibliotheque-Francois Mitterrand" | "Face au 62 rue du Chevaleret - 75113" | 48.829831 | 2.376120 | 0 | |
| 1166827 | | "Bibliotheque-Francois Mitterrand" | "Face au 62 rue du Chevaleret - 75113" | 48.829831 | 2.376120 | 0 | |
| 1166828 | | "Cour Saint-Emilion" | "Cour Chamonard - 75112" | 48.833314 | 2.387300 | 0 | |
| 1166829 | | "Cour Saint-Emilion" | "Cour Chamonard - 75112" | 48.833314 | 2.387300 | 0 | |
| 1166830 | | "Bercy" | "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | |
| 1166831 | | "Bercy" | "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | |
| 1166832 | | "Gare de Lyon" | "Gare SNCF - 75112" | 48.844652 | 2.373108 | 0 | |
| 1166833 | | "Gare de Lyon" | "Gare SNCF - 75112" | 48.844652 | 2.373108 | 0 | |
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
Остановка 1166830
а также 1166831
должен принадлежать одной и той же родительской станции для одинаковой долготы и долготы.
Одна мысль приходит мне в голову. С заданным радиусом (скажем r
), две остановки принадлежат одной и той же станции, если их расстояние (скажем, d
) меньше чем r
т.е. d < r
,
Есть идеи получше?
1 ответ
Предполагая, что вы уверены, что записи остановок не являются дубликатами, но они являются остановками, расположенными внутри станции, я предлагаю следующее решение: найдите список различных остановок с одинаковым именем и местоположением, затем отредактируйте, чтобы указать первую остановку в списке как "станцию". и другие оставшиеся остановки в списке как остановки внутри станции.
Справочный документ поможет вам это сделать. В качестве примера я приведу следующие отредактированные (показанные с ^^^^) строки:
| 1166830 | | "Bercy"| "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 1 | |
^^^
| 1166831 | | "Bercy"| "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | 1166830 |
^^^^^^^