knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
The goal of catchment is to estimate health facility catchment populations using Bayesian gravity models. The primary purpose of these population estimates is to calculate catchment-level incidence rates using routine reporting data from health information systems.
Before installing this package, first you will need to install the R-INLA and Template Model Builder (TMB) packages. These packages are not on CRAN, and the installation process may depend on the type of computer you are using. I recommend following the installation instructions for INLA first, and then install TMB. Be sure to close out of any active R session before installation!
The catchment package is also not on CRAN (yet!). You can install the development version of catchment from GitHub with:
# install.packages("devtools") devtools::install_github("PATH-Global-Health/catchment")
We are currently developing documentation and tutorial materials.
# Load libraries library(raster) library(catchment) # 1. Pre-processing -------------------------------------- ## Load example dataset data("example_shp") data("example_pop") data("example_locs") ## Get friction surface fric <- PATHtools::get_friction_surface(example_shp) |> raster::resample(example_pop, fun = "mean") ## Create output folder f <- tempfile() fs::dir_create(fs::path(f, "tt")) # 2. Travel time and intial access surfaces -------------- ## Create individual travel time rasters create_travel_surface(friction_surface = fric, extent_file = example_pop, points = example_locs, id_col = "label", x_col = "x", y_col = "y", output_dir = fs::path(f, "tt"), individual_surfaces = T, parallel = T, cores = 5) ## Organize travel time matrix tmat <- travel_mat_from_folder(dir = fs::path(f, "tt"), reference = example_pop) ## Create initial accessbility matrix pmat <- initial_access_surface(tmat, n_fac_limit = 10, force_threshold = 300, sparse = F) # 3. Fit catchment model --------------------------------- ## Organize input data catch_dat <- prepare_data(prob_mat_init = pmat, pop_raster = example_pop, location_data = example_locs, mesh.args = list(cutoff = 0.1,max.edge = c(0.1, 4))) ## View INLA mesh plot(catch_dat$mesh) plot(example_shp, add = T, border = "red", lwd = 2) points(example_locs$x, example_locs$y) ## Fit catchment model mod <- catchment_model(catch_dat) # 4. Post-processing ------------------------------------- ## Estimated catchment populations catchment_populations(mod) example_locs$est_pop <- catchment_populations(mod)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.