Load Libraries

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.6     v dplyr   1.0.8
## v tidyr   1.2.0     v stringr 1.4.0
## v readr   2.1.2     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(readr)
library(RColorBrewer)
## Warning: package 'RColorBrewer' was built under R version 4.1.3
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.1.3
library(readr)
Part1_Crime_data_1_ <- read_csv("Part1_Crime_data (1).csv")
## Warning: One or more parsing issues, see `problems()` for details
## Rows: 517177 Columns: 19
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (11): CrimeDateTime, CrimeCode, Location, Description, Inside_Outside, W...
## dbl  (7): X, Y, RowID, Post, Latitude, Longitude, Total_Incidents
## lgl  (1): Shape
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
View(Part1_Crime_data_1_)

For my project, I decided to practice GIS mapping and locate the murder of a Baltimore city police Officer Keonna Holley. According to CNN, “The fatal shooting occurred at 1:30 a.m. on December 16 when an assailant”apparently walked up somewhere from the rear of the (police) vehicle or alongside the vehicle and began firing into the vehicle striking our officer,” Harrison said last week. It was reported that Officer Holley made an attemtp to escaped when she accelerated the patrol vehicle but unfortunately crashed.

Once I loaded my dataset into R, I was able to use dplyr package to locate what I assume to be Officer Holley’s death. I am assuming this is her death because of the location, time, description, and weapon variables within my dataset.

1.) Locate Officer’s Holley location of death

charmcitycrimes <- Part1_Crime_data_1_ %>%
  select(CrimeDateTime, Location, Description, Weapon, Latitude, Longitude) %>%
  filter(Location %in% c("500 LUCIA AVE", "600 LUCIA AVE")) %>%
  filter(Description == "HOMICIDE")
charmcitycrimes
## # A tibble: 1 x 6
##   CrimeDateTime          Location      Description Weapon  Latitude Longitude
##   <chr>                  <chr>         <chr>       <chr>      <dbl>     <dbl>
## 1 2021/12/16 03:07:32+00 600 LUCIA AVE HOMICIDE    FIREARM     39.3     -76.7

Since this is my first mapping project, I figured that grabbing the longtitude and latitude would be helpful. Although I did not need the dicrect numbers to use with the leaflet package, I found othwr packegs that did require the longtitude and latitude variables. My dataset was very organized so it made mapping a very easy task for me to do.

#charmcitycrimes$Longitude <- as.numeric(charmcitycrimes$Longitude)
#charmcitycrimes$Latitude < as.numeric(charmcitycrimes$Latitude)

class(charmcitycrimes$Longitude)
## [1] "numeric"
class(charmcitycrimes$Latitude)
## [1] "numeric"
library(sp)
## Warning: package 'sp' was built under R version 4.1.3

###One Attempt to make the map.

cccmapOH <- SpatialPointsDataFrame(charmcitycrimes[, c(5,6)], charmcitycrimes[,-c(5,6)])

cccmapOH
##           coordinates          CrimeDateTime      Location Description  Weapon
## 1 (39.2739, -76.6922) 2021/12/16 03:07:32+00 600 LUCIA AVE    HOMICIDE FIREARM

Here I was able to use the leaflet package to create the map using the two longtitude and latitiude variables from the Baltimore Crimes Dataset.

cccmap1 <- leaflet() %>%
  addTiles() %>%
  addMarkers(data = charmcitycrimes, lng= charmcitycrimes$Longitude, lat= charmcitycrimes$Latitude, popup = charmcitycrimes$Description)

cccmap1

While investigators were processing the scene of Holley’s shooting, another homicide occurred not far from that location, Harrison said.

Let’s locate the other reported homicides

charmcitycrimes2 <- Part1_Crime_data_1_ %>%
  select(CrimeDateTime, Location, Description, Weapon, Latitude, Longitude) %>%
  filter(Location %in% c("500 LUCIA AVE", "600 LUCIA AVE"))
