{"id":13856866,"url":"https://github.com/CxAalto/gtfspy","last_synced_at":"2025-07-13T19:33:07.617Z","repository":{"id":55799532,"uuid":"81327445","full_name":"CxAalto/gtfspy","owner":"CxAalto","description":"Public transport network analysis using Python 🚊🚇🚃🚌🛳️🚡🚠🚞  ","archived":false,"fork":false,"pushed_at":"2023-05-23T20:18:54.000Z","size":18240,"stargazers_count":157,"open_issues_count":21,"forks_count":30,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-10-31T19:39:53.057Z","etag":null,"topics":["gtfs","python","routing","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CxAalto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-02-08T12:24:35.000Z","updated_at":"2024-10-08T13:27:05.000Z","dependencies_parsed_at":"2022-08-15T07:10:19.768Z","dependency_job_id":"2978fad4-1582-4adc-b875-cc6c88e36300","html_url":"https://github.com/CxAalto/gtfspy","commit_stats":{"total_commits":449,"total_committers":17,"mean_commits":26.41176470588235,"dds":"0.40089086859688194","last_synced_commit":"24a60db1153efdc41ed9bb102aba039af1badf4b"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CxAalto%2Fgtfspy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CxAalto%2Fgtfspy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CxAalto%2Fgtfspy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CxAalto%2Fgtfspy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CxAalto","download_url":"https://codeload.github.com/CxAalto/gtfspy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225912350,"owners_count":17544153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gtfs","python","routing","sqlite"],"created_at":"2024-08-05T03:01:16.592Z","updated_at":"2024-11-22T14:31:08.718Z","avatar_url":"https://github.com/CxAalto.png","language":"Python","funding_links":[],"categories":["Producing Data","Python","Uncategorized"],"sub_categories":["GTFS","Uncategorized"],"readme":"# gtfspy  \n\n[![Gtfspy-master Travis CI build passing](https://api.travis-ci.org/CxAalto/gtfspy.svg?branch=master)](https://travis-ci.org/CxAalto/gtfspy)\n[![PyPI badge](https://badge.fury.io/py/gtfspy.svg)](https://pypi.python.org/pypi/gtfspy/)\n\n\n``gtfspy`` is a Python package for analyzing public transport timetable data provided in the [General Transit Feed Specification](https://developers.google.com/transit/gtfs/), GTFS, -format.\n\n## Core features:\n* Import one or multiple GTFS feeds into one [SQLite](https://www.sqlite.org/) database for efficient querying of the data.\n* Augment the sqlite with real walking distances between PT stops using Open Street Map (OSM) data.\n* Compute simple statistics for the public transport networks such as number of stops, routes, network length.\n* Filter databases spatially and temporally to match your area and time region of interest.\n* Perform accessibility analyses using a routing/profiling engine\n    - Adapted from the [Connection Scan Algorithm](http://i11www.iti.uni-karlsruhe.de/extra/publications/dpsw-isftr-13.pdf) (CSA).\n    - Compute all Pareto-optimal journey alternatives between an origin-destination pair, and summarize connectivity with measures on travel time and number of transfers.\n* Produce data extracts in various formats (network edge lists, geojson). \n\n\n## Prerequisites\n* [Python 3.8](https://www.python.org/)\n* Supported platforms: Linux, OSX \u0026 Windows\n* Optional: [git](https://git-scm.com/) is used for development.\n\n\n## Install\n### Linux and Mac OS\n```\npip install gtfspy\n```\n\n### Windows\nWindows should work, but has not been tested or and may not be\nsupported as much.  Please report problems.\n\nWindows users may need to install Shapely library first. [Download Shapely wheel](https://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely) and then run:\n```\npip install wheel\npip install {path to the Shapely wheel file on your PC}\n```\n\nIf you come across the `Microsoft Visual C++ 14.0 is required` error, you may need to download the latest Microsoft Visual C++ Build Tools.\nYou can download it [from here](https://visualstudio.microsoft.com/cs/downloads/).\n\nAfter that, continue with:\n```\npip install gtfspy\n```\n\n\n\n## Development quickstart\n\nUse this if you want to be able to edit ``gtfspy``'s source code.\n\n```\ngit clone git@github.com:CxAalto/gtfspy.git\ncd gtfspy/\npip install -r requirements.txt # install any requirements\nnosetests . # run tests\n```\n\nRemember to also add the ``gtfspy`` directory to your ``PYTHONPATH`` environment variable.\n\n## Examples\n- [Importing a GTFS feed into a sqlite database](examples/example_import.py)\n- [TODO: Validate an imported feed](examples/example_validation.py)\n- [Compute and plot temporal distance profiles between an origin--destination pair](examples/example_temporal_distance_profile.py)\n- [Visualizing the public transport network on map](examples/example_map_visualization.py)\n- [Filter GTFS feed spatially and temporally](examples/example_filter.py)\n- [Extract a network / a temporal network from the GTFS database](examples/example_export.py)\n- [TODO! Run a simple accessibility analysis pipeline!](examples/example_accessibility_analysis.py)\n\n\n## Contributing\n\nWe welcome contributions as GitHub pull requests.\nIn your pull request, please also add yourself as a contributor in the list below.\n\n## Versioning\n\nThis library is not yet stabilised, and new features are being developed. \nThus code organization and interfaces may change at a fast pace. \nMore precise versioning scheme will be decided upon later.\n\n## Changelog\n\nView the [changelog](CHANGELOG.md).\n\n## Authors\n\n### Package maintainers\n* Rainer Kujala\n* Richard Darst\n* Christoffer Weckström\n\n### Other contributors\n\n* Manuel Rios ([marz7002](https://github.com/marz7002))\n* Nils Haglund\n* Michaela Ockova ([evelyn9191](https://github.com/evelyn9191))\n\n* You?\n\n## Licensing\n\n### Code\nThis source code of this project licensed under the MIT License - see the [LICENSE.txt](LICENSE.txt) file for details.\n\n### Example data\n\nThe OpenStreetMap data (.osm.pbf file(s) under examples/data) is licenced under the [Open Data Commons Open Database License](https://opendatacommons.org/licenses/odbl/) (ODbL) by the [OpenStreetMap Foundation](http://osmfoundation.org/) (OSMF).\n\nThe GTFS data used for the examples is provided by the City of Kuopio (Finland), and have been downloaded from [http://bussit.kuopio.fi/gtfs/gtfs.zip](http://bussit.kuopio.fi/gtfs/gtfs.zip) [data licensed [under CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/deed)].\n\n\n## Usage for scientific purposes\n\nIf you use this Python package for scientific purposes, please cite our paper\n\nRainer Kujala, Christoffer Weckström, Miloš N. Mladenović, Jari Saramäki, Travel times and transfers in public transport: Comprehensive accessibility analysis based on Pareto-optimal journeys, In Computers, Environment and Urban Systems, Volume 67, 2018, Pages 41-54, ISSN 0198-9715, [https://doi.org/10.1016/j.compenvurbsys.2017.08.012](https://doi.org/10.1016/j.compenvurbsys.2017.08.012).\n\n\n## Acknowledgments\n\n* The development of this Python package has benefited from the support by Academy of Finland through the DeCoNet project.\n* For running the Java routing, we use the [Graphhopper routing library](https://github.com/graphhopper/graphhopper).\n\n\n## Bugs\n\nIf you have any problems using ``gtfspy`` please create an issue in GitHub.  \n\n## Other questions on \n\nIf you have any questions regarding ``gtfspy``, feel free to send the package maintainers (see above) an e-mail!\n\n## See also\n\n[Code for a research project using ``gtfspy``](https://github.com/rmkujala/ptn_temporal_distances)\n\n[Web-visualization tool utilizing gtfspy (gtfspy-webviz)](https://github.com/CxAalto/gtfspy-webviz)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCxAalto%2Fgtfspy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FCxAalto%2Fgtfspy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FCxAalto%2Fgtfspy/lists"}