Map existing bus service

You'll begin by mapping the current bus stops in Chattanooga and the areas of the city that are within a 10-minute walk of these stops.

Create bus stop features from GTFS data

Many cities provide their public transit data as a free download, and the most common format for this data is the General Transit Feed Specification (GTFS). GTFS datasets include information about a transit system's stops, routes, and schedules. In ArcGIS Pro, you can convert GTFS data into features on your map.

  1. Go to the Chattanooga Transit Data item details page and click Download.
  2. Locate and unzip the downloaded .zip file.
    Note:

    Depending on your web browser, you may have been prompted to choose the file's location before you began the download. Most browsers download to your computer's Downloads folder by default.

    The file contains nine text files with information about bus stops, routes, and schedules. This data is from the Chattanooga Area Regional Transportation Authority and aggregated by the Transitland open data platform.

    Note:

    Transitland and OpenMobilityData are two resources for finding GTFS data feeds. You can download the most recent version of the Chattanooga transit data from its feed details page.

  3. Download the Assess Access to Public Transit project package.
  4. Locate the downloaded file on your computer.
  5. If you have ArcGIS Pro installed on your machine, double-click Assess Access to Public Transit.ppkx to open the project. If prompted, sign in using your licensed ArcGIS account.
    Note:

    If you don't have access to ArcGIS Pro or an ArcGIS organizational account, see options for software access.

    ArcGIS Pro opens to a map of Chattanooga, Tennessee, in the United States.

    Project opens to Chattanooga, Tennessee.

    You'll convert the stops text file from the GTFS dataset into spatial features that you can view and analyze on your map.

  6. On the ribbon, click the Analysis tab. In the Geoprocessing group, click Tools.

    Tools button

  7. In the Geoprocessing pane, on the search bar, type GTFS Stops To Features. In the list of results, click the GTFS Stops To Features tool.

    GTFS Stops To Features Geoprocessing tool

    The tool parameters appear.

  8. Next to Input GTFS Stops File, click the Browse button.

    Browse button

  9. In the Input GTFS Stops File window, browse to the GTFS folder and click stops.txt to select it.

    Text file in the Input GTFS Stops File window

    Note:

    You can also find stops.txt in the project folder. To locate it, browse to Folders, Assess Access to Public Transit, commondata, and userdata.

  10. Click OK.
  11. For Output Feature Class, type BusStops.

    By default, the new feature class will be stored in the project's geodatabase, assess_access_to_public_transit.gdb.

  12. Click Run.

    The tool runs and a layer of bus stops is added to the map.

    Bus stop points on the map

    Note:

    The symbology color of the layer is randomly generated and may differ from the example image. It does not impact the results of the analysis.

    Most of Chattanooga's bus stops are to the south of the Tennessee River. Like most cities, the downtown has a higher density of bus service. Next, you'll map those areas in the city that are within walking distance of these stops.

  13. On the Quick Access Toolbar, click the Save Project button.

    Save Project button on the Quick Access Toolbar

    Note:

    If you receive a message saying this project was created using a previous version of ArcGIS Pro, click Yes. You can also save your project by pressing Ctrl+S.

Generate service areas for bus stops

When mapping the areas that can easily access bus stops, it is important to use a street network. If you made simple buffers, they would be based on distance as the crow flies, ignoring buildings, fences, and other obstacles facing pedestrians. You'll generate service areas for the Chattanooga bus stops to visualize a walking time of 10 minutes based on the street network.

Note:

