GP Practices Classification

Packages

library(sf)
library(tidyverse)
library(tmap)

Loading the CAZ boundaries

CAZ_boundaries <- st_read("CAZ_boundaries.gpkg")
Reading layer `CAZ_boundaries' from data source 
  `C:\Users\ts18jpf\OneDrive - University of Leeds\03_PhD\00_Misc_projects\Eng-Presc-Data\CAZ_boundaries.gpkg' 
  using driver `GPKG'
Simple feature collection with 7 features and 1 field
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 356346.4 ymin: 99474.13 xmax: 465151.9 ymax: 565398
Projected CRS: OSGB36 / British National Grid

We will produce two buffers for each CAZ: 1 km and 10 km.

CAZ_buffer_1k <-  CAZ_boundaries |> 
  st_buffer(1e3)
CAZ_buffer_5k <-  CAZ_boundaries |> 
  st_buffer(5e3)
tmap_mode("view")

tm_shape(CAZ_buffer_5k)+
  tm_fill("dodgerblue",alpha = 0.3)+
  tm_shape(CAZ_buffer_1k)+
  tm_fill("dodgerblue3",alpha = 0.3)+
tm_shape(CAZ_boundaries)+
  tm_fill("darkblue")

Loading all data from previous analysis

load("all_data.RData")

Let’s classify the CAZ based on their location.

all_practices_raw$within_CAZ <- st_intersects(all_practices_raw,CAZ_boundaries) |> vapply(length,numeric(1)) > 0
all_practices_raw$within_1km <- st_intersects(all_practices_raw,CAZ_buffer_1k) |> vapply(length,numeric(1)) > 0
all_practices_raw$within_5km <- st_intersects(all_practices_raw,CAZ_buffer_5k) |> vapply(length,numeric(1)) > 0

all_practices_raw$location_class <- case_when(all_practices_raw$within_CAZ~"within_CAZ",
                                              all_practices_raw$within_1km~"within_1km",
                                              all_practices_raw$within_5km~"within_5km",
                                              TRUE~"out_CAZ")
                                              
                                              


all_practices_raw$CAZ_index <- st_intersects(all_practices_raw,CAZ_buffer_5k) |> vapply(first,integer(1))
all_practices_raw$CAZ_name <- CAZ_buffer_5k$name[all_practices_raw$CAZ_index]

Visualising the results for the classification

tmap_mode("plot")
tm_shape(all_practices_raw)+
  tm_dots("location_class")

tm_shape(all_practices_raw)+
  tm_dots("CAZ_name")

st_write(all_practices_raw,"practices_CAZ.gpkg",append = F)
Deleting layer `practices_CAZ' using driver `GPKG'
Writing layer `practices_CAZ' to data source `practices_CAZ.gpkg' using driver `GPKG'
Writing 11864 features with 10 fields and geometry type Point.

Saving the results as a release of the repo

system("gh release upload v0 practices_CAZ.gpkg --clobber")