Tobias Streets

Harold Nelson

10/14/2021

Read the Tobias Streets Data

Setup

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✓ ggplot2 3.3.3     ✓ purrr   0.3.4
## ✓ tibble  3.1.2     ✓ dplyr   1.0.6
## ✓ tidyr   1.1.3     ✓ stringr 1.4.0
## ✓ readr   1.4.0     ✓ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(sf)
## Linking to GEOS 3.8.1, GDAL 3.2.1, PROJ 7.2.1
library(raster)
## Loading required package: sp
## 
## Attaching package: 'raster'
## The following object is masked from 'package:dplyr':
## 
##     select
## The following object is masked from 'package:tidyr':
## 
##     extract

Read the Data

Read in the shapefile. Check the crs.

streets = st_read("StreetCenterlines.shp")
## Reading layer `StreetCenterlines' from data source `/Users/haroldnelson/Dropbox/QGIS/Tobias/StreetCenterlines.shp' using driver `ESRI Shapefile'
## Simple feature collection with 16241 features and 21 fields
## Geometry type: LINESTRING
## Dimension:     XY
## Bounding box:  xmin: -122.5136 ymin: 37.70702 xmax: -122.3583 ymax: 37.83213
## Geodetic CRS:  WGS84(DD)
st_crs(streets)
## Coordinate Reference System:
##   User input: WGS84(DD) 
##   wkt:
## GEOGCRS["WGS84(DD)",
##     DATUM["WGS84",
##         ELLIPSOID["WGS84",6378137,298.257223563,
##             LENGTHUNIT["metre",1,
##                 ID["EPSG",9001]]]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433]],
##     CS[ellipsoidal,2],
##         AXIS["geodetic longitude",east,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433]],
##         AXIS["geodetic latitude",north,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433]]]

Glimpse

Glimpse the dataframe.

glimpse(streets)
## Rows: 16,241
## Columns: 22
## $ accepted   <chr> "N", "Y", "Y", "Y", "N", "N", "N", "N", "N", "N", "N", "N",…
## $ classcode  <chr> "0", "0", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5",…
## $ cnn        <dbl> 15145000, 11305001, 11305002, 13798000, 5389001, 5389002, 1…
## $ cnntext    <chr> "15145000", "11305001", "11305002", "13798000", "5389001", …
## $ district   <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ f_node_cnn <dbl> 26132000, 26255000, 54224000, 35015000, 35016000, 35017000,…
## $ jurisdicti <chr> NA, "DPW", "DPW", "DPW", "DPW", "DPW", "DPW", "DPW", "DPW",…
## $ layer      <chr> "PRIVATE", "UPROW", "STREETS", "STREETS", "STREETS", "STREE…
## $ lf_fadd    <dbl> 0, 1, 39, 221, 1001, 1101, 300, 200, 100, 200, 100, 1, 0, 2…
## $ lf_toadd   <dbl> 0, 37, 99, 299, 1099, 1199, 398, 298, 198, 298, 198, 99, 0,…
## $ multigeom  <chr> "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F",…
## $ nhood      <chr> "Twin Peaks", "Clarendon Heights", "Clarendon Heights", "In…
## $ oneway     <chr> "B", "B", "B", "F", "B", "B", "B", "B", "B", "B", "B", "B",…
## $ rt_fadd    <dbl> 0, 2, 38, 222, 1000, 1100, 301, 201, 101, 201, 101, 2, 0, 1…
## $ rt_toadd   <dbl> 0, 36, 98, 298, 1098, 1198, 399, 299, 199, 299, 199, 98, 0,…
## $ st_type    <chr> "CT", "AVE", "AVE", "ST", "AVE", "AVE", "ST", "ST", "ST", "…
## $ street     <chr> "CROWN", "SAINT GERMAIN", "SAINT GERMAIN", "CORONA", "FAIRF…
## $ street_gc  <chr> "CROWN", "SAINT GERMAIN", "SAINT GERMAIN", "CORONA", "FAIRF…
## $ streetname <chr> "CROWN CT", "SAINT GERMAIN AVE", "SAINT GERMAIN AVE", "CORO…
## $ t_node_cnn <dbl> 54223000, 54224000, 26247000, 35015000, 35017000, 20182000,…
## $ zip_code   <chr> "94114", "94114", "94114", "94127", "94124", "94124", "9412…
## $ geometry   <LINESTRING [°]> LINESTRING (-122.4469 37.75..., LINESTRING (-122…

Trim

Keep only the classcode and the geometry.

streets = streets %>% dplyr::select(classcode)
glimpse(streets)
## Rows: 16,241
## Columns: 2
## $ classcode <chr> "0", "0", "5", "5", "5", "5", "5", "5", "5", "5", "5", "5", …
## $ geometry  <LINESTRING [°]> LINESTRING (-122.4469 37.75..., LINESTRING (-122.…
table(streets$classcode)
## 
##     0     1     2     3     4     5     6 
##  1143   108   203  1533  2378 10767   109

Plot Class 1

Do a map showing only class “1”.

streets %>% 
  filter(classcode == "1") %>% 
  ggplot() + geom_sf()