If you are unable to complete any of the steps in the following section, you can still move forward with the tutorial using the BusServiceAreas_Backup layer. In the Catalog pane, open Databases and open assess_access_to_public_transit.gdb to access the BusServiceAreas_Backup layer.

  1. In the Contents pane, turn on the Routing_ND layer.

    The Routing_ND layer is a network dataset modelling the street network in Chattanooga.

    Routing_ND layer on the map

    The features in a network dataset are aware of one another, providing the connectivity required to perform network analysis. You'll use Routing_ND to map service areas around bus stops.

  2. Turn off the Routing_ND layer.
  3. On the ribbon, on the Analysis tab, in the Workflows group, click Network Analysis.
  4. Confirm that the active Network Dataset is set to Routing_ND from assess_access_to_public_transit.gdb\Routing.

    Network Data Source set to Routing_ND on the Network Analysis menu

    Note:

    This network dataset was included in the project package. If you want to repeat this workflow for another city, you have the following options:

    • Change your network data source to https://www.arcgis.com/. When using this data source, generating service areas consumes credits. The cost is half a credit per bus stop. In addition, you can only generate service areas on 1,000 bus stops at a time, so you may need to divide your dataset into multiple pieces using definition queries or a similar method.
    • Purchase ArcGIS StreetMap Premium.
    • Use your own street data to create a network dataset with a walking time travel mode.
  5. In the Network Analysis menu, click Service Area.

    Service Area option on the Network Analysis menu

    A new Service Area layer appears in the Contents pane. It contains six sublayers.

    Service Area layer in the Contents pane with six sublayers

    Note:

    The symbol colors are randomly assigned, so your layer may not match the example image.

    Currently, all of these layers are empty. You'll populate the Facilities layer with the bus stops.

  6. In the Contents pane, confirm that Service Area is selected (highlighted in blue).
  7. On the ribbon, click the Service Area Layer tab.

    Service Area Layer tab

  8. In the Input Data group, click Import Facilities.

    Import Facilities button on the Service Area Layer tab of the ribbon

    The Add Locations window appears.

  9. For Input Locations, choose BusStops.

    Add Locations window with Input Locations set to BusStops

  10. Click OK.

    The points on the map are duplicated using the symbology of the Facilities layer.

    Facilities layer on the map

    Next, you'll request a service area that represents a 10-minute walk time surrounding each of these stops.

  11. On the ribbon, on the Service Area Layer tab, change the following parameters in the Travel Settings group:
    • Set Mode to Walking Time.
    • Set Direction to Toward Facilities.
    • Set Cutoffs to 10.

    Travel Settings on the Service Area Layer tab of the ribbon

  12. In the Output Geometry group, change Standard Precision to High Precision.

    Output Geometry set to High Precision on the ribbon

    A high precision service area takes longer to generate but is more accurate and recommended for a walking time analysis.

  13. Change Overlap to Dissolve.

    Output Geometry set to Dissolve on the ribbon

    The Dissolve option creates polygons around each bus stop and merges them.

  14. On the ribbon, in the Analysis group, click Run.

    A service area polygon now surrounds each facility (bus stop) point on the map.

    Map with service area polygon and bus stop points

  15. In the Contents pane, right-click Polygons, point to Data, and choose Export Features.

    The Export Features window appears. The Input Features parameter is set to Polygons.

  16. For Output Feature Class, type BusServiceAreas.

    Export Features pane with Output Feature Class set to BusServiceAreas

  17. Click OK.

    A copy of the service area polygons is added to your map and the project's geodatabase, separate from the Service Area data.

  18. In the Contents pane, right-click Service Area and click Remove.
  19. Remove the BusStops layer and the Routing_ND network dataset.

    Dissolved service areas on the map

    The BusServiceAreas layer represents areas in the city that are within a 10-minute walk of at least one bus stop.

  20. Save the project.

From the map, you can see that not all parts of the city are served by the existing bus routes. The City is looking to expand their bus service by adding a new route or extending an existing one. Next, you'll help them determine which areas have the greatest need.


Assess the map for future bus stops

Next, you'll map demographics in the city of Chattanooga to assess which areas would benefit the most from expanded bus service.

Add block groups

You'll start by adding data for block groups, the second smallest geographic unit used by the United States Census.

Note:

