Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 14 additions & 15 deletions posts/spatial-access-to-public-libraries-toronto/+page.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,22 @@
"Allen, J. (2019). Mapping differences in access to public libraries by travel mode and time of day. *Library & Information Science Research*, 41(1), 11–18. [DOI](https://doi.org/10.1016/j.lisr.2019.02.001)."
);
const fCheng = footnoteStore.addFootnote(
"Cheng, W., Wu, J., & Hong, L. (2021). Assessing the spatial accessibility and spatial equity of public libraries' physical locations. *Library & Information Science Research*, 43(2), 101097. [DOI](https://doi.org/10.1016/j.lisr.2021.101097)."
"Cheng, W., Wu, J., Moen, W., & Hong, L. (2021). Assessing the spatial accessibility and spatial equity of public libraries' physical locations. *Library & Information Science Research*, 43(2), 101089. [DOI](https://doi.org/10.1016/j.lisr.2021.101089)."
);
const fDonnelly = footnoteStore.addFootnote(
"Donnelly, F. P. (2014). The geographic distribution of United States public libraries: An analysis of locations and service areas. *Journal of Librarianship and Information Science*, 46(2), 110–129. [DOI](https://doi.org/10.1177/0961000612473099)."
"Donnelly, F. P. (2014). The geographic distribution of United States public libraries: An analysis of locations and service areas. *Journal of Librarianship and Information Science*, 46(2), 110–129. [DOI](https://doi.org/10.1177/0961000612470276)."
);

</script>

<div class="text">

<p>
Toronto has 101 public library branches. People who live closer to one visit more often and
borrow more.<Footnote id={fBhatt} /><Footnote id={fPark} /> We mapped how long it takes to reach
the nearest library from across the city, on foot and by public transit.
People who live closer to a library tend to visit it more often, borrow more resources,
and access its social services more easily.<Footnote id={fBhatt} /><Footnote id={fPark} /> We mapped how long it takes to reach the nearest public library from any location in Toronto, on foot and by public transit.
</p>
<p>
On foot, 35% of residents can reach the nearest library within 15 minutes. The areas least connected to libraries are in more inner-suburban neighbourhoods, areas with fewer libraries and lower population density. When looking at access via public transit, the share of residents unable to access a library within 30 minutes drops to 5%.
On foot, 35% of Torontonians can reach the nearest library within 15 minutes and 79% within 30 minutes; by transit, those shares rise to about 40% and 95%. The areas least connected to libraries are inner-suburban neighbourhoods, which have fewer libraries and lower population density.
</p>

</div>
Expand All @@ -48,10 +47,10 @@

<div class="text">
<p>
Public libraries offer important programming to serve different population groups, including recent immigrants, youth, and seniors. Research in other contexts has shown that accessibility to libraries varies across travel modes and population groups.<Footnote id={fAllen} /><Footnote id={fCheng} /><Footnote id={fDonnelly} /> Using census data in Toronto, we mapped the geography of a few population groups that often have specific needs for library services and programs, relative to library branch locations.
According to research conducted in other urban areas, accessibility to libraries varies across travel modes and population groups.<Footnote id={fAllen} /><Footnote id={fCheng} /><Footnote id={fDonnelly} /> With public libraries offering programming for such target populations as recent immigrants, youth, and seniors, it is crucial to account for differences in library access across demographic groups. Using census data, we mapped where these groups are concentrated across Toronto in relation to the locations of library branches.
</p>
<p>
You can view and compare both these sets of maps, including at a more zoomed-in neighbourhood level, on our interactive tool.
If you want to explore demographic data against the transit travel data, including at a more zoomed-in neighbourhood level, you can refer to our <a href="https://schoolofcities.github.io/libraries-by-transit/toronto-proximity" target="_blank" rel="noopener noreferrer">interactive tool</a>.
</p>

</div>
Expand All @@ -63,7 +62,7 @@
<div class="text">

