Reconstructing a GTFS-Flex Feed from Public Documents: Demand Responsive Transport in Fuso Town, Aichi, Japan
Abstract
Fuso Town (Aichi Prefecture, Japan) operates a demand-responsive transport service, Choisoko Fuso, for which no GTFS feed is published. This record contains a GTFS-Flex feed for that service, reconstructed entirely from publicly available materials — the town's web pages and its stop-location map — together with the R scripts that produced it and a Shiny application that searches trips between two stops. The feed covers the 93 public-facility and business boarding points. The scripts process all 150 boarding points published by the town, including those in residential areas; the residential points are georeferenced but not written to the feed. It passes the Canonical GTFS Schedule Validator 8.0.1 with no errors and is recognized as fixed-stops demand-responsive transit. The validator output is deposited unmodified, in both JSON and HTML form, so that the result can be inspected without re-running the validator. Stop coordinates are recovered from the label positions on the stop-location map PDF, which are vector text and therefore carry a page position for each stop number. Because the map spreads clustered labels apart, each map-derived position is compared with a geocoded position for the same stop, and the geocoded one is preferred where the two agree within 150 m. Four boarding points were placed by hand. The hand-read coordinates take precedence over both and are deposited, since they cannot be regenerated by running the scripts. The file structure follows the one operator-supplied GTFS-Flex feed that remained publicly retrievable on the Public Transportation Open Data Center at the time of writing, for Mizuho Town, Tokyo, which was used as a reference rather than copied: some of its conventions do not validate, and were not carried over. This feed was created independently by the author from published information. It is offered as a demonstration that a demand-responsive service can be represented in GTFS-Flex from public sources alone, and as a template for carrying out the same procedure for other municipalities. Fares and the membership requirement are outside its scope. Feeds of this kind are ordinarily published by operators, and reconstructions by a third party from public materials appear to be uncommon. Inquiries about this feed should be directed to the author of this repository. Inquiries about the service itself should be directed to the town. Running the application. The application reads the feed and returns an estimated departure and arrival window for a chosen pair of stops, together with the road route. gtfsflex_app.zip contains the application with the files it reads and is the easier starting point: unzip("gtfsflex_app.zip", exdir = "gtfsflex_app") shiny::runApp("gtfsflex_app") app.R is also deposited on its own. The application requires the shiny, leaflet, dplyr, readr, httr, and jsonlite packages, and an internet connection for the OSRM routing endpoint set at the top of the script. Its interface is in Japanese. Generative AI declaration. The feed, the scripts, the application and this description were drafted and edited with Claude (Anthropic). All coordinates, the feed itself and the validation results were produced by running the code. The author has checked them and takes responsibility for the content.