Similar polygon features can be found in ArcGIS Living Atlas of the World for other countries. Neighborhood boundaries or similar data are also appropriate. Alternatively, you can use the Generate Tessellation tool to create a grid of polygons.

  1. In the Catalog pane, click the Portal tab and click the Living Atlas button.

    Living Atlas button in the Portal tab on the Catalog pane

  2. Search for US Census Block Groups. Right-click the U.S. Census Block Groups layer and choose Add To Current Map.

    Add To Current Map on the context menu of the U.S. Census Block Groups web layer from Living Atlas

    This layer covers the entire United States, which is too large for your needs. You'll filter it to only cover Hamilton County, Tennessee.

    The layer uses FIPS codes to identify the county each feature is in, so you'll use these codes to filter the layer. The county FIPS code for Hamilton County is 065 and the state FIPS code for Tennessee is 47.

    Note:

    To look up the FIPS code for any county in the United States, go to the County and County Equivalent Entites section of the ANSI and FIPS Codes page on the United States Census Bureau site. Choose the state the county is in and consult the table that appears.

  3. In the Contents pane, right-click Census Block Groups and choose Properties.
  4. The Layer Properties window, click the Definition Query tab. Click New definition query.

    New definition query button on the Definition Query tab on the Layer Properties window.

  5. Use the drop-down menus to construct the clause Where County FIPS is equal to 065.

    Query 1 set to Where County FIPS is equal to 065

  6. Click Add Clause.
  7. Create the clause and State FIPS Code is equal to 47.

    Query with two clauses

  8. Under the query clauses, click Apply. At the bottom of the Layer Properties window, click OK.
  9. On the map, zoom out until you can view the entire county.

    Block groups of Hamilton County, Tennessee, on the map

Enrich block groups with demographic data