<p>
Across every group we examined, travel time to the nearest library is close to the citywide figure. Immigrants, low-income households, children, seniors, and visible minority residents all face slightly longer trips on average, but the gaps are small, about 70 seconds at most. In the areas with the longest travel times, some groups are marginally better off than the city as a whole. On this measure, branch locations serve Toronto's population evenly.
Across every population group examined, travel time to the nearest library is close to the citywide median. Immigrants, low-income households, children, seniors, and visible minority residents all face slightly longer trips on average, but the gaps are small, 71 seconds at most. By transit, every group's median is within 45 seconds of the citywide median.
</p>

</div>
Expand All @@ -79,32 +78,32 @@
<h2>Methods and data</h2>

<p>
We covered the city with a 200 metre hexagon grid and measured outward from each cell.
Travel times were computed in Python using r5py using a pedestrian network from OpenStreetMap and TTC transit schedules, so they follow the routes a person could actually take rather than straight-line distance. Travel times were computed in Python with the r5py package from the centroid of each cell in the 200 metre hexagon grid covering the City of Toronto boundary, for two mode scenarios: walking and public transit. For each mode and hexagon, we estimated the minimum travel time to a branch. Public transit travel times were computed during a late morning window Tuesday (representing a typical weekday) as well as on a Saturday. Weekday and Saturday results were very similar, so we combined them into a single transit metric for the maps on this page.
We overlaid a grid of 200-metre hexagons on Toronto and calculated the travel time from each hexagon to the nearest library branch.
Travel times were computed with the r5py Python library, using OpenStreetMap's pedestrian network and TTC transit schedules, so they follow realistic routes rather than straight-line distance. We modelled two scenarios: walking only, and walking plus public transit. For transit, we computed the minimum travel time for a late-morning departure window on a Tuesday (a typical weekday) and on a Saturday. Because the weekday and Saturday results were very similar, the maps on this page combine them into a single transit measure. The separate Tuesday and Saturday isochrones can be explored on the <a href="https://schoolofcities.github.io/libraries-by-transit/toronto-proximity" target="_blank" rel="noopener noreferrer">interactive web map</a>.
</p>

