Package: catchmentACS 0.6.0

catchmentACS: Isochrone-Based Area-Weighted ACS Aggregation

Computes American Community Survey (ACS) estimates for the area within a given drive time of each of a set of points, such as the locations of pre-kindergarten classrooms. Such an area is called an isochrone. The drive-time areas come from a routing service, either the 'Open Source Routing Machine' ('OSRM', <https://project-osrm.org/>) or 'openrouteservice' (<https://openrouteservice.org/>), and the ACS 5-year estimates of census tracts come from the Census Bureau (<https://www.census.gov/data/developers.html>) through the 'tidycensus' package, one state at a time. The tracts that overlap an area are combined by area weighting, which uses two weights: the share of each tract's area that lies inside, for counts and rates, and each tract's share of the overlapping area, for the medians and per-person values of three ACS tables (median household income, median home value, and per capita income). A median or per-person value from any other table is added up like a count. Counts, medians, per-person values, and five rates are returned with a margin of error at a chosen confidence level, 90 percent by default, and with a record of the settings, inputs, and package versions behind the run. The five rates are the poverty rate, the shares of households receiving Supplemental Nutrition Assistance Program (SNAP) benefits and Supplemental Security Income, the unemployment rate, and the labor force participation rate. The margins of error of counts and rates use the approximation formulas in chapter 8 of U.S. Census Bureau (2020) "Understanding and Using American Community Survey Data: What All Data Users Need to Know" <https://www.census.gov/programs-surveys/acs/library/handbooks/general.html>. For a count the formula for a sum is applied to the weighted tract estimates, with the weights treated as fixed. For a rate the default is the formula for a ratio. Its margin of error is at least as wide as that of the formula for a proportion, which the handbook gives for ratios whose numerator is part of the denominator, as it is in all five rates. The margins of error of medians and per-person values are an approximation made by the package.

Authors:JoonHo Lee [aut, cre, cph]

catchmentACS_0.6.0.tar.gz
catchmentACS_0.6.0.zip(r-4.7-any)catchmentACS_0.6.0.zip(r-4.6-any)catchmentACS_0.6.0.zip(r-4.5-any)
catchmentACS_0.6.0.tgz(r-4.6-any)catchmentACS_0.6.0.tgz(r-4.5-any)
catchmentACS_0.6.0.tar.gz(r-4.7-any)catchmentACS_0.6.0.tar.gz(r-4.6-any)
catchmentACS_0.6.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION |NEWS
card.svg |card.png
catchmentACS/json (API)

# Install 'catchmentACS' in R:
install.packages('catchmentACS', repos = c('https://joonho112.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/joonho112/catchmentacs/issues

Pkgdown/docs site:https://joonho112.github.io

Datasets:

On CRAN:

Conda:

4.74 score 26 exports 57 dependencies

Last updated from:42dcf38480. Checks:9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-develOK298
source / vignettesOK253
linux-releaseOK228
macos-releaseOK355
macos-oldrelOK307
windows-develOK233
windows-releaseOK180
windows-oldrelOK167
wasm-releaseOK126

Exports:cacs_acs_default_ratescacs_acs_prefetchcacs_acs_validatecacs_cache_dircacs_cache_statuscacs_capture_conditionscacs_clear_cachecacs_derive_ratescacs_describecacs_get_cache_statecacs_intersect_weightcacs_isochronecacs_moe_to_secacs_plot_site_intersectioncacs_plot_site_isochronecacs_plot_site_pipelinecacs_plot_site_ratescacs_plot_site_weightedcacs_propagate_moecacs_rings_to_cumulativecacs_runcacs_se_to_moecacs_set_cachecacs_summary_as_markdowncacs_validate_isocacs_validate_osrm_endpoint

Dependencies:askpassbitbit64classclassIntclicliprcpp11crayoncurlDBIdigestdplyre1071genericsgluehmshttrhttr2jsonliteKernSmoothlifecyclemagrittrmimeopensslpillarpkgconfigprettyunitsprogressproxypurrrR6rappdirsRcppreadrrlangrvests2selectrsfstringistringrsystibbletidycensustidyrtidyselecttigristzdbunitsutf8uuidvctrsvroomwithrwkxml2

Updating code written for versions 0.1 and 0.2
Summary of changes | Drive-time areas saved with versions 0.1 and 0.2 | Running an older analysis again | Building drive-time areas again | Saved results in the cache

Last update: 2026-09-24
Started: 2026-09-24

A worked example with Alabama Pre-K sites
The sites and the example data | The five steps, one at a time | Steps 1 and 2: downloading and routing | Step 3: overlapping tracts and their weights | Step 4: margins of error | Step 5: rates | The same result in one call | Tables for a report | A plain table with the main columns | Rates by site and drive time | Sites ranked by a rate | One site at three drive times | A table to save | A map | Running on your own sites | References

Last update: 2026-09-24
Started: 2026-09-24

Area weighting of tract estimates
Area weighting and its assumption | Coverage weights and area shares | How the package chooses the weights | Measuring the areas | The calculation for each site | Recomputing the weights for one site | References

Last update: 2026-09-24
Started: 2026-09-24

Getting started with catchmentACS
What catchmentACS does | Install | A first run on the example data | Reading the result | A map of the drive-time areas

Last update: 2026-09-24
Started: 2026-09-24

How the estimates are computed
From tract estimates to drive-time areas | The symbols, the weights, and the estimates | Kinds of estimate and their weights | A worked example with both weights | Margins of error | Limitations | References

Last update: 2026-09-24
Started: 2026-09-24

Mapping each step for one Birmingham site
Stage 1: the drive-time area | Stage 2: the tracts and their weights | Stage 3: one ACS variable | Stage 4: the five rates | All four maps in one call

Last update: 2026-09-24
Started: 2026-09-24

Margins of error for combined estimates
What the margins of error assume | Standard errors and the 90 percent level | Counts, medians, and per-person values | Rates: the proportion and ratio formulas | A negative value under the square root | Zero denominators and missing values | A count: its margin of error from the tract margins | A rate that falls back to the ratio formula | References

Last update: 2026-09-24
Started: 2026-09-24

Rates and their margins of error
A rate is the ratio of two weighted counts | The five rates | Two formulas for the margin of error of a rate | The formula used for each rate | Two rates computed by hand | snap_rate with the ratio formula | labor_force_participation with the proportion formula | All five rates of the example | A rate whose numerator is missing | References

Last update: 2026-09-24
Started: 2026-09-24

Routing services, API keys, and offline use
What each service needs | Census API key | OSRM | openrouteservice | Supplying drive-time areas and ACS estimates | What is not implemented yet | The cache | A run that contacts both services

Last update: 2026-09-24
Started: 2026-09-24

Updating code written for version 0.3
The value of the expression in cacs_capture_conditions() | Drive-time areas built on the public OSRM server | The isochrone column of the list-column form | The row order of as_tibble() | Rates by site in summary(), print(), and Markdown tables | Values in rates_breakdown before 0.4

Last update: 2026-09-24
Started: 2026-09-24

Updating code written for version 0.4
Medians and per-person values | The year argument | Saved ACS estimates and the Census API key | Sites as a plain data frame | The isochrone column when cacs_run() builds the areas | Choices that are not implemented

Last update: 2026-09-24
Started: 2026-09-24

Readme and manuals

Help Manual

Help pageTopics
Convert the result of 'cacs_run()' to a plain tibbleas_tibble.cacs_run_result
Numerator and denominator ACS codes of the five built-in ratescacs_acs_default_rates
ACS variable codes used by defaultcacs_acs_default_vars
Download ACS estimates for the census tracts of one statecacs_acs_prefetch
Check the form of ACS data for census tractscacs_acs_validate
Ten example sites near Alabama city centerscacs_alabama_sites
Get the path of the cache foldercacs_cache_dir
Summarize the files in the cache foldercacs_cache_status
Capture the package's messages and warnings in a tablecacs_capture_conditions
Delete saved results from the cache foldercacs_clear_cache
Compute rates and their margins of error for drive-time areascacs_derive_rates
Describe how a result was producedcacs_describe print.cacs_description
Show the cache settings and how often saved results were usedcacs_get_cache_state
Aggregate ACS tract estimates to drive-time areas by area weightingcacs_intersect_weight
Build drive-time areas around sites with a routing servicecacs_isochrone
Convert a margin of error to a standard errorcacs_moe_to_se
Map the tracts that overlap a drive-time area (map 2 of 4)cacs_plot_site_intersection
Map a site and its drive-time areas (map 1 of 4)cacs_plot_site_isochrone
Build all four maps for one sitecacs_plot_site_pipeline
Map a site with its rates and margins of error (map 4 of 4)cacs_plot_site_rates
Map an ACS variable by tract in a drive-time area (map 3 of 4)cacs_plot_site_weighted
Compute margins of error for drive-time area estimatescacs_propagate_moe
Combine drive-time bands into cumulative drive-time areascacs_rings_to_cumulative
Compute ACS estimates for drive-time areas around sitescacs_run
Convert a standard error to a margin of errorcacs_se_to_moe
Turn the cache on or offcacs_set_cache
Format a summary table as a Markdown tablecacs_summary_as_markdown
Check drive-time areas and list the problems foundcacs_validate_iso
Check whether an OSRM server answers a routing requestcacs_validate_osrm_endpoint
Condition classes for messages, warnings, and errorscatchmentACS-conditions catchmentACS_condition catchmentACS_error catchmentACS_message catchmentACS_warning
Describe the four maps in one lineformat.cacs_site_plot_pipeline
Group the result of 'cacs_run()'group_by.cacs_run_result
Print the result of 'cacs_run()'print.cacs_run_result
Print the summary of a 'cacs_run()' resultprint.cacs_run_summary
Print a summary of the four mapsprint.cacs_site_plot_pipeline
Summarize the result of 'cacs_run()'summary.cacs_run_result