Explore police stop data with charts

Although many Americans have been stopped for speeding or jaywalking, few may realize how degrading a stop can be when the officer is looking for more. This [Supreme] Court has allowed an officer to stop you for whatever reason he wants—so long as he can point to a pretextual justification after the fact. … That justification must provide specific reasons why the officer suspected you were breaking the law … but it may factor in your ethnicity … where you live … what you were wearing … and how you behaved. … The officer does not even need to know which law you might have broken so long as he can later point to any possible infraction—even one that is minor, unrelated, or ambiguous. … — "Dissent of Justice Sonia Sotomayor in Utah v. Strieff," Supreme Court of the United States, 2016.

To begin your analysis, you will explore vehicular police stop data for Nashville, Tennessee. You will use the Data Engineering view to explore the fields and attributes in the data and create charts to identify disparities in frisk rates and trends in the data over time. Finally, you'll compare a specific neighborhood to the city as a whole.

Examine police stop data with the Data Engineering view

It is important to become familiar with your data before beginning any analysis. You'll begin by exploring the fields available in the dataset of police stops in Nashville.

  1. Download the police_stops .zip file and unzip it to a location on your computer, for example, drive C.
  2. Open the unzipped police_stops folder and double-click Police Stops.aprx to open the project in ArcGIS Pro.

    Police Stops.aprx

  3. If prompted, sign in to your ArcGIS account.
    Note:

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

    A chart and a map of Nashville, Tennessee, appear.

    Bar chart and map

    The points on the map represent vehicular police stops in Nashville during the time frame of the dataset. This data is from the Stanford Open Policing Project. The chart at the bottom was derived from the same data, as well as population counts from the American Community Survey (ACS), which is conducted by the United Sates Census Bureau. The chart shows two bars for each race: the light blue bar shows the percent of police stops that were of that race, and the dark blue bar shows the percent of Nashville residents of that race.

    If stops were proportional, you’d expect to see the same bar height for Stop Percentage and Population Percentage for each race, but this is not what you see. For example, while only 26.93 percent of Nashville residents are Black, 37.04 percent of vehicular stops happened to Black people. This is evidence of a disparity, which means outcomes are different between different groups. The presence of a disparity alone does not necessarily mean there has been discrimination, but the disparity is still significant because it has a detrimental impact (Pryor et al. 2020, 11).

    Next, you'll explore the police stop dataset in the Data Engineering view to see what fields and attributes are included for each traffic stop.

  4. Close the chart window.
  5. In the Contents pane, right-click Police Stops (2017-2019) and click Data Engineering.

    Data Engineering

    The Data Engineering view appears. It is composed of two sections: the fields panel, which shows a list of the layer's fields, and the statistics panel, which is currently empty. You'll explore fields by adding them to the statistics panel.

  6. Click any field in the fields panel, and press Ctrl+A to select all fields. Drag the fields onto the statistics panel.

    All fields selected

    The fields are now displayed as rows in the statistics panel.

  7. Above the statistics panel, click the Calculate button.

    Calculate button

    After a few moments, the statistics panel is populated with data quality metrics and statistics about the attributes in each field.

    Statistics panel

    The statistics panel displays the field names; data types; number of null values; a chart preview showing the distribution of the field; general distribution values such as the minimum, maximum, mean, and mode; and other metrics that can help you become acquainted with each field in the data.

    At the bottom of the Data Engineering view, the count of records shows that there were 422,535 stops during the span of the data.

    Count of records

    The second row of the statistics table shows the summary statistics for the date field. The Minimum value of January 1, 2017 and Maximum value of March 24, 2019 tell you that the 422,535 vehicular stops span two years and three months of collected data.

Explore frisk rates by race and ethnicity

Some police stops escalate to a frisk:

A frisk occurs when the police pat or sweep the outside of someone’s clothes to check if they have weapons. Police can lawfully ‘frisk’ you if you consent, or even without your consent if they have ‘reasonable suspicion’ (that is, a specific, fact-based reason to believe) that you have a weapon — "Know Your Rights: Stop-And-Frisk," ACLU of the District of Columbia, 2021.

The decision to frisk is subject to the officer’s discretion, which opens the door to racial bias at the individual level. You'll explore the frisk rate: the percent of stops that escalated to a frisk. When a person is stopped, are they more or less likely to be frisked based on their race? To answer this question, you'll use two fields, subject_race and frisk_performed, to create a chart that visualizes frisk rates for each race.

  1. In the Data Engineering view, in the statistics table, scroll down to find the subject_race field.
  2. In the subject_race row, point to the Chart Preview cell.

    Chart preview pop-up

    A window appears, listing the values shown in the chart preview.

  3. In the subject_race row, right-click the Chart Preview cell and click Open Bar Chart.

    A bar chart appears, displaying the counts of vehicular stops by the race of the person who was stopped.

    Bar chart of subject_race

    You'll change this chart so it shows the frisk rate for each race instead of the number of stops.

  4. If necessary, on the toolbar above the chart, click the Properties button to open the Chart Properties pane.

    You'll begin by splitting each column to show how many of the stops included a frisk.

  5. In the Chart Properties pane, for Split by (optional), choose the frisk_performed field.

    Split by frisk_performed

    The chart now shows seven groups of columns. It shows how many police stops did and did not include a frisk for each race. You'll label and stack the bars so they are easier to read. You'll also remove the column for data that is not applicable.

  6. In the Chart Properties pane, under Data Labels, check the Label bars box.
  7. Click the Series tab. For Display multiple series as, choose 100% Stacked.
  8. In the table, click the NA row and click the Delete the selected row button.

    Delete button and NA row

  9. Drag the TRUE row above the FALSE row.

    Drag bar on TRUE row

    You'll edit the text that appears in the chart's legend to make it easier to understand.

  10. In the Label column, double-click TRUE and type Frisked. Change the FALSE label to Not frisked.

    Labels renamed as Frisked and Not frisked

    The chart now shows the frisk rate for each race.

    Stacked bar chart

    A comparison of 2.58 percent of Black people and 2.49 percent of Hispanic people frisked versus 0.92 percent of White people frisked shows a racial disparity in the decision to frisk. In other words, the data reflects that Black and Hispanic people in Nashville were more than twice as likely to be frisked than White people when they were stopped by police. The results appear consistent with reports by activists and findings by the NYU School of Law’s Policing Project:

    City officials have been paying closer attention to traffic stops since two independent reports found that Black drivers were being stopped and searched at disproportionate rates—even though police rarely found evidence of a crime…

    …those trends were highlighted in two separate analyses of Metro Nashville Police Department (MNPD) data.

    —"Nashville Police Report Major Drop In Traffic Stops Following Accusations Of Racial Bias," Samantha Max, Nashville Public Radio, 2021.

Explore trends in traffic stops over time and across neighborhoods

While racial disparities in police stops are a common problem throughout cities in the United States, reports by analysts and activists can prompt change: traffic stops by the Metro Nashville Police Department (MNPD) have dropped nearly 90 percent between 2016 and 2021, following a change in training policies as a result of independent reports.

After NYU’s researchers found that MNPD’s traffic stops rarely turned up contraband, the department completely rewrote its training. The focus shifted to stopping unsafe driving, not searches.

In the very first slide, officers were encouraged to think about “why MNPD performs traffic stops” and were told to interact with community members “in a manner that maintains the citizen’s dignity, respect, and procedural justice.”

—"Nashville Police Report Major Drop In Traffic Stops Following Accusations Of Racial Bias," Samantha Max, Nashville Public Radio, 2021

You'll chart how traffic stops have changed over time to confirm the drop reported by the Nashville Public Radio report.

  1. Above the chart window, click the Police Stops (2017-2019) tab to reopen the Data Engineering view.
  2. If necessary, scroll to the top of the statistics table and find the date row.

    In the date row, the Chart Preview cell shows a downward trend in the number of stops over time. To investigate this pattern further, you'll view the full chart, instead of the chart preview.

  3. In the date row, right-click the Chart Preview cell and click Open Line Chart.

    Open Line Chart

    A line chart appears. The chart is also added to the Contents pane, below the Nashville police stops layer.

    Line chart of change in data counts over time

    The chart shows the count of traffic stops in Nashville across the time span of the data. The space between each dot represents six days. You'll change the interval to one week.

  4. If necessary, in the toolbar above the chart, click Properties to open the Chart Properties pane.
  5. In the Chart Properties pane, change Interval size to 7 Days.

    Interval size set to 7 Days

    The chart shows that police stops have decreased from the beginning of 2017 (with roughly 4,500 stops a week) to the beginning of 2019 (with roughly 1,000 stops a week). The trend appears consistent with the Nashville Public Radio findings that traffic stops by the Metro Nashville Police Department have dropped nearly 90 percent in the past five years. You will continue exploring the data to examine if this trend is consistent across different race and ethnicity categories and in different neighborhoods.

  6. In the Chart Properties pane, for Split by (optional), choose subject_race.

    The chart updates to display a line for each category in the subject_race field.

    Line chart split by subject_race

    A similar decreasing trend for counts of vehicular police stops is visible for both Black and White people.

    Tip:

    You can click items in the chart’s legend to turn categories off and make it easier to explore trends for a particular category.

    You will now explore the charts together with the map to examine if this trend is consistent across different neighborhoods in Nashville.

  7. Click the tab of the line chart and drag it next to the map. Dock the chart to the right of the map.

    Docking target next to map

    The chart now displays next to the map.

  8. In the Data Engineering view, on the fields panel, point to the subject_race field and click the Update Symbology button.

    Update Symbology button

    The map updates to display the traffic stops by the race and ethnicity of the stopped person. The line chart updates to use the same colors as the map.

    Map and line chart with matching colors

    Note:

    The colors in your map and chart may differ from the ones shown in the tutorial.

  9. In the toolbar above the line chart, click the Filter By Extent button.

    Filter By Extent button

  10. On the map, zoom and pan to visit different neighborhoods. Observe the changes on the line chart.

    The line chart updates dynamically to reflect changes over time in police stops for the current map view. Some neighborhoods show more Black people stopped than White people. Most show the same downward trend that is present for the city as a whole.