charmcitycrimes2
## # A tibble: 105 x 6
##    CrimeDateTime          Location      Description    Weapon Latitude Longitude
##    <chr>                  <chr>         <chr>          <chr>     <dbl>     <dbl>
##  1 2022/04/04 07:18:00+00 500 LUCIA AVE AUTO THEFT     <NA>       39.3     -76.7
##  2 2022/03/09 00:30:00+00 500 LUCIA AVE AGG. ASSAULT   PERSO~     39.3     -76.7
##  3 2022/03/09 00:30:00+00 500 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
##  4 2022/03/09 00:30:00+00 500 LUCIA AVE AGG. ASSAULT   PERSO~     39.3     -76.7
##  5 2022/02/16 11:20:00+00 500 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
##  6 2022/02/06 23:00:00+00 600 LUCIA AVE LARCENY        <NA>       39.3     -76.7
##  7 2021/12/16 03:07:32+00 600 LUCIA AVE HOMICIDE       FIREA~     39.3     -76.7
##  8 2021/07/26 14:30:00+00 500 LUCIA AVE LARCENY FROM ~ <NA>       39.3     -76.7
##  9 2021/07/14 04:50:00+00 600 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
## 10 2021/07/14 04:55:40+00 600 LUCIA AVE COMMON ASSAULT <NA>       39.3     -76.7
## # ... with 95 more rows
charmcitycrimes2
## # A tibble: 105 x 6
##    CrimeDateTime          Location      Description    Weapon Latitude Longitude
##    <chr>                  <chr>         <chr>          <chr>     <dbl>     <dbl>
##  1 2022/04/04 07:18:00+00 500 LUCIA AVE AUTO THEFT     <NA>       39.3     -76.7
##  2 2022/03/09 00:30:00+00 500 LUCIA AVE AGG. ASSAULT   PERSO~     39.3     -76.7
##  3 2022/03/09 00:30:00+00 500 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
##  4 2022/03/09 00:30:00+00 500 LUCIA AVE AGG. ASSAULT   PERSO~     39.3     -76.7
##  5 2022/02/16 11:20:00+00 500 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
##  6 2022/02/06 23:00:00+00 600 LUCIA AVE LARCENY        <NA>       39.3     -76.7
##  7 2021/12/16 03:07:32+00 600 LUCIA AVE HOMICIDE       FIREA~     39.3     -76.7
##  8 2021/07/26 14:30:00+00 500 LUCIA AVE LARCENY FROM ~ <NA>       39.3     -76.7
##  9 2021/07/14 04:50:00+00 600 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
## 10 2021/07/14 04:55:40+00 600 LUCIA AVE COMMON ASSAULT <NA>       39.3     -76.7
## # ... with 95 more rows
head(charmcitycrimes2, 15)
## # A tibble: 15 x 6
##    CrimeDateTime          Location      Description    Weapon Latitude Longitude
##    <chr>                  <chr>         <chr>          <chr>     <dbl>     <dbl>
##  1 2022/04/04 07:18:00+00 500 LUCIA AVE AUTO THEFT     <NA>       39.3     -76.7
##  2 2022/03/09 00:30:00+00 500 LUCIA AVE AGG. ASSAULT   PERSO~     39.3     -76.7
##  3 2022/03/09 00:30:00+00 500 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
##  4 2022/03/09 00:30:00+00 500 LUCIA AVE AGG. ASSAULT   PERSO~     39.3     -76.7
##  5 2022/02/16 11:20:00+00 500 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
##  6 2022/02/06 23:00:00+00 600 LUCIA AVE LARCENY        <NA>       39.3     -76.7
##  7 2021/12/16 03:07:32+00 600 LUCIA AVE HOMICIDE       FIREA~     39.3     -76.7
##  8 2021/07/26 14:30:00+00 500 LUCIA AVE LARCENY FROM ~ <NA>       39.3     -76.7
##  9 2021/07/14 04:50:00+00 600 LUCIA AVE COMMON ASSAULT PERSO~     39.3     -76.7
## 10 2021/07/14 04:55:40+00 600 LUCIA AVE COMMON ASSAULT <NA>       39.3     -76.7
## 11 2021/06/14 12:19:00+00 500 LUCIA AVE COMMON ASSAULT <NA>       39.3     -76.7
## 12 2021/06/12 19:00:00+00 600 LUCIA AVE LARCENY        <NA>       39.3     -76.7
## 13 2021/06/02 15:20:00+00 500 LUCIA AVE COMMON ASSAULT <NA>       39.3     -76.7
## 14 2021/05/19 06:20:00+00 500 LUCIA AVE LARCENY FROM ~ <NA>       39.3     -76.7
## 15 2021/04/21 12:30:00+00 600 LUCIA AVE AGG. ASSAULT   FIREA~     39.3     -76.7

The only reported Murder that day assumes to be Officer Holley’s death within this dataset despite the report of Justin Johnson’s homicide. It was later reported that Johnson was murdered 10 miles south west of Officer Keona Holley’s death.

“After Holley’s shooting, police allege the two men went to a southwest Baltimore neighborhood about 10 miles (16 kilometers) away and shot and killed 38-year-old Justin Johnson.”

https://afro.com/baltimore-officer-dies-days-after-being-shot-in-patrol-car/

Other reported deaths who investigators believe to be related.

12/16/2021 – 600 Lucia Avenue – Justin Johnson (38) of the 500 block of Lucia Avenue 12/16/2021 – 500 Denison Street – Jajuan Robinson (17) No last known address 12/17/2021 – 600 Laurens Street – Aaron Adams (29) of the 4300 block of Connecticut Avenue

https://foxbaltimore.com/news/local/baltimore-police-identify-3-homicide-victims

“What we now know is that both shootings are related,” Harrison said. “As we now know the perpetrators of Officer Holly’s shooting, they then left that scene, went to Lucia Avenue and then committed that homicide of Justin Johnson.”

https://www.cnn.com/2021/12/16/us/baltimore-officer-ambushed/index.html

  1. Lucia Avenue REPORTED Crime Statistics from 2020 - 2022
cccmap2 <- leaflet() %>%
  addTiles() %>%
  addMarkers(data = charmcitycrimes2, lng= charmcitycrimes2$Longitude, lat= charmcitycrimes2$Latitude, popup = charmcitycrimes2$Description)

cccmap2

Bibliography / Works Cited

https://foxbaltimore.com/news/local/baltimore-police-identify-3-homicide-victims

https://afro.com/baltimore-officer-dies-days-after-being-shot-in-patrol-car/

https://www.cnn.com/2021/12/16/us/baltimore-officer-ambushed/index.html