mfdz / GTFS-Issues

Documentation and Tracking of Issues in GTFS- and GTFS-RT Feeds
36 stars 3 forks source link

DELFI: Mehrere Stops mit unterschiedlicher IFOPT-ID an gleicher Koordinate #40

Open hbruch opened 4 years ago

hbruch commented 4 years ago

Mehrere stop_areas mit unterschiedlichen IFOPT-IDs sind mit der gleichen Koordinate angegeben, z.B.:

image

Wir nehmen an, dass einer der folgenden Fehler vorliegt:

Aktualisierungszeitpunkt der GTFS-Daten:

  1. April 2020

Downloadlink der GTFS-Daten: https://cms.opendata-oepnv.de/fileadmin/datasets/delfi/20200403_fahrplaene_gesamtdeutschland_gtfs.zip

hbruch commented 4 years ago

Auch für die Version vom 30.4.2020 unterscheiden sich noch für 2454 Haltestellen die IFOPT-IDs bei gleicher Koordinate:

SELECT a.stop_id, b.stop_id, a.stop_name, b.stop_name, a.stop_lat , a.stop_lon
 FROM gtfs.stops a, gtfs.stops b
WHERE a.stop_lat = b.stop_lat
  AND a.stop_lon = b.stop_lon
  AND a.location_type=0
  AND b.location_type=0
  AND SUBSTRING(a.stop_id from '\w*:\d*:\d*:') != SUBSTRING(b.stop_id from '\w*:\d*:\d*:')
  ORDER BY a.stop_id, b.stop_id;
         stop_id          |         stop_id          |                      stop_name                       |                      stop_name                       | stop_lat  | stop_lon
--------------------------+--------------------------+------------------------------------------------------+------------------------------------------------------+-----------+-----------
 D_de:03401:10164::1      | de:03401:10164::2        | Delmanhorst Letterhausstraße                         | Delmanhorst Letterhausstraße                         | 53.023263 |  8.616762
 D_de:03401:10301::1      | de:03401:10301::2        | Delmenhorst Blumenthaler Straße                      | Delmenhorst Blumenthaler Straße                      | 53.059174 |  8.682355
 D_de:03401:10304::1      | de:03401:10304::2        | Delmenhorst Schilfweg                                | Delmenhorst Schilfweg                                | 53.055777 |  8.662439
 D_de:03401:10305::1      | de:03401:10305::2        | Delmenhorst-Wacholderweg                             | Delmenhorst-Wacholderweg                             | 53.055395 |  8.651555
 D_de:04011:01282::1      | de:04011:01282::2        | Bremen Fontanestraße                                 | Bremen Fontanestraße                                 | 53.050382 |  8.843384
 de:03152:33911::1        | de:03159:33911::2        | Göttingen Gesundbrunnen(Ersatzhalt)                  | Göttingen Gesundbrunnen(Ersatzhalt)                  | 51.551151 |  9.869986
 de:03152:33998::1        | de:03152:33999::1        | Göttingen Maria-Montessori-Weg                       | Göttingen Maria-Montessori-Weg                       | 51.542461 |  9.944114
...
hbruch commented 4 years ago

Dies gilt weiterhin für den Datensatz vom 08.05.2020:

SELECT COUNT(*) FROM 
(SELECT a.stop_id, b.stop_id, a.stop_name, b.stop_name, a.stop_lat , a.stop_lon
  FROM gtfs.stops a, gtfs.stops b
 WHERE a.stop_lat = b.stop_lat
   AND a.stop_lon = b.stop_lon
   AND a.location_type=0
   AND b.location_type=0
   AND SUBSTRING(a.stop_id from '\w*:\d*:\d*:') != SUBSTRING(b.stop_id from '\w*:\d*:\d*:')
   ORDER BY a.stop_id, b.stop_id) a;
 count
-------
  2236
(1 row)
hbruch commented 4 years ago

Dies gilt weiterhin für den Datensatz vom 15.05.2020:

SELECT COUNT(*) FROM 
(SELECT a.stop_id, b.stop_id, a.stop_name, b.stop_name, a.stop_lat , a.stop_lon
  FROM gtfs.stops a, gtfs.stops b
 WHERE a.stop_lat = b.stop_lat
   AND a.stop_lon = b.stop_lon
   AND a.location_type=0
   AND b.location_type=0
   AND SUBSTRING(a.stop_id from '\w*:\d*:\d*:') != SUBSTRING(b.stop_id from '\w*:\d*:\d*:')
   ORDER BY a.stop_id, b.stop_id) a;
 count
-------
  330
(1 row)
derhuerst commented 2 years ago

Mit dem DELFI-Datensatz vom 21.03.2022 und gtfs-via-postgres:

SELECT COUNT(*) FROM (
    SELECT
        a.stop_id, b.stop_id,
        a.stop_name, b.stop_name,
        st_y(a.stop_loc::geometry) as stop_lat,
        st_x(a.stop_loc::geometry) as stop_lon
    FROM stops a, stops b
    WHERE a.stop_loc = b.stop_loc
    AND a.location_type = 'stop' -- 0
    AND b.location_type = 'stop' -- 0
    AND SUBSTRING(a.stop_id FROM '\w*:\d*:\d*:') != SUBSTRING(b.stop_id FROM '\w*:\d*:\d*:')
) t
-- count
-- 16806