To assess public transit needs, you'll map population density, poverty, and the percentage of people who do not own cars.

  1. On the ribbon, click the Analysis tab. In the Geoprocessing group, click Tools.
  2. In the Geoprocessing pane, search for and open the Enrich tool.

    The Enrich tool adds demographic and landscape information to geographic data. It consumes 1 credit per 100 variables or features. In the following steps, you'll enrich 247 features with 3 variables each, which will cost 7.41 credits.

    Note:

    Credits will not be consumed until you click the Run button. If you prefer to save your credits, you can continue the tutorial using USABlockGoups_Enrich_Backup, located in assess_access_to_public_transit.gdb.

    First, you'll ensure that the Enrich tool is set to the correct country.

  3. Click the Environments tab. Confirm that Data Source is set to United States (Esri 2024) (or later, if available).

    Data Source parameter

    Note:

    Demographic data is updated periodically. Use the latest available data. If the data source is not set correctly, click the Browse button. Browse to North America. Under United States, click Esri 2024 or later. Click OK.

    Next, you'll set the tool parameters.

  4. Click the Parameters tab. For Input Features, choose Census Block Groups.
  5. Next to Variables, click the add button.

    Add button for the Variables parameter

    The Data Browser window appears.

  6. If necessary, in the Data Browser window, under United States (Esri 2024), click Categories.

    Categories in the Add Variable window

  7. Click Population. Click Common Population Variables.
  8. Check 2024 Total Population (or the most recent year).

    2024 Total Population selected in the Data Browser window

    At the top of the Data Browser window, under the search bar, the Show/Hide details panel icon indicates you have selected 1 variable.

    Show/Hide details panel icon with a single variable selected

  9. Click Categories. Click Poverty and click Common Poverty Variables.
  10. Check 2022 HHs: Inc Below Poverty Level (ACS 5-Yr) (or the most recent year).
  11. Click Categories. Click At Risk and click At Risk.
  12. Expand 2018-2022 Vehicles Available (ACS) (or the most recent years) and check 2022 Owner HHs with 0 Vehicles (ACS 5-Yr).

    2022 Owner HHs with 0 Vehicles (ACS 5-Yr) (#) selected

    You have now selected three variables total.

  13. Click OK.

    The three variables are added to the Enrich tool pane. Before running the tool, you'll estimate the credits that it will consume. Estimating the credits is a way to check that you're enriching the area you expect to be and adding the variables you want.

  14. In the blue ribbon at the top of the Geoprocessing pane, click estimate credits.

    Three variables listed in the Enrich tool

    This tool will use 8.34 credits.

  15. Click Run.

    A new layer, named CensusBlockGroups_Enrich, is added to your map. It contains attributes for the variables added by the Enrich tool.

  16. Remove the original Census Block Groups layer. Turn off the BusServiceAreas layer.
  17. Save the project.

Symbolize the enriched layer

To visualize the demographic data that you've added, you'll make three layers, each depicting a different variable with a different transparent color.

  1. In the Contents pane, click the symbol for the CensusBlockGroups_Enrich layer.

    Symbol for the CensusBlockGroups_Enrich layer

    The Symbology pane appears.

  2. If necessary, in the Symbology pane, click the Gallery tab.

    This project contains a group of custom styles named Chattanooga.

  3. Under Chattanooga, click Green no outline.

    Green no outline symbol in the Chattanooga style

    The census blocks become a solid green.

  4. Click the Return to primary symbology page button.

    Return to primary symbology page button

  5. Click the Vary Symbology by Attribute tab and expand Transparency.

    Vary Symbology by Attribute button and expanded Transparency section in the Symbology pane

    The Vary symbology by attribute tab is used to add a second visual variable to a layer, in addition to the one established on the Primary Symbology tab. While transparency can be used in your map in a number of ways, this method is the easiest way to derive transparency values from your data.

    You'll symbolize the layer so all block groups are green, but they are more or less transparent based on the population density.

  6. Under Transparency, for Field, choose 2024 Total Population (or the latest year).
  7. For Normalization, choose Shape_Area.

    Transparency will now represent the number of people divided by the area of each block group.

  8. For High values, type 20%. For Low values, type 100%.

    The layer on the map is difficult to see, since most block groups have a high transparency.

  9. On the Transparency range histogram, drag the lower handle up until it is just below the third gray bar.

    Histogram

    Now you are better able to discern the population patterns on the map. The brighter polygons are more densely populated than the faint ones.

    Map with block groups displayed in transparent green

  10. In the Contents pane, right-click CensusBlockGroups_Enrich and choose Copy.
  11. Right-click Map and choose Paste.
  12. Click the symbol for the new layer. From the symbol gallery, choose Red no outline.
  13. Click the Return to primary symbology page button and click the Vary Symbology by Attribute tab.
  14. Expand Transparency and change Field to 2022 HHs: Inc Below Poverty Level (ACS 5-Yr).
  15. On the histogram, drag the lower handle up until it is just below the second gray bar.

    Histogram

    The red and green transparent colors mix on the map.

  16. In the Contents pane, copy the original CensusBlockGroups_Enrich layer again and change the symbology to use the Yellow no outline symbol.
  17. Change the Transparency Field to 2022 Owner HHs with 0 Vehicles (ACS 5-Yr). On the histogram, drag the lower handle up until it is just below the second gray bar.
  18. In the Contents pane, click the layer name two times to rename each block group layer using the following table:

    Symbol colorLayer name

    Yellow

    No Access to a Vehicle

    Red

    Poverty

    Green

    Population Density

    Layer names updated

  19. In the Contents pane, drag the World Dark Gray Reference layer to the top of the list.
  20. Explore your map. Try reordering the block group layers to gain a different perspective on the distribution of the variables.

    Map with three transparent colors overlaid

Assess the map for future expansion sites

It looks like downtown Chattanooga has the greatest need for bus stops, but you know from the BusServiceAreas layer that this neighborhood is already well served by public transit. You can mask the map with the BusServiceAreas layer to better direct your attention to those places without bus stops.

  1. In the Contents pane, press the Ctrl key while clicking Population Density, Poverty, and No Access to a Vehicle layers so all three layers are selected at once.
  2. On the ribbon, click the Feature Layer tab.
  3. In the Drawing group, click Masking and check BusServiceAreas.

    BusServiceAreas checked in the Masking menu on the ribbon

    The block group layers are now masked by the bus stop service areas.

    Map with bus service areas masked from the three block group layers

    From this map, the neighborhoods of East Ridge and Red Bank seem like the most likely candidates to receive a new bus route. Perhaps these areas have become more urbanized since the original public transit routes were created.

    Map with the communities of Red Bank to the northwest and East Ridge to the south circled

  4. Save your project.

In this tutorial, you mapped bus stops from GTFS data. You generated service areas surrounding each bus stop using a network dataset. You enriched group block areas with demographic variables. Finally, you symbolized your map to conduct a visual analysis and propose new sites for bus routes.

This visual analysis can provide valuable insight to guide your planning of Chattanooga's public transit expansion. However, a more rigorous suitability analysis can better help you select areas by weighing your criteria and quantifying your results.

You may also consider more demographic variables. This tutorial focused on where people live to determine need for bus stops, but ignored where they work, shop, and go to school. To better map the need for bus service, you could also include variables such as daytime population, total employees, and total retail sales. Red Bank and East Ridge may be popular origin sites for bus travelers but not common destinations.

Learn more by watching the Public Transit Analysis in ArcGIS video series.

You can find more tutorials in the tutorial gallery.