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ájl | Tartalom | Méret (kb.) |
|---|---|---|
agency.txt | A 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.txt | Minden 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.txt | A 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.txt | Konkré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.txt | A 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.txt | A 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.txt | Menetrend-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.txt | Kivé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