PanelLakó szerkesztőségFrissítve: 2026. május 23.

GTFS adatok Budapest — a BKK Futár open data

A Budapesti Közlekedési Központ (BKK) a teljes menetrendi adatbázisát nyílt formátumban, ingyenesen elérhetővé teszi fejlesztők és kutatók számára. Ez az útmutató elmagyarázza, hogy pontosan mit tartalmaz a GTFS-csomag, hogyan frissül, és milyen elemzési lehetőségeket kínál — különös tekintettel a megállóelérhetőségi vizsgálatokra.

Mi az a GTFS formátum?

A General Transit Feed Specification (GTFS) egy nyílt adatcsere-szabvány, amelyet originally 2005-ben a Google és a TriMet (Portland, Oregon) közösen fejlesztett ki, és amelyet azóta a világ több mint 10 000 tömegközlekedési szolgáltatója adoptált. A formátum lényege, hogy a menetrendi adatokat egymással összefüggő, CSV-alapú szöveges fájlokban tárolja, amelyek egyetlen .zip-archívumba csomagolva tölthetők le.

A GTFS-t ma az IETF-hez hasonló szervezeti formában a MobilityData nonprofit gondozza és tartja karban: az adatspecifikáció nyilvánosan elérhető, javaslatok bárki által benyújthatók. A formátum két fő ága a GTFS Static (tervezett menetrendek és megállók) és a GTFS-RT (Realtime: valós idejű járatpozíciók, késések, vészleállások). A PanelLakó elemzőmotor jelenleg a statikus adatvariánst használja az elérhetőségi számításokhoz.

A GTFS előnye más exportformátumokhoz képest (pl. NeTEx, TransXChange) az egyszerűsége és az eszköktámogatás szélessége: a legtöbb GIS-program, utazástervező könyvtár és adatplatform natívan kezeli, ami jelentősen csökkenti a feldolgozáshoz szükséges fejlesztési erőforrásokat.

A BKK Futár GTFS adatok tartalma

A BKK által közzétett GTFS-csomag a teljes budapesti és agglomerációs menetrendet tartalmazza, beleértve a metró-, villamos-, HÉV-, busz-, trolibusz- és hajójáratokat. Az alábbi táblázat összefoglalja a csomag legfontosabb fájljait, azok tartalmát és nagyságrendjét.

FájlTartalomMéret (kb.)
agency.txtA közlekedési szolgáltató(k) neve, URL-je és időzónája. Budapest esetén egyetlen sor: BKK Zrt.1 sor7 oszlop
stops.txtMinden megálló és állomás neve, GPS-koordinátái (WGS84), azonosítója, szülő-állomás referenciája és kerekesszék-hozzáférhetősége.~5 800 sor10 oszlop
routes.txtA vonalak neve, rövid neve, típusa (0=villamos, 1=metró, 2=vasút, 3=busz, 4=hajó, 11=trolibusz) és szín-kódja a térképi megjelenítéshez.~260 sor9 oszlop
trips.txtKonkrét menetrendszakaszok, amelyek egy vonal–menetrend–irány kombinációját képviselik. Minden triphez tartozik egy shape_id a GPS-nyomvonalhoz.~90 000+ sor8 oszlop
stop_times.txtA legterjedelmesebb fájl: minden trip összes megállójának érkezési és indulási ideje, a megálló sorrendje és a pickup/drop-off típus.~2,5 millió sor9 oszlop
shapes.txtA vonalak GPS-nyomvonala pontsorozatként, az egyes pontok sorrendjével és az egymástól mért távolsággal. Térképi megjelenítéshez és területi elemzésekhez szükséges.~500 000+ sor5 oszlop
calendar.txtMenetrend-naptárak: melyik service_id hétfőtől–vasárnapig érvényes és milyen dátumtartományban. Az iskolai és nyári menetrendek váltásának alapja.~30–50 sor10 oszlop
calendar_dates.txtKivételnapok: ünnepek, különleges eseménynapok, amelyek felülírják a calendar.txt alapértelmezett menetrendjét.~200–400 sor3 oszlop

A fenti sorszámok hozzávetőlegesek és menetrend-váltásonként változhatnak. A stop_times.txt messze a legnagyobb fájl — nyers állapotban tipikusan 150–300 MB, ezért hatékony feldolgozáshoz streaming-olvasás vagy adatbázis-import ajánlott.

Hogyan frissülnek az adatok?

A BKK kétféle menetrend-váltást alkalmaz: a nagy menetrend-váltás jellemzően júniusban és decemberben zajlik, amikor a vonalak, megállók és menetrendek lényegesen megváltozhatnak. A kis menetrend-módosítások ettől függetlenül is előfordulnak — pl. útlezárás miatti ideiglenes átterelés, ünnepnapi menetrend-kiegészítés vagy új megálló aktiválása esetén.

A statikus GTFS-csomag a developer.bkk.hu portálon rendszeres időközönként, jellemzően hetente frissül, de lényeges módosítás esetén soron kívüli frissítés is előfordulhat. A csomag verziókövetése a feed_info.txt fájlban rögzített feed_version dátummező alapján végezhető.

GTFS-RT: valós idejű kiegészítés