Compare frisk rates across race, time, and neighborhoods

Next, you'll explore how the decrease in police stops after 2018 affected frisk rates.

  1. In the Contents pane, right-click Police Stops (2017-2019) and click Zoom To Layer.
  2. On the ribbon, click the Map tab. In the Selection group, click Select By Attributes.

    Select By Attributes button

  3. In the Select By Attributes window, for Input Rows, choose Police Stops (2017-2019).
  4. For Expression, use the drop-down menus to build the expression Where date is before 12/1/2018.

    Expression clause for Select By Attributes tool

  5. Click OK.

    Most of the points on the map are selected. On the line chart, all of the points prior to the steep decline at the end of 2018 are selected.

    Most points selected on the line chart

  6. Above the Data Engineering view, click the Police Stops (2017-2...frisk_performed tab to display the bar chart.
  7. On the toolbar above the bar chart, click the Filter by Selection button.

    Selection button

    The bar chart updates to show frisk rates only for police stops that occurred before December 2018.

    The frisk rate for Black people was 2.56 percent, and the frisk rate for White people was 0.9 percent. The ratio between these two values (2.56 divided by 0.9) is 2.84. This means that once stopped, Black people were 2.84 times as likely as White people to be frisked.

    Next, you'll see how those numbers changed after December 2018.

  8. On the toolbar above either chart, click the Switch Selection button.

    Switch Selection button

    The bar chart changes to show frisk rates for the latter part of the time frame. The new selection is also visible on the line chart.

    Final points selected on the line chart

    During this period, the frisk rate for Black people was 3.21 percent and the frisk rate for White people was 1.48 percent. Both of these values are higher than before. This means that stops were more likely to escalate to a frisk in 2019. However, since fewer stops were happening overall, fewer frisks were as well.

    The ratio between the frisk rates for Black and White people is 2.16. This is smaller than the previous ratio of 2.84, meaning that after December 2018, racial disparity in frisk rates decreased. However, the decrease was not large, and Black people were still more than twice as likely to be frisked as White people once they were stopped.

    Next, you'll explore how frisk rates changed for a specific neighborhood, rather than the entire city. Do not clear the selection.

  9. On the ribbon, click the Map tab. In the Navigate group, click Bookmarks and click the Tennessee State University bookmark.

    The map zooms to the neighborhood around Tennessee State University, a Historically Black College and University.

  10. In the toolbar above the bar chart, click the Filter By Extent button.

    Now the chart reflects data from the current selection and the current map view: it only reflects stops that occurred in the neighborhood around Tennessee State University after December 2018.

    Filtered stacked bar chart

    The frisk rate in this neighborhood and time period was 3.92 percent. For White people it was 1.15 percent.

    Note:

    Your numbers may be different due to a slightly different map extent. These numbers will have no effect on the rest of the tutorial.

    The ratio between these two values is 3.41, which is higher than the other ratios you've seen so far. It is expected that more stops would happen to Black people than White people in a predominantly Black neighborhood; however, this number reflects how likely a person is to be frisked after they've been stopped. In this neighborhood, the racial disparity between which stops escalate to a frisk is higher than in the city as a whole.

  11. In the toolbar above either chart, click the Clear selection button.

    Clear selection button

  12. Close both charts, the Data Engineering view, and the Chart Properties pane.
  13. In the Quick Access Toolbar, click the Save button.

    Save button

    Note:

    A message may appear warning you that saving this project file with the current ArcGIS Pro version will prevent you from opening it again in an earlier version. If you see this message, click Yes to proceed.

So far in this tutorial, you have explored traffic stop data from Nashville. You examined racial disparities in stop rates and frisk rates, and charted stops across time. You found that police stops declined in Nashville from 2017 to 2019, which may be a result of changes to police training prompted by analysis by activists. However, you also found that racial disparities still exist. When stopped by police, Black people are still more likely to be frisked than White people and these disparities vary from neighborhood to neighborhood.

Next, you will continue with your exploration of police stops using spatial analysis tools.


Find hot spots of frisks

In the previous module you prepared, visualized, and explored police stop data in Nashville. Next, you will shift your focus to the city of New Orleans, Louisiana, using a dataset of pedestrian stops where the police officer decided to frisk. Frisking has been widely criticized for its impact on individuals and communities, and for the disproportionate targeting of Black and Latino communities (Center for Constitutional Rights, 2012).

The indignity of the stop is not limited to an officer telling you that you look like a criminal. The officer may next ask for your “consent” to inspect your bag or purse without telling you that you can decline. Regardless of your answer, he may order you to stand “helpless, perhaps facing a wall with [your] hands raised.” If the officer thinks you might be dangerous, he may then “frisk” you for weapons. This involves more than just a pat down. As onlookers pass by, the officer may “feel with sensitive fingers every portion of [your] body. A thorough search [may] be made of [your] arms and armpits, waistline and back, the groin and area about the testicles, and entire surface of the legs down to the feet.” — "Dissent of Justice Sonia Sotomayor in Utah v. Strieff," Supreme Court of the United States, 2016.

Given the severity of frisk incidents, you will now analyze how they occur across space and time in the city of New Orleans. To help you quantify some of the patterns you may observe using maps and charts, you will run tests for statistical significance of frisk trends.

Create a space-time cube of frisk locations

First, you'll use a line chart to observe how frisking trends changed over time for each race. Then, you'll build a space-time cube. This data structure is necessary to perform an emerging hot spot analysis, which can visualize spatial and temporal patterns together in one map.

  1. If necessary, open the Police Stops project in ArcGIS Pro. Below the ribbon, click the New Orleans map tab.

    New Orleans map tab

    A map appears, showing frisk locations from 2011 through 2018 within the New Orleans city limits. This data is from the Stanford Open Policing Project. The locations are symbolized by the race of the frisked person.

  2. In the Contents pane, under Frisk Locations (2011-2018), right-click the Change in frisks over time chart and click Open.

    Open chart

    The chart shows that overall frisking in New Orleans decreased from 2011 to 2013, but frisking also appears to be gradually increasing for Black people between 2014 and 2018.

    Line chart

    Note:

    If you would like to explore how these patterns vary by neighborhood, you can repeat the steps from earlier in the tutorial to filter the chart by extent and then pan and zoom around the map.

    Viewing the map and the chart at once is one way to visualize spatial and temporal trends in a dataset. However, you can quantify these patterns more concretely with a space-time cube. This data structure aggregates data into bins defined by space and time. To define the spatial boundaries of your bins, you'll use census tracts.

  3. Close the chart view and the Chart Properties pane.
  4. In the Contents pane, check the box next to the Race/Ethnicity by Tract (2015-2019) layer to turn it on.

    This layer shows census tracts with race and ethnicity variables as defined by the American Community Survey (ACS). Census tracts are used by the United States Census Bureau to organize and analyze population data, generally corresponding to neighborhoods with a population between 2,500 and 8,000 people (U.S. Census, 2021). The data was derived from the ACS Race and Hispanic Origin Variables – Boundaries layer in ArcGIS Living Atlas of the World.

    You'll create a space-time cube with the frisk data and the census tracts. The results will show you which census tracts are hot spots for frisks.

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

    Tools button on the ribbon

    The Geoprocessing pane appears.

  6. In the search bar, type create space time cube. In the search results, click Create Space Time Cube By Aggregating Points.

    Create Space Time Cube By Aggregating Points tool

    A space-time cube aggregates data into a three-dimensional space. Spatial bins are charted on the x- and y-axes, and time bins on the z-axis. For this analysis, you'll define each bin as a census tract with a four-week time span. Each tract will have a stack of bins, each representing four weeks. Each bin will count the number of frisks that occurred in that area during that time.

    Space-time cube data structure

  7. In the Geoprocessing pane, set the following parameters:
    • For Input Features, choose Frisk Locations (2011–2018).
    • For Output Space Time Cube, type Frisk_Tracts_4Weeks.
    • For Time Field, choose date.
    • Leave the Template Cube parameter blank.
    • For Time Step Interval, type 4 and choose Weeks.
    • For Time Step Alignment, choose End time.
    • For Aggregation Shape Type, choose Defined locations.
    • For Defined Polygon Locations, choose Race/Ethnicity by Tract (2015-2019).
    • For Location ID, choose Tract Numeric ID.

    Tool parameters

    You chose End time for the Time Step Alignment parameter because for this analysis, you are more interested in recent trends in frisking than in older ones. This choice ensures that the tool will start at the end (the most recent data) and count backward in time as it creates bins. The last bin may be incomplete, resulting in temporal bias, but it is preferable for bias to be present in the oldest bin rather than the most recent.

  8. Click Run.

    When the tool has completed, a warning appears at the bottom of the Geoprocessing pane.

  9. On the warning, click the View Details link.

    View Details link on the Geoprocessing pane

    A window appears with more information. It suggests that some locations did not coincide with the Census Tracts layer. These few features were missed because they were located on tract boundaries, which does not imply a systemic problem that would impact this analysis.

  10. If necessary, click the Messages tab. On the dialog box, under Space Time Cube Characteristics, scroll to find the First time step temporal bias entry.

    Temporal bias

    The temporal bias of 28.57 percent will affect the results.

    When creating the space-time cube, you designated a time step interval of four weeks. Because the tool counts backward in time (using the End time value for Time Step Alignment), the earliest time bin is the last to be counted, and does not contain a full four weeks of data. The affected bin covers May 2, 2011, to May 30, 2011, but the earliest frisks in the data start on May 10, 2011. From May 2 through May 10, the bin is empty, which results as a 28.57 percent temporal bias in that first time step.

    To correct for this temporal bias, you'll filter the data to start on May 31, 2011, and rerun the tool.

    Note:

    To learn more about time step alignment, read How Create Space Time Cube works.

  11. Close the Create Space Time Cube By Aggregating Points window.
  12. On the ribbon, click the Map tab. In the Selection group, click Select By Attributes.
  13. In the Select By Attributes window, for Input Rows, choose Frisk Locations (2011-2018).
  14. Under Expression, use the drop-down menus to build the query Where date is after 5/29/2011.

    Expression clause in the Select By Attributes tool

  15. Click OK.

    Most of the points on the map are selected. When you rerun the Create Space Time Cube by Aggregating Points tool, it will execute using only these selected features.

  16. In the Geoprocessing pane, click Run.
  17. When the tool has completed, click the View details link, and if necessary, click the Messages tab.

    The First time step temporal bias has been reduced to 3.57 percent.

  18. Scroll to the bottom of the Messages tab.

    The diagnostic messages also suggest that the space-time cube has a Trend direction value of Not Significant.

    Trend direction listed as Not Significant

    While the city of New Orleans as a whole does not have a statistically significant temporal trend across the span of the data, individual neighborhoods and categories of frisks may have experienced statistically significant trends.

  19. Close the Create Space Time Cube By Aggregating Points window.

    You have created a space-time cube and corrected it for temporal bias. The cube does not appear on your map. Next, you’ll visualize the cube on your map using the Visualize Space Time Cube in 3D tool.

  20. Right-click anywhere on the map and click Clear to clear the selection.

    Clear option in the context menu

Visualize frisk patterns in 3D

You will display the space-time cube in three dimensions to understand and explore how it has aggregated frisks by space and time.

  1. Below the ribbon, click the New Orleans 3D tab.
  2. In the Geoprocessing pane, click the back button. Search for and open the Visualize Space Time Cube in 3D tool.
  3. For Input Space Time Cube, click the Browse button. Browse to the folder that contains the Police Stops project and select Frisk_Tracts_4Weeks.nc.

    Frisk_Tracts_4Weeks.nc in the file browser

    This is the space-time cube that you created earlier.

  4. Click OK.
  5. For Cube Variable, choose COUNT. For Display Theme, choose Value.
  6. For Output Features, erase the existing text and type Frisks3D.

    Visualize Space Time Cube in 3D tool

  7. Click Run.

    A new layer appears on the scene, displaying the space-time cube in three dimensions.

    Three-dimensional visualization of the space-time cube

    Each column represents a census tract. Each column is made of a stack of bins, and each bin represents a time step of 4 weeks. The bins at the bottom are older (June 2011) and the bins at the top are more recent (June 2018). The darker the color of the bin, the more frisks that occurred in that space and time.

  8. On the ribbon, click the Map tab. In the Navigate group, click Bookmarks and click New Orleans.

    The map zooms to the downtown area, which has more frisks. Many areas show a banded pattern, where periods of frisking are separated by periods of no frisks.

Analyze trends in frisks over space and time

Now that you have visualized and understand the three-dimensional structure of a space-time cube, you'll apply a 2D visualization that will summarize the trends present in the data.

  1. Below the ribbon, click the New Orleans tab to return to the 2D map.
  2. In the Geoprocessing pane, click the back button. Search for and open the Visualize Space Time Cube in 2D tool.
  3. For Input Space Time Cube, click the Browse button. Find and select Frisk_Tracts_4Weeks.nc. Click OK.
  4. For Cube Variable, choose COUNT. For Display Theme, choose Trends.

    The Display Theme parameter determines how the space-time cube will be symbolized on the map. The Trends option shows where values have been increasing or decreasing over time, calculated using the Mann-Kendall statistic.

  5. Check the Enable Time Series Pop-ups box. For Output Features, type Frisk_Trends.

    Visualize Space Time Cube in 2D tool

  6. Click Run.

    A new layer appears on the map.

  7. In the Contents pane, read the legend to understand the symbols on the map.

    Legend in Contents pane

    Green areas experienced downward trends, meaning most time steps had a decrease in the number of frisks compared to the previous time step. Purple areas experienced upward trends, meaning most time steps had an increase compared to the previous time step. White areas experienced no significant trend. The different shades of green and purple relate to the significance of the trend.

    Trend map with green and purple areas

    Previously, there were so many points on the map that it was impossible to detect spatial or temporal patterns. Now you are able to observe that there are increases of frisk incidents near the center of New Orleans and decreases of frisks in many other parts of the city.

  8. Drag the Neighborhoods layer to the top of the Contents pane.

    Neighborhoods layer in Contents pane

  9. Zoom to the Treme-Lafitte bookmark.

    The map zooms in to the Treme-Lafitte neighborhood, which displays an upward trend in frisks across the span of the data.

    Treme-Lafitte neighborhood on map

  10. Click the northernmost census tract in the Treme-Lafitte neighborhood.

    A pop-up appears, displaying a time series chart, which illustrates the increasing trend of frisks in this area.

    Chart in pop-up

  11. Close the pop-up.

    The Mann-Kendall statistic evaluates each location’s trends. Though a location may show an increasing trend, this does not necessarily mean a location has high values. Next, you will use the Emerging Hot Spot Analysis tool to evaluate where there is clustering in high frisk counts considering both space and time.

Find hot spots of frisks

Emerging hot spot analysis will allow you to interpret patterns in police frisks across space and time. For each space-time bin, the tool will create a local neighborhood in space and time of other nearby bins. It will compare the average count of frisks in the local neighborhood to the average count of frisks across all of New Orleans. The tool will use these comparisons to identify areas in the city where particularly high (hot spots) or low (cold spots) counts of frisks are clustered.

  1. In the Geoprocessing pane, click the back button. Search for and open the Emerging Hot Spot Analysis tool.

    For Input Space Time Cube, click the Browse button. Find and select Frisk_Tracts_4Weeks.nc. Click OK.

  2. For Analysis Variable, choose COUNT. For Output Features, type Frisks_HotSpot.
  3. For Conceptualization of Spatial Relationships, choose K nearest neighbors.

    The default method for this parameter is to define the neighborhood of each bin based on a fixed distance. However, census tracts have uneven shapes and sizes, so you'll use the K nearest neighbors method instead, which ensures that each neighborhood contains a set number (k) of neighbors.

    For this analysis, you'll define the spatial neighborhood of each bin as its own tract, plus its eight nearest tracts in space.

  4. For Number of Spatial Neighbors, accept the default value of 8.

    Neighborhoods can also compare data across time steps. For this analysis, you'll define the temporal neighborhood of each bin as its own time step, plus one previous time step, for a total of eight weeks.

  5. For Neighborhood Time Step, type 4.
  6. For Define Global Window, choose Neighborhood Time Step.

    For each tract in each time step, the analysis will create a neighborhood that is composed of eight nearest neighboring tracts, including tracts in the previous four time steps. The average frisk count in each neighborhood will then be compared with the average frisk count across all of New Orleans for each neighborhood time step.

    Emerging Hot Spot Analysis tool parameters

    Note:

    These parameters are a starting point only. Experimentation is encouraged and necessary to determine the best combination of parameters for each dataset and analysis question.

  7. Click Run.

    A new layer appears on the map.

  8. In the Contents pane, right-click Frisks_HotSpot and click Zoom To Layer.

    Emerging hot spot analysis results on the map

  9. In the Contents pane, read the legend to understand the symbols on the map.

    Legend explaining hot and cold spot symbols

    Red areas are hot spots, or areas that had significantly more frisks than the city average. Blue areas are cold spots, or areas with significantly fewer frisks. The different symbol patterns relate to how frisk counts in that tract changed over time.

    Note:

    To learn more about the symbol classes, read How Emerging Hot Spot Analysis works.

    There are areas with statistically significant hot spots of frisk incidents near the center of New Orleans.

  10. In the Contents pane, drag the Neighborhoods layer to the top.
  11. Zoom to the Hot Spots bookmark.

    The map zooms in to the neighborhoods where the Emerging Hot Spot Analysis tool has found statistically significant spatiotemporal hot and cold spots of frisks.

    The map shows you where statistically significant clustering of high and low frisk counts occurred in New Orleans from 2011 through 2018. The neighborhoods of the French Quarter and the Central Business District (CBD) are intensifying hot spots of frisk counts. The adjacent neighborhoods are sporadic hot spots.

    Frisk hot spots on the map

    • An intensifying hot spot is a location that has been a statistically significant hot spot for 90 percent of the time-step intervals, including the final time step. In addition, the intensity of clustering of high counts in each time step is increasing overall, and that increase is statistically significant.
    • A sporadic hot spot is a location that is an on-again, off-again hot spot. Less than 90 percent of the time-step intervals have been statistically significant hot spots and none of the time-step intervals have been statistically significant cold spots.

    Previously, you identified areas of New Orleans where frisks were increasing or decreasing. This new map shows you where the number of frisks are significantly higher or lower compared to the rest of the city and provides information about how frisk patterns have changed over time. The Treme-Lafitte neighborhood, which displayed an upward trend in frisks in the previous analysis, is found to also be a statistically significant hot spot of frisks.

Find hot spots of frisk rates

The emerging hot spot analysis that you conducted shows you that the downtown area of New Orleans is a hot spot for frisk counts. However, it's not surprising that more stops and frisks happen in dense, busy, downtown neighborhoods. Next, you'll find hot spots of frisk rates instead of counts, so you can find those neighborhoods where a police stop is more likely to escalate to a frisk.

  1. In the Contents pane, uncheck and collapse the following layers:
    • Frisks_HotSpot
    • Frisk_Trends
    • Race/Ethnicity by Tract (2015-2019)
    • Frisk Locations (2011-2018)
  2. Turn on and expand the All Stop Locations (2011-2018) layer.

    Collapsed layers in the Contents pane

    Before, you analyzed frisk locations. Next, you'll analyze frisks as they compare to all police stops.

  3. In the Geoprocessing pane, search for and open the Encode Field tool.

    This tool encodes categorical values into numerical fields. You'll convert the frisk_performed field (with TRUE and FALSE values) to a numerical field (with 0 and 1 values). Encoding your data in this way will allow you to use it with the Emerging Hot Spot Analysis tool.

  4. For Input Table, choose All Stop Locations (2011-2018). For Field to Encode, choose frisk_performed.
  5. For Encoding Method, choose One-hot.

    This method will ensure that stops where a frisk was performed will receive a value of 1 and stops where no frisk was performed will receive a value of 0.

    Encode Field tool

  6. Click Run.

    No change is visible on the map. Two new fields have been added to the All Stop Locations (2011-2018) layer. They will allow you to create a space-time cube that models frisk rates instead of frisk counts.

  7. In the Geoprocessing pane, search for and open the Create Space Time Cube By Aggregating Points tool.
  8. Enter the following parameters:
    • For Input Features, choose All Stop Locations (2011-2018).
    • For Output Space Time Cube, type FriskRates_Tracts_4Weeks.
    • For Time Field, choose date.
    • Leave the Template Cube parameter blank.
    • For Time Step Interval, type 4 and choose Weeks.
    • For Time Step Alignment, choose End time.
    • For Aggregation Shape Type, choose Defined locations.
    • For Defined Polygon Locations, choose Race/Ethnicity by Tract (2015-2019).
    • For Location ID, choose Tract Numeric ID.

    Create Space Time Cube By Aggregating Points tool parameters

    With the exception of the Input Features and Output name, these parameters are identical to the ones you used to create the last space-time cube.

  9. Under Summary Fields, set the following parameters:
    • For Field, choose ONEHOT_frisk_performed_TRUE.
    • For Statistic, choose Mean.
    • For Fill Empty Bins with, choose Zeros.

    Summary Fields parameters

    These parameters will calculate the mean frisk rate for each bin in the space-time cube, instead of the frisk count.

  10. Click Run.

    The space-time cube is created, but it does not appear on your map. Next, you'll visualize it with the Emerging Hot Spot Analysis tool.

  11. In the Geoprocessing pane, search for and open the Emerging Hot Spot Analysis tool. Enter the following parameters:
    • For Input Space Time Cube, click the Browse button. Find and select FriskRates_Tracts_4Weeks.nc. Click OK.
    • For Analysis Variable, choose ONEHOT_FRISK_PERFORMED_TRUE_MEAN_ZEROS.
    • For Output Features, type FriskRates_HotSpot.
    • For Conceptualization of Spatial Relationships, choose K nearest neighbors.
    • For Number of Spatial Neighbors, accept the default value of 8.
    • For Neighborhood Time Step, type 4.
    • For Define Global Window, choose Entire cube.

    Emerging Hot Spot Analysis tool parameters

    These parameters are almost the same as the ones you set the last time you ran the Emerging Hot Spot Analysis tool. This time, you chose Entire cube for the Define Global Window parameter (instead of the neighborhood time step) because you are analyzing frisk rates instead of frisk counts, which are less susceptible to population changes. The tool will compare neighborhoods across the entire time span of the data and the whole city.

  12. Click Run.

    The FriskRates_HotSpot layer appears on the map.

    This layer displays the proportion of pedestrian and traffic stops that escalated to a frisk—in other words, areas of the city where a higher proportion of stops escalated to a frisk.

  13. In the Contents pane, drag the Neighborhoods layer to the top of the list. Turn off and collapse the All Stop Locations (2011-2018) layer.
  14. Turn on the Frisks_HotSpot layer. Turn the FriskRates_HotSpot layer off and on to compare it to the layer underneath.

    FriskRates_HotSpot layer in the Contents pane and map

    The CBD was a hot spot of frisks, but not of frisk rates. This means the CBD had high numbers of frisks, but the number of frisks in relation to the number of stops is not significantly high compared with the rest the city. In contrast, Gert Town was not a hot spot of frisks, but it was a hot spot of frisk rates: in this location, the frisks are not high, but the proportion of frisks to stops is high.

    You'll compare these results with the predominant race and ethnicity in each tract.

  15. In the Contents pane, turn off the Frisks_HotSpot layer. Turn on the Race/Ethnicity by Tract (2015-2019) layer.
  16. Turn the FriskRates_HotSpot layer off and on to compare it to the layer underneath.

    FriskRates_HotSpot layer compared to the Race/Ethnicity by Tract layer

    The yellow areas in the Race/Ethnicity by Tract (2015-2019) layer correspond to predominantly Black or African American tracts. A visual comparison between these two layers suggests that the decision to frisk took place in a higher proportion of stops in neighborhoods that are predominantly Black.

  17. Save the project.

In this module, you created a space-time cube from frisk incident data. You used the space-time cube to find trends and statistically significant hot and cold spots for frisk counts in New Orleans. Then you built a second space-time cube using frisk rates, conducted a second emerging hot spot analysis, and used the results to analyze patterns in the decision to frisk during a stop in New Orleans. You found hot spots of frisk counts in some of the busier areas of the city, such as the CBD and the French Quarter. You also found hot spots of frisk rates in predominantly Black neighborhoods near downtown.


Analyze racial disproportions in police stops

You’ve explored police stops and frisks in Nashville using charts and frisks in New Orleans using an emerging hot spot analysis. Next, you’ll explore the distribution of pedestrian stops by race in each neighborhood in San Antonio, Texas. You’ll create a disparity index to find the neighborhoods where the proportion of people of a certain race who were stopped is greater than the proportion of the neighborhood that race represents.

A disparity index analysis assumes that the people who are stopped in a neighborhood also live there. This assumption will not always be true, but it is more likely for pedestrian stops (Hannon, 2019), so you'll exclude vehicular stops from your analysis. Additionally, Hannon (2019) finds that racial disparities proven by this metric are reduced but persist even when nonresidents are removed. This metric is also commonly used by the American Civil Liberties Union (ACLU) in their investigations of policing disparities across the United States, for example, in New York City, New York; Washington, DC; and Philadelphia, Pennsylvania. Even when stops of nonresidents of a neighborhood occur, it still impacts the community, which makes the disparity index a useful metric despite this assumption.

Measure the percent of stops in each tract by race

First, you'll calculate the percent of stops in each tract that happened to Black people, White people, and Hispanic people. You'll need these values later to calculate a disparity index. A disparity index can be created for each race and ethnicity, but for this tutorial, you'll only measure disparity for Black, White, and Hispanic people.

  1. If necessary, open the Police Stops project in ArcGIS Pro. Below the ribbon, click the San Antonio map tab.

    San Antonio map

    The map shows the boundary of the city of San Antonio, and census blocks symbolized by predominant race and ethnicity. Unlike Nashville and New Orleans, San Antonio has a majority of tracts that are predominantly Hispanic or Latino, represented on the map with the green color.

  2. In the Contents pane, turn on the Pedestrian Stops (2012-2018) layer.

    Point data appears on the map, clustered mainly in the center of the city. This layer contains pedestrian stops only. It is from the Stanford Open Policing Project.

    Points on map

  3. In the Geoprocessing pane, search for and open the Summarize Within (Analysis Tools) tool.

    You'll use this tool to count the pedestrian police stops that occurred in each tract, with the results grouped by the race and ethnicity of the stopped person.

  4. For Input Polygons, choose Race/Ethnicity by Tract (2015-2019).

    This layer is derived from the same ACS dataset as the Race/Ethnicity by Tract (2015-2019) layer that you used in New Orleans. In San Antonio, however, the tract boundaries do not match the city boundary, and for this analysis it’s important that the tracts fall predominantly within the city. Therefore, tracts with more than 10 percent of their area outside of the city were removed.

  5. For Input Summary Features, choose Pedestrian Stops (2012-2018). For Output Feature Class, type RacialDisparityByTract.
  6. Leave the Summary Fields section empty. For Group Field choose subject_race.

    More parameters appear.

  7. Check the Add group percentages box. For Output Grouped Table, accept the default name subject_race_Summary.

    Summarize within tool parameters

  8. Click Run.

    The tool may take a few minutes to run. When it has completed, a new feature layer (DisparityByTract) is added to the map. This layer is identical to the Race/Ethnicity by Tract (2015-2019) layer, with an additional field that counts the number of stops in each tract. You no longer need the original layer, so you'll remove it.

  9. In the Contents pane, right-click Race/Ethnicity by Tract (2015-2019) and click Remove.

    The tool also created a new table named subject_race_Summary. This table counts the number of stops of each race in each tract. You'll join the race information from the table to the feature layer, but you need to pivot the table first.

  10. In the Contents pane, right-click the subject_race_Summary table and click Open.

    Attribute table

    The new table contains the counts and percentages of stops in each tract, split by race. The Join ID field indicates the tract. Each tract has multiple rows, one for each race. You'll pivot this table so it has only one row for each tract.

    Note:

    The Pivot Table tool requires an advanced license. If you do not have an advanced license, you can skip to step 14 and use subject_race_Summary_ready instead of subject_race_Summary_Pivot.

  11. In the Geoprocessing pane, search for and open the Pivot Table tool.
  12. In the Pivot Table tool, fill in the following parameters:
    • For Input Table, choose subject_race_Summary.
    • For Input Field(s), choose Join_ID.
    • For Pivot Field, choose subject_race.
    • For Value Field, choose PercentCount.
    • For Output Table, change the name to subject_race_Summary_Pivot.

    Pivot Table parameters

  13. Click Run.
  14. Close the subject_race_Summary table and open the subject_race_Summary_Pivot table.

    Pivoted table

    The table has 260 rows—one for each tract—and a field for each race category. The values represent the percentage of stops in the tract that happened to people of that race. For example, in the tract with OBJECTID 1, 28 percent of people stopped were Hispanic.

Join summary values to a spatial layer

You'll join the black, white, and hispanic fields from the summary table to the RacialDisparityByTract layer so you can visualize these values on the map.

  1. In the Contents pane, turn off the Pedestrian Stops (2012-2028) layer.
  2. In the Geoprocessing pane, search for and open the Join Field tool.
  3. Enter the following parameters:
    • For Input Table, choose RacialDisparityByTract.
    • For Input Join Field, choose Join_ID.
    • For Join Table, choose subject_race_Summary_Pivot.
    • For Join Table Field, choose Join_ID.
    • For Transfer Fields, choose black, hispanic, and white.

    Join Field tool parameters

    Note:

    For this tutorial, you will only analyze three racial groups. It is best practice to consider data for all racial and ethnic groups in a given population when conducting a racial equity analysis. You are encouraged to use the workflow of this tutorial to analyze the disparity between other racial and ethnic groups on your own.

  4. Click Run.

    The black, white, and hispanic fields are added to the RacialDisparityByTract layer. You'll rename these fields to make it clearer what they refer to.

  5. In the Contents pane, right-click RacialDisparityByTract, point to Data Design, and click Fields.

    Fields option in the Data Design context menu

    The Fields table appears.

  6. Scroll to the bottom of the table. In the Field Name column, change black to PercentStopsBlack, hispanic to PercentStopsHispanic, and white to PercentStopsWhite.
  7. In the Alias column, change black to Percent of Stops Black. Change hispanic to Percent of Stops Hispanic. Change white to Percent of Stops White.

    New field names and aliases

    You'll also hide some of the fields. This will make finding and comparing the fields you are interested in easier later on.

  8. Uncheck the box on the header of the Visible column to uncheck all rows.

    Visible column unchecked

  9. Check the Visible check box for the following field aliases:
    • NAME
    • Total Population
    • Percent of Population that is White alone, Non-Hispanic
    • Percent of Population that is Black or African American alone, Non-Hispanic
    • Percent of Population that is Hispanic or Latino
    • Count of Points
    • Percent of Stops Black
    • Percent of Stops Hispanic
    • Percent of Stops White

    Checked fields

  10. On the ribbon, on the Fields tab, in the Changes group, click Save.

    Save button on the ribbon

  11. Close the Fields view and the subject_race_Summary_pivot table.
  12. In the Contents pane, right-click RacialDisparityByTract and click Attribute Table.

    The attribute table appears.

  13. Scroll to the end of the table.

    The three joined fields show their new names. These new fields show the percentage of stops in each tract where the stopped person was Black, Hispanic, and White. Next, you'll symbolize one of these fields on the map.

  14. Close the attribute table.
  15. In the Contents pane, right-click the RacialDisparityByTract layer and click Symbology.

    The Symbology pane appears.

  16. In the Symbology pane, for Primary Symbology, choose Unclassed Colors.
  17. For Field, choose Percent of Stops Hispanic.

    Map with blue color scheme

    The map shows that higher percentages of stops happen to Hispanic people in the southern half of the city.

  18. On the Quick Access Toolbar, click the Undo button twice, or until the map is green again. Close the Symbology pane.

    Undo button

    The RacialDisparityByTract layer returns to its original symbology. It shows that more Hispanic people live in the southern part of the city, so perhaps it is expected that more Hispanic people are stopped there. Next, you’ll learn how to calculate a disparity index that takes into account the demographics of each neighborhood.

Calculate a disparity index

Next, you'll add two more fields to calculate disparity index values for each tract. These will help you identify neighborhoods where a certain race was stopped out of proportion compared to the local population.

  1. Reopen the attribute table for the RacialDisparityByTract layer.
  2. On the toolbar above the table, click the Calculate button.

    Calculate button

    The Calculate Field window appears.

  3. For Field Name (Existing or New), type DisparityBlack and press Tab.

    A new parameter named Field Type appears because you are creating a new field instead of choosing an existing one.

  4. For Field Type, choose Float (32-bit floating point). For Expression Type, choose Arcade.
  5. For DisparityBlack =, type or copy and paste $feature.PercentStopsBlack - $feature.B03002_calc_pctBlackE.
    Tip:

    You can also build this expression by double-clicking the field names in the Fields list.

    Calculate Field tool parameters

    This expression will subtract the Percent of Population that is Black or African American value from the Percent of Black Stops value.

  6. Click Apply.

    A new field named DisparityBlack appears at the end of the attribute table.

  7. On the Calculate Field dialog box, update the following parameters:
    • For Field Name, type DisparityWhite and press Tab.
    • For Expression, type or copy and paste $feature.PercentStopsWhite - $feature.B03002_calc_pctNHWhiteE.
  8. Click Apply.

    A new field named DisparityWhite appears in the attribute table.

  9. On the Calculate Field dialog box, update the following parameters:
    • For Field Name, type DisparityHispanic and press Tab.
    • For Expression, type or copy and paste $feature.PercentStopsHispanic - $feature.B03002_calc_pctHispLatE.
  10. Click OK.
  11. Scroll to the end of the RacialDisparityByTract attribute table.

    The three new fields are available.

    New fields in the attribute table

    The values stored in these fields represent the difference between the percentage of the population that is Black, White, or Hispanic and the percentage of pedestrian police stops where the subject was Black, White, or Hispanic. These three disparity indices measure the difference between who lives in a neighborhood and who in that neighborhood was stopped by police.

  12. Close the attribute table.

Visualize a disparity index

Next, you’ll visualize the disparity index for Black people on a map, to see if there are any spatial patterns.

  1. In the Contents pane, right-click RacialDisparityByTract and click Symbology.
  2. In the Symbology pane, for Primary Symbology, choose Unclassed Colors. For Field, choose DisparityBlack.
  3. Click the Color scheme menu and check the Show names and Show all boxes. Scroll more than half way down the list and choose the Purple-Green (Continuous) color scheme.

    Purple-Green (Continuous) color scheme and Show names and Show all check boxes

  4. Click the More button and click Reverse color scheme.

    Reverse color scheme option in the More menu

    This is a diverging color scheme, meaning it has two colors (green and purple) diverging away from a central, neutral color (white). This type of color scheme is useful for mapping disparity, but only if the central white color aligns with a disparity value of zero. Zero disparity means that the percentage of Black people stopped is the same as the percentage of Black people who live in that neighborhood.

    The symbology histogram shows a minimum value of -20 and a maximum value of 31. These numbers have to be an equal distance from zero to ensure that a disparity value of zero aligns with the white color.

  5. In the Symbology pane, double click the -20 label above the histogram and type -31. Press Enter.

    Top label on the symbology histogram

    The possible color range now extends beyond the data range.

  6. Drag the -20 hand to the top of the histogram, so it also reads -31.

    Handle moved to -31 on the symbology histogram

    Now the symbology is distributed evenly. In the purple tracts, stops are disproportionately high for Black people, meaning that the percentage of Black people stopped is greater than the percentage of Black people living in the tract. This is true for 208 of the 260 (80 percent) tracts in the city. The map is now mostly purple. This pattern wasn't evident before you adjusted the symbology histogram.

    Map of police stops disparity for Black people

    In the green tracts, the opposite is true: the percentage of Black people stopped is lower than the percentage of Black people living in the tract. This is true for 50 of the tracts (19 percent) in the city.

  7. On the map, click one of the tract polygons to view its pop-up. Compare the values for Percent of Population that is Black or African American with Percent of Stops Black and DisparityBlack.

    Fields in the pop-up window

    In this example tract, 13.2 percent of people stopped were Black, but only 3.9 percent of people who live in the tract are Black. The disparity index for black people (the DisparityBlack field) represents the difference between these two values.

  8. Close the pop-up.

Compare disparity across three race categories

You'll make two copies of the RacialDisparityByTract layer so you can visualize disparity for White and Hispanic people as well as for Black people. You'll set up consistent symbology properties for the three layers so you can visually compare racial disparity across the three race categories.

  1. In the Contents pane, right-click RacialDisparityByTract and click Copy. Right-click the San Antonio map and click Paste. Right-click San Antonio again and click Paste again.

    Paste in the map's content menu

    There are now three identical RacialDisparityByTract layers in the Contents pane.

  2. Rename the layers Disparity Black, Disparity White, and Disparity Hispanic.
  3. Reorder the layers in the Contents pane so the San Antonio line layer is on the top, with the three Disparity layers immediately below it.

    It does not matter what order the three Disparity layers are in.

    Legends in the Contents pane

  4. Open the Symbology pane for the Disparity White layer. Change Field to DisparityWhite.

    Field set to DisparityWhite in the Symbology pane

  5. Open the Symbology pane for the Disparity Hispanic layer. Change Field to DisparityHispanic.
  6. In the Contents pane, compare the data ranges for the three Disparity layers.

    Legends with different value ranges

    Currently, a dark purple color in one layer represents a disparity value of 13, while in another layer, it represents a much higher disparity value of 63. To make a fair visual comparison, you'll use a consistent symbology range across all layers. This will ensure that a dark purple or dark green color means the same thing in every map.

  7. Open the Symbology pane for the Disparity Black layer.
  8. Edit the minimum and maximum labels on the histogram to -64 and 64. Drag the histogram handles to -64 and 64.

    Symbology histogram ranging between 64 and negative 64

    Tip:

    Symbology histogram values are not able to cross one another, so they must be edited in a specific order.

  9. Edit the histograms for the Disparity White and Disparity Hispanic layers so they also range from -64 to 64.

    Legends with matching value ranges

    Now that the symbology is aligned, you can make visual comparisons across the three Disparity layers.

  10. In the Contents pane, press the Alt key and click the check box for the Disparity Black layer.

    All layers disappear from the map except for Disparity Black.

  11. Press the Alt key and check the check boxes for the Disparity White and Disparity Hispanic layers to view each of them in turn.

    Comparison of maps showing disparity for Black, White, and Hispanic people
    The image shows from left to right the disparity index for Black, White, and Hispanic people, where purple means higher disparity, green means lower disparity, and white means no disparity.

    As before, most tracts in the Disparity Black map are purple. The colors are lighter because the value range is larger.

    In the Disparity White map, almost every tract is purple. This map shows that across most of the city, pedestrian police stops were disproportionately high for White people. The shades of purple are also darker than in the previous map, meaning that the magnitude of disparity is greater.

    In the Disparity Hispanic map, almost every tract is green, showing that pedestrian police stops were disproportionately low for Hispanic people.

  12. On the map, click the darkest green tract in the south of the city.

    Dark green tract in the south of the city

  13. In the tract's pop-up, compare the values that relate to the White and Hispanic populations.

    Pop-up fields

    In this tract, 8.4 percent of the population is White and 91.6 percent is Hispanic or Latino. However, 72.2 percent of stops were White and only 27.8 percent of stops were Hispanic. If we assume that all of the people stopped in this tract were residents, it would mean the police were stopping White people about 8 times more than their population. The purple and green maps show that this pattern is repeated throughout the city: pedestrian police stops are disproportionately low for Hispanic or Latino people, and disproportionately high for White people. This pattern seems unusual.

    You don't have enough information to make conclusions about this pattern. However, one possible explanation may be that many Hispanic people have been classified as White, or another race category.

    The DisparityHispanic field was calculated using data that was collected in two different ways. For the population data, the U.S. census first asked respondents if they were of Hispanic, Latino, or Spanish origin; then, in a separate question, they asked their race. You don't know how the police data was collected, but the available race categories suggest it was a single question. You also don't know if the race recorded in the citation was identified by the police officer or the person they stopped. It's possible that many of the people in San Antonio who were counted as Hispanic in the census were counted as White in the police stop data. This inconsistency and lack of knowledge about the data leaves your results unreliable.

    Note:

    Race and ethnicity, their intersection, and how they are encoded into data is a complicated and continually evolving topic. An analyst who is seeking to perform an equitable analysis using race and ethnicity data should ensure they understand how the data was collected to be clear if results are being correctly interpreted. You can read more about this subject in the following articles:

  14. Close the pop-up and save the project.

In this module, you measured the racial disparity of police stops in each tract in San Antonio. You found that in most tracts, the percentage of stops that happened to Black people was higher than the percentage of people living in the tract who are Black. However, you were unable to draw reliable conclusions about disparities for White and Hispanic people due to probable differences in how race was collected in the police data versus the census-derived population data.


Measure the colocation of stops and crime

From a policing perspective, the use of pedestrian stops is justified as a form of proactive policing in high-crime areas to prevent crimes and deter potential offenders.

Evaluations of focused uses of SQF [Stop-question-frisk] targeting places with violence or serious gun crimes and focusing on high-risk repeat offenders consistently find short-term crime reduction effects — "A Number of Proactive Policing Practices Are Successful at Reducing Crime; Insufficient Evidence on Role of Racial Bias," The National Academies of Sciences, Engineering, Medicine, 2017.

However, a wide body of research (Carvalho, Mizael, and Sampaio 2021) found that police stops still disproportionately target Black people and communities.

In this module, you'll use data from New York City and colocation analysis to test the police justification that stops occur in high violent crime neighborhoods. Then you'll identify tracts where stops were mostly isolated from violent crimes and explore racial disparity in police stops there.

Explore the disparity index for New York City

First, you'll explore the disparity index for New York City, which has already been calculated for you. You'll use this to gain some context of who is being stopped in New York City, before conducting the colocation analysis. Later, you'll compare the results of the colocation analysis with the disparity index.

  1. If necessary, open the Police Stops project in ArcGIS Pro. Below the ribbon, click the New York City map tab.

    Map of police stops disparity for White people

    The map shows the disparity index for non-Hispanic Black people. It was created using the same methods described in the previous module.

    Note:

    If the map does not display the disparity index layer, in the Contents pane, drag the New York City layer to the bottom of the content list.

    Reordered layers in the Contents pane

    The majority of tracts are purple, meaning they have a high disparity for non-Hispanic Black people. This means non-Hispanic Black people are being stopped more than you would expect given the percentage that live in the tract where they were stopped. The colors range from -100 to 100, meaning that for at least one of the dark purple tracts, 100 percent of the people stopped and 0 percent of the people living there were Black and non-Hispanic.

    Some of the tracts are missing. These are tracts where no non-Hispanic Black people live or were stopped according to the datasets used.

  2. Open the Symbology pane for the Racial Disparity by Tract layer.
  3. In the Symbology pane, change Field to Disparity White Not Hispanic.

    Map of police stops disparity for White people

    In this map, the majority of tracts are green, meaning fewer non-Hispanic White people were stopped than the percentage who live in the tract.

    Note:

    Three other disparity indices are included as fields in the layer, which you can explore: Disparity API (Asian and Pacific Islander), Disparity Black Hispanic and Disparity White Hispanic. To make fair comparisons across fields, the symbology histogram should use a consistent value range (-100 to 100).

    Next, you'll explore the police stop data that was used to create these disparity indices.

  4. In the Contents pane, turn off the Racial Disparity by Tract layer and turn on Pedestrian Stops (2017-2020).

    This layer represents each pedestrian police stop between January 1, 2017, and December 31, 2020. This layer is from The Stop, Question and Frisk Data provided by the New York Police Department (NYPD) via NYC OpenData.

  5. In the Contents pane, right-click Pedestrian Stops (2017-2020) and click Data Engineering.

    The Data Engineering view appears.

  6. Above the fields pane, in the search bar, type race. In the fields panel, right-click SUSPECT_RACE_DESCRIPTION and click Add To Statistics And Calculate.

    Add To Statistics and Calculate

    A table row appears in the statistics panel. The Number of Unique Values column tells you that there are 11 different race categories in this dataset. The Mode column tells you that the most common race value is BLACK.

  7. Point to the Chart Preview cell.

    Chart Preview cell pop-up

    A pop-up window appears, showing the breakdown of the top 10 categories in this field. The police stop data for New York City encodes race and ethnicity differently than the data for San Antonio: there are separate categories for BLACK and BLACK HISPANIC.

    The census demographic data used to calculate the disparity index was encoded in the same way. In San Antonio, you weren't able to make proper racial disparity comparisons because the police stop data and the demographic data were collected differently. In New York City, you can.

    Note:

    The demographic data used to calculate the disparity indices was added via the Enrich geoprocessing tool, using variables from the 2015-2019 Race and Hispanic Origin (ACS) category. To learn how to enrich layers in ArcGIS Pro, try the Compare sites for a retail bookstore tutorial.

  8. Close the Data Engineering view.

Conduct a colocation analysis of stops with crimes

You'll use colocation analysis to measure whether each pedestrian stop in New York City from 2017 through 2020 was colocated (close) or isolated (far away) from violent crimes. You'll measure the colocation in both space and time.

  1. In the Contents pane, turn off Pedestrian Stops (2017-2020) and turn on the Violent Crime (2017-2020) layer.

    The purple points represent reported part 1 violent crimes for the same time period. This layer is from the NYPD Complaint Data Historic dataset on NYC OpenData. Part 1 violent crimes are defined by the Uniform Crime Reporting (UCR) program as criminal homicide, forcible rape, robbery, and aggravated assault.

    All data contains bias. Thinking critically about what data should be used helps to limit the effect of bias in your analysis. Crime data can be particularly biased, often due to underreporting (for example, a victim may not report a crime due to fear) or variations in police patterns and practices (for example, more crimes may be reported in a neighborhood that is heavily policed). For this analysis, you will only assess the locations of Part 1 violent crimes, rather than all crimes in New York City. These crime types were chosen for two reasons: first, because they are the most serious and the most likely to be consistently reported. Second, because the justification for the practice of pedestrian police stops is to target areas with high rates of violent crimes specifically.

    You'll measure where the police stop data is colocated with the violent crime data, and where it is not.

  2. Open the Geoprocessing pane. Search for and open the Colocation Analysis tool.

    For each police stop feature, colocation analysis will evaluate the crime features within its neighborhood. If a stop has more crimes located nearby—more precisely, if the proportion of crimes in a stop's neighborhood is greater than the proportion of crimes in the entire area—the stop is considered colocated with crimes. If a stop has fewer crimes located nearby, it is considered isolated from crimes.

  3. In the Geoprocessing pane, set the following parameters:
    • For Input Type, choose Datasets without Categories.
    • For Input Features of Interest, choose Pedestrian Stops (2017-2020).
    • For Time Field of Interest, choose STOP_FRISK_DATE_Converted.
    • For Input Neighboring Features, choose Violent Crime (2017-2020).
    • For Time Field of Neighboring Features, choose CMPLNT_FR_DT.

    You chose the CMPLNT_FR_DT (Complaint From Date) field because the other date field (CMPLNT_TO_DT) contains null values.

    Colocation Analysis tool preview

    You were asked to choose time fields because this tool will search for crime features that are nearby in both space and time. You'll define the spatial neighborhood of each stop as half a mile, and the temporal neighborhood as one year before the stop occurred.

  4. Set the following parameters:
    • For Distance Band, type 0.5 and choose US Survey Miles.
    • For Temporal Relationship Type, choose Before.
    • For Time Step Interval, type 1 and choose Years.
    • For Number of Permutations, accept the default value of 99.
    • For Output Features, type Stops_Crime_Colocation.

    Colocation Analysis tool preview

    This neighborhood definition was chosen based on assumptions of how long ago and how far away a crime could be to influence a future stop. These are starting parameter values only—you can iterate on the analysis with different values afterwards.

  5. Click Run.

    A new layer, named Stops_Crime_Colocation, is added to the Contents pane.

  6. Turn off the Violent Crime (2017-2020) point layers.
  7. In the Contents pane, read the legend for the Stops_Crime_Colocation layer.

    Legend for the Stops_Crime_Colocation layer

    Each stop is categorized by whether it is colocated or isolated from crime, and whether this relationship is statistically significant. The Undefined category means there were no crime features in the stop's neighborhood, so colocation could not be evaluated.

    A significant colocation does not necessarily mean a high count of stops or crime. It only means that the proportion of crime in the neighborhood of the stop was higher than the overall proportion between crime and stops.

    Some of your results are unreliable. For example, a stop from January 1, 2017 may appear isolated since there are no crimes prior to it, however it's not possible to determine if it is isolated or colocated since you don't have any crime data for 2016. You'll remove all of the stops from 2017 to limit your data to only the reliable results.

  8. In the Contents pane, right-click Stops_Crime_Colocation and click Attribute Table.

    The attribute table does not contain a date field, because this field is not part of the output from the Colocation Analysis tool. You'll add the date field back in from the original dataset using a join, and then remove stops from 2017.

  9. In the Geoprocessing pane, search for and open the Join Field tool.
  10. Enter the following parameters:
    • For Input Table, choose Stops_Crime_Colocation.
    • For Input Join Field, choose Source ID.
    • For Join Table, choose Pedestrian Stops (2017-2020).
    • For Join Table Field, choose OBJECTID.
    • For Transfer Fields, choose STOP_FRISK_DATE_Converted.

    Join Field tool parameters

    Note:

    If you are not seeing the field aliases for any attribute field inputs, click the Field list settings button, and choose Show Alias.

  11. Click Run.

    When the tool completes, a new field named STOP_FRISK_DATE_Converted appears in the attribute table. Now you are able to filter the data based on date.

  12. In the Contents pane, right-click Stops_Crime_Colocation and click Properties.
  13. In the Layer Properties window, click the Definition Query tab. Click New definition query.
  14. Use the menus to build the expression Where STOP_FRISK_DATE_Converted is on or after 1/1/2018.

    Definition query clause

  15. Click Apply and click OK.

    The map redraws, showing only those colocation results that are reliable. You filtered out the stops from 2017 after running the Colocation Analysis tool, instead of before, because the tool compares a global proportion to a local proportion. It's important to ensure that the global proportion is unaffected.

Identify areas where stops are isolated from crime

The map shows colocation results for individual stops, and their symbols overlap one another on the map. Next, you’ll focus on isolated stops, so you can identify those neighborhoods where pedestrian police stops had fewer violent crimes nearby. You'll aggregate the results into census tract polygons so you can better visualize patterns on the map.

  1. If necessary, open the attribute table for the Stops_Crime_Colocation layer.

    The LCLQ (Local Colocation Quotient) Type field in the table identifies if stops are colocated or isolated. You'll create a new field to identify just those stops that are isolated and significant.

  2. On the toolbar above the table, click the Calculate button. In the Calculate Field window, set the following parameters:
    • For Field Name (Existing or New), type IsolatedSignificant.
    • For Field Type, choose Short (16-bit integer).
    • For Expression Type, choose Arcade.
    • For Expression, type or copy and paste the following text:

      if ($feature.LCLQTYPE == "Isolated - Significant") {return 1}

      else {return 0}

    Calculate Field tool parameters

    This expression will assign a value of 1 to all of the significantly isolated stops, and 0 to all other stops.

  3. Click OK.

    A new field is added to the attribute table, identifying all of the significantly isolated stops.

  4. In the Geoprocessing pane, search for and open the Summarize Within (Analysis Tools) tool.

    You'll use the Summarize Within tool to count the number of significantly isolated stops that exist in each census tract.

  5. In the Summarize Within tool pane, set the following parameters:
    • For Input Polygons, choose Racial Disparity by Tract.
    • For Input Summary Features, choose Stops_Crime_Colocation.
    • For Output Feature Class, type IsolatedStopsByTract.
    • Under Summary Fields, for Field, choose IsolatedSignificant. For Statistic, choose Sum.

    Summarize Within tool parameters

  6. Click Run.

    When the tool completes, a new layer appears on the map, but it may not be visible due to all of the features in the colocation layer.

  7. In the Contents pane, turn off the Stops_Crime_Colocation layer and close its attribute table.
  8. Open the attribute table for the IsolatedStopsByTract layer. Scroll to the end of the table.

    The Sum isolatedsignificant and Count of Points fields were created by the Summarize Within tool. You'll use these fields to find the percentage of stops in each tract that are isolated from crime.

    New fields in the attribute table

  9. In the attribute table toolbar, click Calculate. In the Calculate Field window, set the following parameters:
    • For Field Name (Existing or New), type PercentIsolatedStops.
    • For Field Type, choose Float (32-bit floating point).
    • For Expression Type, choose Arcade.
    • For Expression, type or copy and paste $feature.SUM_IsolatedSignificant / $feature.Point_Count * 100.

    Calculate field tool parameters

    This expression will calculate the percent of stops in each tract that are significantly isolated.

  10. Click OK.

    When the tool has finished, some warning messages appear to tell you that the calculation failed for some records. This happened because some tracts have no stops.

  11. Close the Calculate Field window. Verify that a new field was added to the attribute table, and then close the table.
  12. Open the Symbology pane for the IsolatedStopsByTract layer. Change Field to PercentIsolatedStops.

    The values in this field range from zero to 100 percent, so the current diverging color scheme isn't appropriate. You'll choose a linear color scheme that ranges from a light color (representing less) to a dark color (representing more).

  13. Click the Color scheme menu and uncheck Show all. Choose the Blues (Continuous) color scheme.

    Map of percent of isolated stops

    On the map, dark blue tracts are those where most of the police stops were isolated—both spatially and temporally—from violent crime incidents. In these areas, the results contrast with the police justification that stops occur in areas with violent crimes.

Investigate disparity in areas where stops are isolated from crime

You've mapped the percentage of isolated stops in each census tract in New York City. Next, you'll select those tracts with a predominance of isolated stops and investigate the disparity index values for those tracts.

  1. In the Geoprocessing pane, search for and open the Select Layer by Attribute tool.
  2. For Input Rows, choose IsolatedStopsByTract. For expression, build the query Where PercentIsolatedStops is greater than 50.

    Expression clause in the Select Layer by Attribute tool

  3. Click Run.

    The darker blue tracts on the map are selected. Next, you'll gather statistics for this group of tracts.

  4. In the Geoprocessing pane, search for and open the Summary Statistics tool.
  5. For Input Table, choose IsolatedStopsByTract. For Output Table, type MostlyIsolatedStops_Summary.

    Only the selected features will be considered by the tool, so the outputs will only summarize those tracts where stops were mostly isolated from crimes.

  6. For Statistics Field(s), choose the following fields:
    • Percent Population Black Not Hispanic
    • Percent Population White Not Hispanic
    • Percent Stops Black Not Hispanic
    • Percent Stops White Not Hispanic
    • Disparity Black Not Hispanic
    • Disparity White Not Hispanic
    Note:

    If you are not seeing the field aliases for any attribute field inputs, click the Field list settings button, and choose Show Alias.

  7. For all fields, change the Statistic Type to Median.

    You chose median because it is an average value that is less affected by outliers than the mean.

    Summary Statistics tool parameters

  8. Click Run.
  9. At the bottom of the Contents pane, right-click the MostlyIsolatedStops_Summary table and click Open.

    The summary table provides the median values for all of the fields you listed, for the selected tracts. You can see that the median percent of the population that is Black and Not Hispanic is 4.61. Next you'll create the same table, but for all tracts.

  10. Right-click anywhere on the map and click Clear to clear the selection.
  11. In the Geoprocessing pane, change Output Table to AllStops_Summary.

    Summary Statistics tool with Output Table set to AllStops_Summary

    Do not change the Statistics Fields(s) setting.

  12. Click Run.
  13. Open the AllStops_Summary table. Drag and dock the table so it sits on top of the other one.

    Docking target above table

    Next you'll investigate the statistics you've summarized. These values can help you make assessments about racial disproportion in those police stops that aren't explained by the presence of violent crimes in the area.

  14. Compare the values in both tables for MEDIAN_Pct_Pop_BlackNotHispanic and MEDIAN_ Pct_Pop_WhiteNotHispanic.

    Median percent of population fields

    These fields represent the percent of the population that is Black, and the percent that is White.

    Tracts where police stops were mostly isolated from violent crimes (in the MostlyIsolatedStops_Summary table) are home to fewer Black people and more White people, compared to the city as a whole.

  15. Compare the values for MEDIAN_PercentStopsBlackNotHispanic and MEDIAN_PercentStopsWhiteNotHispanic.

    Median percent of stops fields

    The percentage of stops that happened to Black people and White people was very similar between the tracts where stops were mostly isolated from violent crimes, and the city as a whole. However, recall that the mostly isolated tracts are home to more White people, so under the assumption that stops occur to residents of a tract you would expect to see a higher percentage of White people being stopped.

  16. Finally, compare the values in both tables for MEDIAN_DisparityBlackNotHispanic and MEDIAN_DisparityWhiteNotHispanic.

    Median disparity fields

    These numbers confirm what you saw in the last step: tracts where police stops were mostly isolated from violent crimes (the darkest blue areas on the map) had a greater disparity index for Black people, and a lower one for White people, compared to the city as a whole.

    In the dark blue tracts, there were fewer previous crimes near each stop compared to the city as a whole. Either crimes were far away from the stops, or there was a higher density of stops in that area compared to crimes. The disparity index for Black people was greater in the dark blue tracts than in all of New York City. This means that in the areas where stops were happening despite a lack of nearby serious crimes to justify them, Black people were stopped more disproportionately than elsewhere in the city.

    [The] explanation for high disproportionality indices is consistent with the well-known case of Harvard professor Henry Louis Gates Jr.; regardless of social class designations and resources, minority residents are deemed more threatening and ‘out of place’ in majority-white areas and thus subject to additional police scrutiny. (Ogletree 2010) — "Neighborhood Residence and Assessments of Racial Profiling Using Census Data," Socius: Sociological Research for a Dynamic World, 2019.

  17. Close both tables and save the project.
  18. Close ArcGIS Pro.

In this module, you used colocation analysis to find the pedestrian stops that were isolated from part 1 violent crimes in New York City. You summarized this information into tracts to identify the areas where stops were predominantly isolated. You found that a greater proportion of White people live in the tracts where stops were less colocated with crimes, and the disparity of stops was even greater for Black people in these neighborhoods.

GIS has long been used to analyze crime data. You have now used to it analyze issues of racial equity in law enforcement. Dr. Phillip Atiba Goff from the Center for Policing Equity explains the importance of this work:

If policing is about justice, then we have to measure justice—not just talk about it. That means measuring not just crime, but the cost of combating it and whether or not policing generates equitable outcomes. We need to ask about the cost of the widespread use of traffic and pedestrian stops, with a particular focus on communities blighted by generations of government neglect and disinvestment. We must measure the impacts on these neighbors and determine whether practices actually make them safer. We must be willing to consider whether, in trying to solve crime and safety problems, we are producing additional harm — "Collecting, Analyzing, and Responding to Stop Data: A Guidebook for Law Enforcement Agencies, Government, and Communities," Center for Policing Equity and Policing Project at NYU School of Law, 2020.

In this tutorial, you used multiple techniques to examine racial disparity in police stops:

  • You visualized police stop data in Nashville, Tennessee, with charts and the Data Engineering view.
  • You used emerging hot spot analysis to better understand which neighborhoods in New Orleans, Louisiana, experienced the most frisking.
  • You explored the disproportionate burden of pedestrian stops by race in each neighborhood in San Antonio, Texas.
  • You used colocation analysis in New York City, New York, to test the police justification that pedestrian stops occur in neighborhoods with higher violent crime.

Through your exploration of various cities, you've seen that location matters. Each city, and even each neighborhood within, had different outcomes and stories. You've learned the importance of understanding your data—and recognizing that in some cases, the data may not support the ability to uncover patterns.

There are many ways for you to take this analysis further. You may, for example, try the following:

Additionally, you may explore how racial disparities in policing overlap with racial disparities in other domains by examining outcomes in other aspects of society such as education, health, or food and housing insecurity. GIS can play an important role in supporting the holistic approach necessary for examining the impact of racist practices. The Racial Equity GIS Hub has data and other resources to help you explore these issues.

You can find more tutorials in the tutorial gallery.