# GTFSwizard Cheat Sheet

Compact workflow reference for GTFSwizard 1.2.0.

## 1. Load Or Create A Feed

    library(GTFSwizard)

    gtfs <- read_gtfs("path/to/feed.zip")
    gtfs <- as_wizardgtfs(gtfs_list)

    gtfs <- create_gtfs(
      agency = agency_df,
      routes = routes_df,
      trips = trips_df,
      stop_times = stop_times_df,
      stops = stops_df,
      calendar = calendar_df
    )

All three functions return a `wizardgtfs` object.

## 2. Inspect The Feed

    summary(gtfs)
    plot(gtfs)

    get_servicepattern(gtfs)
    get_shapes_sf(gtfs)
    get_stops_sf(gtfs)

Use `summary()` for table counts, service range, and spacing diagnostics. Use `plot()` for a quick network map.

## 3. Select Parts Of The Feed

    gtfs |> selection(route_id = c("004", "011"))
    gtfs |> selection(service_pattern = "servicepattern-1")
    gtfs |> selection(stop_id = c("1000", "1001"))

    filter_route(gtfs, "004")
    filter_service(gtfs, "U")
    filter_servicepattern(gtfs, "servicepattern-1")
    filter_stop(gtfs, "1000")
    filter_date(gtfs, as.Date("2020-01-15"))
    filter_time(gtfs, from = "06:00:00", to = "09:00:00")

`selection()` is useful when combining filters. The `filter_*()` functions are explicit one-step tools.

## 4. Analyze Operations

    get_frequency(gtfs)
    get_headways(gtfs, method = "by.hour")
    get_dwelltimes(gtfs, method = "by.route")
    get_speeds(gtfs, method = "by.route")
    get_durations(gtfs, method = "by.route")
    get_distances(gtfs)
    get_fleet(gtfs)
    get_1stdeparture(gtfs)

Check each help page for its observational unit. Common methods include `by.trip`, `by.route`, `by.hour`, and `detailed`.

## 5. Plot Planning Indicators

    plot_frequency(gtfs)
    plot_routefrequency(gtfs)
    plot_headways(gtfs)
    plot_servicespan(gtfs)
    plot_serviceheatmap(gtfs)
    plot_servicesupply(gtfs)
    plot_routeduration(gtfs)
    plot_calendar(gtfs)

These functions return `ggplot2` objects and can be customized with regular `ggplot2` layers.

## 6. Find Corridors And Hubs

    get_corridor(gtfs, i = 0.01, min.length = 1500)
    plot_corridor(gtfs, i = 0.01, min.length = 1500)

    get_hubs(gtfs, i = 0.05)
    plot_hubs(gtfs, i = 0.05)

Increase `i` to show fewer, stronger corridors or hubs. Decrease it to show more candidates.

## 7. Edit A Feed

    edit_speed(gtfs, route_id = "004", speed = 25)
    edit_dwelltime(gtfs, route_id = "004", dwelltime = 30)
    delay_trip(gtfs, trip_id = "T1", delay = 300)
    split_trip(gtfs, trip_id = "T1", stop_id = "S2")
    merge_gtfs(gtfs_a, gtfs_b)

Editing functions keep the GTFS structure consistent while preserving partial trips when they are useful for experimentation.

## 8. Explore Interactively

    explore_gtfs(gtfs)
    explore_gtfs()

Call `explore_gtfs()` without an argument to choose a GTFS `.zip` file from a browse window.

## 9. Save Results

    write_gtfs(gtfs, "edited-feed.zip")

Use `write_gtfs()` after validating edits and plots.