<p>
Demographic counts from each Dissemination Area (DA) are distributed onto the hexagon grid by area-weighted overlay (most DAs are larger than hexagons, so each DA's population is allocated to the hexagons it covers in proportion to overlap area). For each demographic group, we computed population-weighted means, medians, and percentiles of travel times. For the maps shown above, we used larger census tracts to help visualize neighbourhood differences (some DAs are quite small and would be illegible on maps of this scale, but DAs were more accurate for linking to the hexagon grid).
</p>

<p>
Data and code are in our <a href="https://github.com/schoolofcities/public-libraries" target="_blank" rel="noopener noreferrer">GitHub repository</a>.
Data and code are in our <a href="https://github.com/schoolofcities/libraries-by-transit" target="_blank" rel="noopener noreferrer">GitHub repository</a>.
</p>

<h3>
Limitations
</h3>

<p>
Travel times are computed from hexagon centroids, so results may be sensitive to the choice of grid size and placement. We also only measured travel time to Toronto Public Library branches, so residents near the city boundary may have a closer branch in a neighbouring municipality that offers them at least some services.
Travel times are computed from hexagon centroids, so results may be sensitive to the choice of grid size and placement. Additionally, we only measured travel time to Toronto Public Library branches. It is possible that Torontonians near the city boundary have close access to a library in a neighbouring municipality, which could decrease the differences in travel times established in this project.
</p>

<p>
In terms of the demographic data, the 2021 Census data was the most recent available at the time of writing, though population composition in some areas may have shifted since.
In terms of the demographic data, the 2021 Census was the most recent available at the time of writing, though population composition in some areas may have shifted since. Applying our methodology to the 2026 Census data will provide more up-to-date findings on the topic.
</p>

<p>
The maps and analysis measures geographic accessibility based on transportation network datasets, not service access. The departure windows were chosen to fall within typical TPL operating hours on both a weekday and a Saturday, but individual branch hours vary and aren't accounted for. We also did not account for the types of services or collection each branch provides, and therefore the population groups it may attract. Filtering through libraries with programming catered to a specific group's needs and interests could give a more nuanced picture of access to library services.
The analysis measures geographic accessibility based on transportation network datasets, not library services availability. The departure windows were chosen to fall within typical TPL operating hours on both a weekday and a Saturday, but individual branch hours vary and aren't accounted for. We also did not account for the types of services each branch provides, and therefore the population groups it may attract. Filtering through libraries with programming catered to a specific group's needs could give a more nuanced insight into library services access for the target demographic groups.
</p>

</div>
Expand Down
10 changes: 5 additions & 5 deletions posts/spatial-access-to-public-libraries-toronto/charts.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@ const charts = {
'spatial-access-map': {
title: 'Proximity to public libraries in Toronto',
subtitle:
'79% of residents can reach a library within 30 minutes on foot, and 95% of residents can by public transit',
'Most Torontonians can reach a library within 30 minutes: 79% on foot, 95% by transit',
source:
'Toronto Public Libraries, City of Toronto, Toronto Transit Commission, OpenStreetMap (2026)',
'Toronto Public Library, City of Toronto, Toronto Transit Commission, OpenStreetMap (2026)',
alt:
"Two stacked maps of Toronto covering the same area, the upper one for walking and the lower one for public transit. Both shade a fine hexagon grid into three travel-time bands: dark blue under 15 minutes, mid blue 15 to 30 minutes, and pale blue 30 minutes or more. Yellow dots mark the 101 library branches, thin red lines the major transit routes, and dark outlines the 25 municipal wards, each labelled by number; Etobicoke, North York, East York, Scarborough and Downtown are named. On the walking map dark blue forms a small cluster around each branch, separated by broad pale-blue areas that are largest in western and southern Etobicoke, north-central North York, and northern and eastern Scarborough. On the transit map almost the whole city is mid or dark blue, with pale blue reduced to scattered pockets around the city's outer edges.",
"Two stacked maps of Toronto covering the same area, the upper one for walking and the lower one for public transit. Both shade a fine hexagon grid into three travel-time bands: dark blue under 15 minutes, mid blue 15 to 30 minutes, and pale blue 30 minutes or more. Yellow dots mark the 101 library locations, thin red lines the major transit routes, and dark outlines the 25 municipal wards, each labelled by number; Etobicoke, North York, East York, Scarborough and Downtown are named. On the walking map dark blue forms a small cluster around each branch, separated by broad pale-blue areas that are largest in western and southern Etobicoke, north-central North York, and northern and eastern Scarborough. On the transit map almost the whole city is mid or dark blue, with pale blue reduced to scattered pockets around the city's outer edges.",
widths: [1080],
graphicVerb: 'created'
},
'demographics-grid': {
title: "Six population groups, mapped relative to library locations",
subtitle:
"Share of each census tract's population, with public library branches marked on every map",
source: 'Census of Population, Statistics Canada (2021); Toronto Public Libraries',
source: 'Census of Population, Statistics Canada (2021); Toronto Public Library',
alt:
"Six small maps of Toronto, each shading the city's census tracts into four classes by one population measure, with its own colour ramp and class breaks: visible minority in purple (breaks at 25, 50 and 75 per cent), low income in blue (30, 35, 40), recent immigrants in red (3, 6, 9), first-generation immigrants in teal (35, 50, 65), seniors aged 65 and over in navy (15, 17.5, 20), and children aged 0 to 14 in green (12, 14, 16). Yellow dots mark the public library branches on every panel. Every group is least present in the central corridor running from downtown out to the east end, but concentrations beyond it differ by group: the northwest is highest for low income and recent immigrants, Scarborough for visible minority and first-generation immigrants, and western Etobicoke for seniors.",
widths: [360, 720, 1080],
Expand All @@ -36,7 +36,7 @@ const charts = {
'travel-time-boxplot': {
title: 'Travel time to the nearest library by demographic group',
subtitle: "Every group's median is at or just slightly above the citywide median",
source: 'Census of Population, Statistics Canada (2021); Toronto Public Libraries, City of Toronto, Toronto Transit Commission, OpenStreetMap (2026)',
source: 'Census of Population, Statistics Canada (2021); Toronto Public Library, City of Toronto, Toronto Transit Commission, OpenStreetMap (2026)',
alt:
"Two panels of horizontal box-and-whisker rows comparing travel time to the nearest library, one panel for walking on an axis running from 0 to about 40 minutes and one for public transit on a 0 to 30 minute axis. Each panel has seven rows: the total population in grey, then visible minority, low income, recent immigrants, first-generation immigrants, seniors aged 65 and over, and children aged 0 to 14, each in that group's own colour from the maps above. Every row shows the 10th and 90th percentiles as whisker ends, the 25th to 75th percentile as a box, and the median as a line inside the box. Within each panel the rows are near-identical: walking medians sit between 19 and 21 minutes and transit medians between 17 and 18, with every group's median within about a minute of the total population's. The walking distributions are much wider than the transit ones, spanning roughly 10 to 38 minutes against 10 to 27.",
data: 'travel_time_percentiles.csv',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<div class="grid">
{#each PANELS as panel}
<div class="panel">
<div class="panel-title">{panel.label} (%)</div>
<div class="panel-title">{panel.label} </div>
<div class="legend-row">
<div class="legend">
{#each panel.colors as color}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@
</div>
<div class="legend-row extra-legend-row">
<span class="transit-line-swatch"></span>
<span class="extra-legend-label">Major transit line</span>
<span class="extra-legend-label">Major transit lines</span>
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@
<div class="panel" style={panelStyle}>
<div class="panel-title">
Median travel time by <span class="mode-underline">{panel.modeText}</span> to the nearest library
(minutes)
(decimal time, where 0.1 min = 6 seconds)
</div>
<!-- overflow: visible on .boxplot — transit's last gridline sits exactly at
plotRight, the SVG's own right edge, with nothing (no marginRight/rightPad)
Expand Down
14 changes: 6 additions & 8 deletions posts/spatial-access-to-public-libraries-toronto/meta.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"title": "How long does it take to get to a library in Toronto?",
"type": "post",
"summary": "Mapping public transit and pedestrian accessibility to public libraries in Toronto, and whether travel times differ by demographic group.",
"summary": "Most Torontonians can reach a public library within 30 minutes: 79% on foot and 95% by transit.",
"authors": ["Polina Gorn", "Jeff Allen"],
"published": "2026-10-01",
"license": "CC-BY-4.0",
Expand All @@ -14,21 +14,19 @@
"type": "explorer",
"authors": ["Polina Gorn", "Jeff Allen"],
"year": 2026,
"title": "Spatial access to public libraries in Toronto",
"title": "Proximity to public libraries in Toronto interactive map",
"publication": "School of Cities",
"link": "https://github.com/schoolofcities/public-libraries",
"link": "https://schoolofcities.github.io/libraries-by-transit/toronto-proximity",
"linkType": "Website"
},
{
"relation": "from",
"type": "code",
"authors": ["Polina Gorn", "Jeff Allen"],
"authors": ["School of Cities"],
"year": 2026,
"title": "Spatial access to public libraries in Toronto",
"publication": "School of Cities",
"link": "https://github.com/schoolofcities/public-libraries",
"title": "Libraries by transit",
"link": "https://github.com/schoolofcities/libraries-by-transit",
"linkType": "GitHub"
}

]
}
Loading