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.
- Go to the Chattanooga Transit Data item details page and click Download.
- Locate and unzip the downloaded .zip file.
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.
- Download the Assess Access to Public Transit project package.
- Start ArcGIS Pro. If prompted, sign in using your licensed ArcGIS organizational account.
Note:
If you don't have access to ArcGIS Pro or an ArcGIS organizational account, see options for software access.
- Locate the downloaded file on your computer. Double-click Assess Access to Public Transit.ppkx to open it in ArcGIS Pro.
ArcGIS Pro opens to a map of Chattanooga, Tennessee, in the United States.
Next, you'll convert the stops text file from the GTFS dataset into spatial features that you can view and analyze on your map.
- On the ribbon, click the Analysis tab. In the Geoprocessing group, click Tools.
- 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.
The tool parameters appear.
- Next to Input GTFS Stops File, click the Browse button. Browse to the GTFS folder and choose stops.txt.
Note:
You can also find stops.txt in the project folder. Click Folders, Assess Access to Public Transit, commondata, and userdata.
- 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.
- Click Run.
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.
- On the Quick Access Toolbar, click the Save button to save the project.
Note:
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. Next, 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.
- In the Contents pane, turn on the Routing_ND layer.
The Routing_ND layer is a network dataset modelling the street network in Chattanooga.
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.
- Turn off the Routing_ND layer.
- On the ribbon, on the Analysis tab, in the Workflows group, click Network Analysis.
- Confirm that the active Network Dataset is set to Routing_ND from assess_access_to_public_transit.gdb\Routing.
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 StreetMap Premium for ArcGIS.
Use your own street data to Create a network dataset with a walking time travel mode.
- In the Network Analysis menu, click Service Area.
A new Service Area layer appears in the Contents pane, which contains six sublayers.
Note:
The symbol colors are randomly assigned, so your Service Area layer may not match this graphic.
Currently, all of these layers are empty. Next, you'll populate the Facilities layer with the bus stops.
- In the Contents pane, confirm that Service Area is selected (highlighted in blue).
- On the ribbon, click the Service Area Layer tab.
- In the Input Data group, click Import Facilities.
The Add Locations window appears.
- For Input Locations, choose BusStops.
- Accept all other tool defaults and click OK.
The points on the map are duplicated using the symbology of the Facilities layer.
Next, you'll request a service area that represents a 10-minute walk time surrounding each of these stops.
- On the ribbon, in the Service Area Layer tab, change the following parameters in the Travel Settings group:
- Set Mode to Walking Time.
- Set Direction to Towards Facilities.
- Set Cutoffs to 10.
- In the Output Geometry group, change Standard Precision to High Precision.
A high precision service area takes longer to generate but is more accurate and recommended for a walking time analysis.
- Change Overlap to Dissolve.
The Dissolve option creates polygons around each bus stop and merges them.
- On the ribbon, in the Analysis group, click Run.
A service area polygon now surrounds each facility (bus stop) point on the map.
- In the Contents pane, right-click Polygons, point to Data, and choose Export Features.
The Export Features window appears. Input Features is set to Polygons.
- For Output Name, type BusServiceAreas.
- 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.
- In the Contents pane, right-click Service Area and click Remove.
- Also remove the BusStops layer and the Routing_ND Network Dataset.
The BusServiceAreas layer now has a polygon representing areas in the city that are within a 10-minute walk of at least one bus stop.
- 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 the 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.
- If necessary, open your project.
- In the Catalog pane, click the Portal tab and click Living Atlas.
- Search for US Census Block Groups. Right-click the US Census Block Groups layer and choose Add To Current Map.
This layer covers the entire United States, which is too large for your needs. You'll filter it to only cover Hamilton County, Tennessee.
- In the Contents pane, right-click the BusAreas layer, click Zoom To Layer and select a polygon in the focus area.
- In the Contents pane, right-click the Census Block Groups and click Attribute Table.
The attribute table opens.
- Scroll and find the County FIPS code and State FIPS code for Hamilton County, Tennessee.
The County FIPS code for Hamilton County is 065 and the State FIPS code for Tennessee is 47.
- Close the attribute table.
- In the Contents pane, right-click Census Block Groups layer and choose Properties.
The Layer Properties window appears.
- The Layer Properties window, click the Definition Query tab and click New definition query.
- Use the drop-down menus to construct the clause Where County FIPS is equal to 065.
- Click Add Clause.
- Create the clause and State FIPS Code is equal to 47.
- Click Apply and click OK.
- Zoom out until you can view the entire county.
The block groups for Hamilton County appear 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.
- On the ribbon, click the Analysis tab. In the Geoprocessing group, click Tools.
- 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.
- Click the Environments tab. For Data Source, click the Browse button.
- Browse to North America. Under United States, click Esri 2023. Click OK.
- In the Geoprocessing pane, click the Parameters tab.
- For Input Features, choose Census Block Groups.
- Next to Variables, click the add variables button.
The Data Browser window appears.
- If necessary, in the Data Browser window, under United States (Esri 2023), click Categories.
- Double-click Population and Common Population Variables.
- Check 2023 Total Population.
Note:
Demographic data is updated periodically. Use the latest available data.
At the top of the Data Browser window, under the search bar, the Show/Hide details panel icon indicates you have selected 1 variable.
- Click Categories. Double-click Poverty. Double-click Common Poverty Variables.
- Check 2021 HHs: Inc Below Poverty Level (ACS 5-Yr) or the most recent year.
- Click Categories and double-click At Risk.
- Double-click the At Risk folder.
- Expand 2017-2021 Vehicles Available (ACS) (or the most recent years) and check 2021 Owner HHs with 0 Vehicles (ACS 5-Yr).
- Click OK.
The three variables are added to the Enrich tool.
- Click Run.
Note:
This tool will use about 8.34 credits. Click estimate credits to learn more.
A new layer, named CensusBlockGroups_Enrich, is added to your map. It contains attributes for the variables added by the Enrich tool.
- Remove the original Census Block Groups layer.
- Turn off the BusServiceAreas layer.
- 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.
- In the Contents pane, click the symbol for the CensusBlockGroups_Enrich layer.
The Symbology pane appears.
- In the Symbology pane, if necessary, click the Gallery tab.
This project contains a custom style named Chattanooga.
- Under Chattanooga, Click Green no outline.
- In the Symbology pane, click the Back button.
- Click the Vary Symbology by Attribute tab and expand Transparency.
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.
- Under Transparency, for Field, choose 2021 Total Population or the latest year.
- For Normalization, choose Shape_Area.
Transparency will now represent the number of people divided by the area of each block group.
- 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.
- On the Transparency range histogram, drag the lower handle up until it is just below the gray bars.
Now you are better able to discern the population patterns on the map. The brighter polygons are more densely populated than the faint ones.
- In the Contents pane, right-click CensusBlockGroups_Enrich and choose Copy.
- Right-click Map and choose Paste.
- Click the symbol for the new layer. From the symbol Gallery, choose Red no outline.
- Click the Back button and click Vary Symbology by Attribute.
- Expand Transparency and change Field to 2021 HHs: Inc Below Poverty Level (ACS 5-Yr).
- On the histogram, drag the lower handle up until it is just below the gray bars.
The red and green transparent colors mix on the map.
- In the Contents pane, copy the CensusBlockGroups_Enrich layer again and change the symbology to use the Yellow no outline symbol.
- Change the Transparency Field to 2021 Owner HHs with 0 Vehicles (ACS 5-Yr). On the histogram, drag the lower handle up until it is just below the gray bars.
- In the Contents pane, click the layer name two times to rename each block group layer using the following table:
Symbol color Layer name Yellow
No Access to a Vehicle
Red
Poverty
Green
Population Density
- In the Contents pane, drag the World Dark Gray Reference layer to the top of the list.
- Explore your map. Try reordering the block group layers to gain a different perspective on the distribution of the variables.
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.
- 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.
- On the ribbon, click the Feature Layer tab.
- In the Drawing group, click Masking and check BusServiceAreas.
The block group layers are now masked by the bus stop service areas.
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.
- 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 Pro video series.
You can find more tutorials in the tutorial gallery.