A BKK Futár API valós idejű járatpozíciókat (VehiclePositions), tervezett menetrend-eltéréseket (TripUpdates) és szolgáltatási figyelmeztetéseket (ServiceAlerts) közöl GTFS-RT formátumban, Protocol Buffers bináris kódolással. Ezek az adatfolyamok API-kulccsal érhetők el a developer.bkk.hu portálon, és a statikus GTFS-sel kombinálva valós idejű késés-előrejelzések és élő térképek építhetők belőlük.

Mit lehet elemezni GTFS-ből?

A GTFS statikus adatcsomag rendkívül gazdag elemzési lehetőségeket nyújt. Az alábbiakban összefoglaljuk a leggyakoribb felhasználási területeket:

Megállóelérhetőség és lefedettség

Bármely ponthoz kiszámítható, hogy 400–800 méteres körzetben hány és milyen típusú megálló érhető el. Ez az alapja a PanelLakó épületszintű közlekedési pontszámának.

Frekvencia és kapacitásbecslés

A stop_times.txt alapján kiszámítható, hogy egy adott megállón naponta hány járat halad át, és ebből becsülhető az átlagos várakozási idő csúcs- és völgyidőszakban egyaránt.

Utazási idők és átszállások

A trips.txt és stop_times.txt kombinálásával felépíthető egy tranzit-gráf, amelyen Dijkstra vagy raptor algoritmussal kiszámítható az optimális útvonal és menetidő bármely A→B relációra.

Isokrón-térképek

Egy adott pontból meghatározott idő (pl. 30 perc) alatt elérhető területek lefedő poligonjai tömegközlekedéssel, amelyek megmutatják az elérhetőségi egyenlőtlenségeket a városon belül.

Hogyan tölthetők le a BKK GTFS adatok?

A BKK GTFS adatcsomag a developer.bkk.hu fejlesztői portálon érhető el, ahol a letöltési linkek és az API-dokumentáció is megtalálható. A regisztráció ingyenes; egyes valós idejű GTFS-RT végpontok API-kulcsot igényelnek, amelyek a portálon igényelhetők.

Licenc és felhasználási feltételek

  • Licenc: Creative Commons Attribution 4.0 International (CC BY 4.0)
  • Ingyenes felhasználás: kereskedelmi és nem kereskedelmi projektek egyaránt
  • Kötelező jelölés: "Az adatok forrása: BKK Futár / BKK Zrt." szöveg megjelenítése
  • Frissítési ciklus: jellemzően heti, nagy menetrend-váltásnál (jún./dec.) új főverzió

Figyeljen rá, hogy a GTFS-csomag letöltési URL-je menetrend-váltáskor megváltozhat. Automatizált letöltéshez érdemes a developer.bkk.hu feed info végpontját lekérdezni a mindenkori aktuális URL-ért.

Milyen eszközökkel dolgozhatók fel?

A GTFS-fájlok feldolgozásához számos ingyenes, nyílt forráskódú eszköz áll rendelkezésre. Az alábbiak a leggyakrabban alkalmazott megoldások:

Python: gtfs-kit

Pandas-alapú Python könyvtár GTFS-fájlok betöltéséhez, validálásához és elemzéséhez. Gyors megállósűrűség és menetrend-összefoglaló lekérdezések elvégzésére kiváló.

Python: partridge

Memóriahatékony GTFS-olvasó, amely csak a szükséges fájlokat tölt be. Nagy adatcsomagoknál (pl. a budapesti stop_times.txt 2,5+ millió sorral) különösen hasznos.

QGIS GTFS importáló

A QGIS GTFS-betöltő bővítménye megnyitja a stops.txt és shapes.txt fájlokat vektorrétegként, lehetővé téve a térbeli vizualizációt és GIS-elemzést.

PostGIS / PostgreSQL

A GTFS-adatok PostgreSQL-adatbázisba töltve hatékonyan lekérdezhetők térbeli ST_DWithin() és ST_Buffer() függvényekkel — ez a PanelLakó elemzőmotor alapja is.

Tipp a stop_times.txt kezeléséhez: Budapest GTFS-csomagjában a stop_times.txt tipikusan 150–300 MB, ami memóriában egyszerre nem feltétlenül dolgozható fel. Python esetén a pandas.read_csv(..., chunksize=50000) iteratív beolvasást, PostgreSQL esetén a COPY parancsot ajánljuk.

A PanelLakó elemzőmotor

A PanelLakó backend automatikusan letölti és feldolgozza a BKK GTFS-csomag frissítéseit. Az adatokat PostgreSQL/PostGIS adatbázisban tároljuk, ahol a megállók geometriájára GIST-index épül. Egy épület közlekedési elérhetőségének lekérdezése ezáltal milliszekundumos válaszidőn belül elvégezhető a ST_DWithin() térbeli függvénnyel.

A lekérdezés eredménye nemcsak a megállók számát, hanem típusonkénti bontásukat (metró, villamos, HÉV, busz, trolibusz) és a GTFS trip_count alapján becsült napi frekvenciájukat is visszaadja. Ezekből az adatokból épülnek fel a PanelLakó közlekedési kártyák és a 15 perces város pontszám.

Interaktív térkép megnyitása