By Isaac H. Michaels, MPH
Published: August 19, 2024
Updated: November 19, 2024 at 05:25PM
Suggested citation: Michaels I. 3D visualization of shooting incidents in New York City, 2023. Published August 20, 2024. https://isaacmichaels.netlify.app/post/2024-08-20-3d-visualization-of-shooting-incidents-in-new-york-city-2023/
Purpose and Background
The purpose of this project is to introduce to the public health community an advancement of animated mapping for visualizing public health data. It builds on an earlier example of animated mapping, in two dimensions, which demonstrated that animated maps can be useful for visualizing certain patterns in public health data that are difficult to convey via static representation.1 The present example applies mapping in three dimensions to visualize the spatial distribution of shooting incidents in New York City from 2019 to 2023.
Gun violence remains a significant public health concern in the United States, with substantial impacts on morbidity,2 mortality,3 and community well-being.4 In urban areas such as New York City, the spatial distribution of shooting incidents is often uneven, with certain neighborhoods disproportionately affected.5 Understanding the spatial patterns of these incidents is crucial for implementing effective prevention strategies and deploying resources where they are most needed.
Geographic Information Systems (GIS) provide powerful tools for visualizing and analyzing spatial distributions among public health data, including gun violence. Subsequent advancements in animation for mapping incorporate two additional elements: timeseries animation in two-dimensional mapping as illustrated previously,1 and cross-sectional spatial animation in three-dimensional mapping as illustrated here. Animation is especially useful for three-dimensional mapping because structures in the background that are obstructed by opaque structures in the foreground in static maps are revealed in animated maps by revolving a camera path around the space.
Data and Methods
Data on shooting incidents in New York City were obtained from NYC Open Data.6 These data were collected by the New York Police Department, and include the geographic coordinates and attributes of shooting incidents. However, they do not include neighborhood tabulation areas (‘neighborhoods’). Every documented shooting incident since 2006 is recorded in this dataset, and the dataset is updated quarterly. The coordinates provided in the dataset were used to geolocate each shooting incident. A shapefile of New York City’s neighborhoods was obtained from NYC Open Data.7
The data that were used to generate this map also were used to develop a table of the total number of shooting incidents in each neighborhood, by year and overall. To create the map, these data were processed using R version 4.3.2 (R Foundation for Statistical Computing)8, with the analysis relying on several key packages: tidyverse9 for data manipulation, sf10 for handling spatial data, rayshader11 for generating the three-dimensional map, as well as scales12 and viridis13 for color scaling. To create the table, the incidents were converted into a spatial object based on their coordinates, spatially joined with neighborhood-level polygons to identify the neighborhood in which each incident occurred, and then aggregated to calculate the total number of incidents in each neighborhood.
Highlights
The resulting map illustrates clearly, engagingly, and accessibly that the spatial distribution of shooting incidents in New York City from 2019 to 2023 exhibited significant concentrations above background in specific neighborhoods, particularly in the Bronx and Brooklyn. For example, Mott Haven-Port Morris emerged as the neighborhood with the highest number of incidents in the Bronx, totaling 157 over the five-year period. Similarly, Crown Heights North in Brooklyn experienced 303 incidents, the highest of any neighborhood across the city.
Map Prepared By: Isaac H. Michaels, MPH
Data Source: NYC Open Data
The table indicated consistent hotspots for violence, with neighborhoods such as East Concourse-Concourse Village, East Tremont, and Mount Hope in the Bronx, as well as Brownsville and East New York in Brooklyn, consistently experiencing high levels of gun violence each year. In Manhattan, Central Harlem North-Polo Grounds and East Harlem North were among the most affected areas. The detailed geographic visualization of shooting incidents offers critical insights for law enforcement and public health officials seeking to address and reduce gun violence in New York City.
Action
The importance of these findings derives from their potential to guide targeted interventions and resource allocation. By using the map to visualize spatial patterns and the table to convey trends in these incidents, strategies can be more effectively developed and implemented to mitigate future occurrences, especially in high-risk areas. The map generated from this analysis of shooting incidents in New York City can serve as a powerful tool for informing decision making and shaping interventions to prevent gun violence.
Providing a clear visualization of the geographic distribution of these incidents can guide law enforcement agencies and public health officials in allocating resources more effectively to prioritize the most affected neighborhoods. Maps like the one highlighted here can help foster partnerships among community organizations, local governments, and public health entities. Quantifying shooting incidence likewise can help stakeholders to collaborate on targeted initiatives, such as violence interruption programs, community outreach, and youth engagement activities designed to reduce the incidence of gun violence. Improving the accessibility of this information can empower communities to advocate for evidence-based policies, and thereby support preventive measures in their neighborhoods. More generally, public health practitioners are encouraged to include static and animated three-dimensional mapping among the methods they consider using for visualizing public health data, as such mapping offers unique advantages toward revealing complex spatial patterns and engaging audiences.
Shooting Incidents in New York City (2019 - 2023) | |||||||
By Neighborhood and Year | |||||||
Neighborhood Tabulation Area | 2019 | 2020 | 2021 | 2022 | 2023 | Total | |
---|---|---|---|---|---|---|---|
Bronx | |||||||
Allerton-Pelham Gardens | 5 | 1 | 13 | 11 | 6 | 36 | |
Bedford Park-Fordham North | 4 | 16 | 20 | 16 | 21 | 77 | |
Belmont | 6 | 12 | 24 | 21 | 11 | 74 | |
Bronxdale | 5 | 19 | 7 | 16 | 8 | 55 | |
Claremont-Bathgate | 9 | 12 | 53 | 24 | 16 | 114 | |
Co-op City | 3 | 5 | 8 | 2 | 4 | 22 | |
Crotona Park East | 9 | 17 | 17 | 16 | 17 | 76 | |
East Concourse-Concourse Village | 24 | 35 | 36 | 29 | 27 | 151 | |
East Tremont | 12 | 40 | 35 | 33 | 29 | 149 | |
Eastchester-Edenwald-Baychester | 7 | 15 | 17 | 10 | 8 | 57 | |
Fordham South | 13 | 18 | 19 | 19 | 8 | 77 | |
Highbridge | 2 | 11 | 22 | 14 | 15 | 64 | |
Hunts Point | 9 | 17 | 27 | 12 | 8 | 73 | |
Kingsbridge Heights | 8 | 15 | 6 | 11 | 5 | 45 | |
Longwood | 9 | 14 | 22 | 17 | 16 | 78 | |
Melrose South-Mott Haven North | 16 | 26 | 31 | 25 | 18 | 116 | |
Morrisania-Melrose | 17 | 30 | 24 | 17 | 14 | 102 | |
Mott Haven-Port Morris | 16 | 35 | 46 | 40 | 20 | 157 | |
Mount Hope | 11 | 25 | 37 | 41 | 35 | 149 | |
Norwood | 2 | 4 | 22 | 12 | 5 | 45 | |
Pelham Parkway | 3 | 2 | 4 | 4 | 3 | 16 | |
Schuylerville-Throgs Neck-Edgewater Park | 4 | 2 | 8 | 4 | 2 | 20 | |
Soundview-Bruckner | 1 | 5 | 10 | 5 | 11 | 32 | |
Soundview-Castle Hill-Clason Point-Harding Park | 11 | 14 | 23 | 15 | 17 | 80 | |
Spuyten Duyvil-Kingsbridge | 3 | 1 | 3 | 2 | 1 | 10 | |
University Heights-Morris Heights | 15 | 16 | 17 | 12 | 24 | 84 | |
Van Cortlandt Village | 7 | 4 | 8 | 2 | 5 | 26 | |
Van Nest-Morris Park-Westchester Square | 3 | 0 | 3 | 4 | 4 | 14 | |
West Concourse | 7 | 13 | 37 | 22 | 10 | 89 | |
West Farms-Bronx River | 3 | 15 | 16 | 8 | 6 | 48 | |
Westchester-Unionport | 2 | 5 | 3 | 13 | 3 | 26 | |
Williamsbridge-Olinville | 11 | 26 | 40 | 24 | 27 | 128 | |
Woodlawn-Wakefield | 4 | 16 | 14 | 14 | 15 | 63 | |
park-cemetery-etc-Bronx | 6 | 11 | 18 | 13 | 2 | 50 | |
North Riverdale-Fieldston-Riverdale | 0 | 2 | 0 | 1 | 0 | 3 | |
Parkchester | 0 | 1 | 7 | 2 | 1 | 11 | |
Pelham Bay-Country Club-City Island | 0 | 1 | 2 | 0 | 4 | 7 | |
Incident coordinates not recorded | 0 | 0 | 0 | 0 | 13 | 13 | |
Borough Total | 267 | 501 | 699 | 531 | 439 | 2,437 | |
Brooklyn | |||||||
Bedford | 20 | 38 | 29 | 19 | 14 | 120 | |
Bensonhurst East | 3 | 3 | 0 | 2 | 2 | 10 | |
Bensonhurst West | 1 | 1 | 4 | 3 | 1 | 10 | |
Brownsville | 34 | 95 | 60 | 63 | 36 | 288 | |
Bushwick North | 4 | 6 | 31 | 7 | 9 | 57 | |
Bushwick South | 14 | 23 | 20 | 19 | 17 | 93 | |
Canarsie | 12 | 41 | 32 | 23 | 13 | 121 | |
Clinton Hill | 4 | 7 | 13 | 3 | 2 | 29 | |
Crown Heights North | 66 | 82 | 63 | 57 | 35 | 303 | |
Crown Heights South | 2 | 15 | 13 | 12 | 11 | 53 | |
Cypress Hills-City Line | 5 | 25 | 17 | 22 | 12 | 81 | |
DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill | 6 | 19 | 10 | 13 | 10 | 58 | |
East Flatbush-Farragut | 10 | 22 | 23 | 14 | 18 | 87 | |
East New York | 46 | 89 | 54 | 56 | 36 | 281 | |
East New York (Pennsylvania Ave) | 14 | 28 | 24 | 10 | 19 | 95 | |
East Williamsburg | 3 | 8 | 12 | 1 | 2 | 26 | |
Erasmus | 8 | 17 | 5 | 11 | 6 | 47 | |
Flatbush | 10 | 40 | 15 | 10 | 15 | 90 | |
Flatlands | 9 | 15 | 16 | 12 | 9 | 61 | |
Fort Greene | 8 | 17 | 10 | 11 | 12 | 58 | |
Gravesend | 1 | 1 | 2 | 7 | 0 | 11 | |
Homecrest | 1 | 1 | 1 | 3 | 0 | 6 | |
Midwood | 1 | 0 | 3 | 0 | 3 | 7 | |
North Side-South Side | 2 | 7 | 4 | 3 | 2 | 18 | |
Ocean Hill | 17 | 24 | 31 | 22 | 13 | 107 | |
Park Slope-Gowanus | 1 | 5 | 2 | 5 | 2 | 15 | |
Prospect Heights | 3 | 9 | 2 | 2 | 3 | 19 | |
Prospect Lefferts Gardens-Wingate | 13 | 25 | 20 | 14 | 4 | 76 | |
Rugby-Remsen Village | 10 | 31 | 23 | 29 | 20 | 113 | |
Seagate-Coney Island | 15 | 16 | 11 | 23 | 10 | 75 | |
Sheepshead Bay-Gerritsen Beach-Manhattan Beach | 2 | 5 | 2 | 15 | 3 | 27 | |
Starrett City | 1 | 5 | 0 | 2 | 0 | 8 | |
Stuyvesant Heights | 19 | 61 | 41 | 36 | 27 | 184 | |
Sunset Park East | 2 | 5 | 6 | 1 | 7 | 21 | |
Sunset Park West | 1 | 9 | 1 | 7 | 7 | 25 | |
West Brighton | 2 | 0 | 2 | 1 | 0 | 5 | |
park-cemetery-etc-Brooklyn | 2 | 3 | 3 | 1 | 1 | 10 | |
Bay Ridge | 0 | 1 | 1 | 4 | 3 | 9 | |
Borough Park | 0 | 1 | 0 | 1 | 1 | 3 | |
Carroll Gardens-Columbia Street-Red Hook | 0 | 12 | 15 | 6 | 7 | 40 | |
Dyker Heights | 0 | 2 | 0 | 0 | 0 | 2 | |
Georgetown-Marine Park-Bergen Beach-Mill Basin | 0 | 2 | 0 | 2 | 2 | 6 | |
Greenpoint | 0 | 2 | 2 | 9 | 0 | 13 | |
Williamsburg | 0 | 1 | 1 | 1 | 1 | 4 | |
Brighton Beach | 0 | 0 | 6 | 0 | 1 | 7 | |
Kensington-Ocean Parkway | 0 | 0 | 1 | 3 | 1 | 5 | |
Incident coordinates not recorded | 0 | 0 | 0 | 4 | 11 | 15 | |
Brooklyn Heights-Cobble Hill | 0 | 0 | 0 | 0 | 1 | 1 | |
Madison | 0 | 0 | 0 | 0 | 1 | 1 | |
Borough Total | 372 | 819 | 631 | 569 | 410 | 2,801 | |
Manhattan | |||||||
Central Harlem North-Polo Grounds | 21 | 45 | 67 | 61 | 31 | 225 | |
Central Harlem South | 17 | 24 | 33 | 24 | 8 | 106 | |
Chinatown | 3 | 3 | 4 | 12 | 11 | 33 | |
Clinton | 1 | 4 | 4 | 7 | 4 | 20 | |
East Harlem North | 28 | 29 | 38 | 54 | 30 | 179 | |
East Harlem South | 18 | 33 | 31 | 23 | 13 | 118 | |
East Village | 1 | 2 | 1 | 2 | 2 | 8 | |
Hamilton Heights | 4 | 11 | 7 | 16 | 3 | 41 | |
Hudson Yards-Chelsea-Flatiron-Union Square | 4 | 9 | 5 | 19 | 3 | 40 | |
Lenox Hill-Roosevelt Island | 1 | 0 | 1 | 0 | 3 | 5 | |
Lincoln Square | 2 | 6 | 3 | 5 | 3 | 19 | |
Lower East Side | 8 | 14 | 13 | 13 | 10 | 58 | |
Manhattanville | 3 | 12 | 13 | 8 | 5 | 41 | |
Marble Hill-Inwood | 10 | 29 | 42 | 16 | 10 | 107 | |
Morningside Heights | 3 | 6 | 8 | 2 | 3 | 22 | |
Murray Hill-Kips Bay | 2 | 7 | 3 | 1 | 1 | 14 | |
SoHo-TriBeCa-Civic Center-Little Italy | 2 | 1 | 0 | 7 | 1 | 11 | |
Upper West Side | 1 | 10 | 11 | 5 | 8 | 35 | |
Washington Heights North | 7 | 8 | 13 | 10 | 10 | 48 | |
Washington Heights South | 10 | 13 | 19 | 10 | 15 | 67 | |
Battery Park City-Lower Manhattan | 0 | 3 | 0 | 0 | 0 | 3 | |
Midtown-Midtown South | 0 | 1 | 14 | 3 | 4 | 22 | |
Turtle Bay-East Midtown | 0 | 1 | 0 | 3 | 0 | 4 | |
West Village | 0 | 1 | 4 | 1 | 0 | 6 | |
Yorkville | 0 | 2 | 2 | 1 | 2 | 7 | |
park-cemetery-etc-Manhattan | 0 | 1 | 4 | 4 | 1 | 10 | |
Gramercy | 0 | 0 | 1 | 0 | 0 | 1 | |
Upper East Side-Carnegie Hill | 0 | 0 | 4 | 1 | 0 | 5 | |
Incident coordinates not recorded | 0 | 0 | 0 | 4 | 12 | 16 | |
Borough Total | 146 | 275 | 345 | 312 | 193 | 1,271 | |
Queens | |||||||
Astoria | 5 | 8 | 10 | 4 | 10 | 37 | |
Baisley Park | 10 | 15 | 12 | 14 | 14 | 65 | |
Cambria Heights | 1 | 1 | 1 | 7 | 2 | 12 | |
College Point | 2 | 3 | 0 | 1 | 1 | 7 | |
Corona | 2 | 6 | 3 | 2 | 3 | 16 | |
East Elmhurst | 1 | 11 | 4 | 1 | 3 | 20 | |
East Flushing | 1 | 1 | 2 | 1 | 0 | 5 | |
Elmhurst | 2 | 8 | 4 | 4 | 5 | 23 | |
Elmhurst-Maspeth | 2 | 0 | 2 | 0 | 7 | 11 | |
Far Rockaway-Bayswater | 9 | 32 | 14 | 17 | 8 | 80 | |
Flushing | 5 | 1 | 6 | 4 | 4 | 20 | |
Forest Hills | 2 | 0 | 1 | 3 | 0 | 6 | |
Glen Oaks-Floral Park-New Hyde Park | 2 | 1 | 0 | 0 | 0 | 3 | |
Hammels-Arverne-Edgemere | 9 | 37 | 26 | 20 | 10 | 102 | |
Hollis | 1 | 8 | 9 | 5 | 4 | 27 | |
Hunters Point-Sunnyside-West Maspeth | 4 | 6 | 7 | 4 | 5 | 26 | |
Jackson Heights | 4 | 3 | 5 | 11 | 1 | 24 | |
Jamaica | 6 | 16 | 18 | 18 | 8 | 66 | |
Kew Gardens Hills | 1 | 1 | 0 | 3 | 2 | 7 | |
Laurelton | 4 | 10 | 10 | 6 | 1 | 31 | |
North Corona | 4 | 4 | 11 | 4 | 2 | 25 | |
Old Astoria | 2 | 6 | 4 | 4 | 7 | 23 | |
Ozone Park | 2 | 2 | 6 | 5 | 0 | 15 | |
Pomonok-Flushing Heights-Hillcrest | 1 | 1 | 5 | 4 | 2 | 13 | |
Queens Village | 3 | 10 | 13 | 5 | 3 | 34 | |
Queensboro Hill | 1 | 1 | 0 | 0 | 1 | 3 | |
Queensbridge-Ravenswood-Long Island City | 13 | 12 | 10 | 6 | 4 | 45 | |
Richmond Hill | 9 | 0 | 4 | 19 | 15 | 47 | |
Ridgewood | 1 | 5 | 0 | 10 | 1 | 17 | |
Rosedale | 2 | 2 | 5 | 5 | 0 | 14 | |
South Jamaica | 13 | 31 | 15 | 11 | 3 | 73 | |
South Ozone Park | 3 | 4 | 13 | 12 | 9 | 41 | |
Springfield Gardens North | 5 | 4 | 10 | 5 | 0 | 24 | |
Springfield Gardens South-Brookville | 6 | 8 | 7 | 7 | 3 | 31 | |
St. Albans | 15 | 19 | 21 | 7 | 13 | 75 | |
Whitestone | 1 | 1 | 0 | 0 | 1 | 3 | |
Woodhaven | 1 | 5 | 8 | 6 | 2 | 22 | |
Woodside | 1 | 2 | 5 | 2 | 3 | 13 | |
Airport | 0 | 2 | 0 | 0 | 0 | 2 | |
Bellerose | 0 | 1 | 0 | 0 | 0 | 1 | |
Briarwood-Jamaica Hills | 0 | 4 | 3 | 2 | 0 | 9 | |
Jamaica Estates-Holliswood | 0 | 2 | 2 | 1 | 0 | 5 | |
Kew Gardens | 0 | 1 | 2 | 0 | 0 | 3 | |
Lindenwood-Howard Beach | 0 | 1 | 2 | 0 | 0 | 3 | |
Maspeth | 0 | 2 | 1 | 2 | 2 | 7 | |
Murray Hill | 0 | 1 | 1 | 1 | 0 | 3 | |
Oakland Gardens | 0 | 1 | 0 | 0 | 1 | 2 | |
Steinway | 0 | 1 | 7 | 4 | 4 | 16 | |
park-cemetery-etc-Queens | 0 | 2 | 2 | 6 | 1 | 11 | |
Auburndale | 0 | 0 | 2 | 0 | 0 | 2 | |
Glendale | 0 | 0 | 2 | 1 | 2 | 5 | |
Middle Village | 0 | 0 | 1 | 0 | 2 | 3 | |
Bayside-Bayside Hills | 0 | 0 | 0 | 2 | 0 | 2 | |
Fresh Meadows-Utopia | 0 | 0 | 0 | 6 | 0 | 6 | |
Incident coordinates not recorded | 0 | 0 | 0 | 2 | 6 | 8 | |
Breezy Point-Belle Harbor-Rockaway Park-Broad Channel | 0 | 0 | 0 | 0 | 2 | 2 | |
Borough Total | 156 | 303 | 296 | 264 | 177 | 1,196 | |
Staten Island | |||||||
Annadale-Huguenot-Prince's Bay-Eltingville | 1 | 0 | 0 | 3 | 2 | 6 | |
Mariner's Harbor-Arlington-Port Ivory-Graniteville | 6 | 16 | 3 | 5 | 1 | 31 | |
New Brighton-Silver Lake | 1 | 1 | 2 | 4 | 2 | 10 | |
New Dorp-Midland Beach | 3 | 0 | 1 | 0 | 0 | 4 | |
Old Town-Dongan Hills-South Beach | 1 | 1 | 1 | 0 | 1 | 4 | |
Port Richmond | 1 | 4 | 1 | 3 | 0 | 9 | |
Stapleton-Rosebank | 4 | 3 | 12 | 5 | 6 | 30 | |
Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill | 2 | 0 | 0 | 1 | 0 | 3 | |
West New Brighton-New Brighton-St. George | 7 | 10 | 12 | 12 | 7 | 48 | |
Grasmere-Arrochar-Ft. Wadsworth | 0 | 3 | 0 | 0 | 1 | 4 | |
Grymes Hill-Clifton-Fox Hills | 0 | 10 | 4 | 7 | 3 | 24 | |
New Springville-Bloomfield-Travis | 0 | 2 | 2 | 0 | 0 | 4 | |
Arden Heights | 0 | 0 | 1 | 0 | 0 | 1 | |
Charleston-Richmond Valley-Tottenville | 0 | 0 | 1 | 0 | 0 | 1 | |
Westerleigh | 0 | 0 | 0 | 0 | 1 | 1 | |
Incident coordinates not recorded | 0 | 0 | 0 | 0 | 7 | 7 | |
Borough Total | 26 | 50 | 40 | 40 | 31 | 187 | |
Citywide Total | 967 | 1,948 | 2,011 | 1,716 | 1,250 | 7,892 | |
Data Source: NYC Open Data (data as of June 30, 2024). | |||||||
Note: Neighborhood tabulation areas were identified by performing a spatial join of the shooting-incident coordinates against the neighborhood tabulation area shapefile. As a result, 19 (0.2%) of the incidents were identified as having occurred in different boroughs than the ones indicated in the shooting-incidents dataset. |
Table Prepared By: Isaac H. Michaels, MPH
Data Source: NYC Open Data