Ottawa Neighborhoods & Suburbs

To make it easier to figure out the general location of unknown facilities (the address is kind of unhelpful), I group facilities into central/east/west/south sectors and include a label for the general region.

This page explains my methodology to determine the grouping.

Region Sector boundary Facility

Regions#

Defining the boundaries of areas such as Gloucester, Kanata, Orléans, Vanier, Centretown and Westboro is more challenging than it might initially appear. While any person in Ottawa could probably tell you where they are, there isn’t any authoritative source clearly defining the boundaries, especially if you don’t want the names to be general enough to be useful for someone not already familiar with the area.

If you break things down by the official ward boundaries, it mostly works. However, what most people would refer to as “Westboro” is actually named “Kitchissippi”, “Alta Vista” is spread across multiple, and downtown areas are split across several wards, making them a poor match for intuitive labels.

If you instead use detailed neighbourhood definitions, the Ottawa Neighbourhood Study provides a well-documented set of boundaries with associated demographic data. However, these neighbourhoods are intentionally granular and statistically oriented, resulting in a level of fragmentation that is too fine for it to be used as a high-level grouping mechanism.

Postal code areas provide another alternative, but they are designed for mail routing rather than geography. As a result, they often produce awkward splits in suburban regions such as Orléans and Barrhaven, and they can vary significantly in spatial size, making them too inconsistent for this purpose.

I eventually realized that the labels already present on common mapping tools (e.g., Google Maps, OpenStreetMap) were basically what I wanted. However, further investigation revealed that these labels correspond to a point near the centre rather than defined polygons I could use to group facilities.

A common way to derive regions from such point data is to construct a Voronoi diagram, which partitions space so that every location is assigned to the nearest labelled point. This produces a set of non-overlapping cells that approximate areas around each place name.

I implemented this approach using OpenStreetMap data (via the Overpass API), and it turns out that it classifies almost all facilities the way you’d expect, while remaining deterministic, reproducible, and free from subjective boundary decisions.

There were a few edge cases for facilities within a few hundred meters of the computed boundaries, but these were fixable by adding a weight mechanism so I could bump them slightly.

Sectors#

For the more broad central/south/east/west classifications, I just drew some approximate lines.

Region centrepoints#

This is the OpenStreetMap data I use to determine the boundaries.

NameEntity TypeLatitudeLongitude
AlmonteTown45.22605-76.19453
Alta VistaSuburb45.38655-75.66254
AngersVillage45.52408-75.49166
AppletonVillage45.18131-76.12581
ArnpriorTown45.43351-76.35437
AshtonVillage45.15680-76.03226
AylmerSuburb45.39509-75.84425
BaldersonVillage44.95209-76.32686
BarrhavenSuburb45.28017-75.75971
Bells CornersSuburb45.32008-75.82967
BerwickVillage45.17570-75.10904
Bishops MillsVillage44.87249-75.70098
Blackburn HamletSuburb45.43197-75.56428
BlakeneyVillage45.26679-76.24432
BourgetVillage45.43487-75.15789
BraesideVillage45.46114-76.40199
BrinstonVillage44.93963-75.35993
BristolVillage45.53045-76.45753
BuckinghamTown45.58647-75.41683
BurnstownVillage45.38913-76.57945
Burritts RapidsVillage44.98072-75.79703
CantleyVillage45.56647-75.78232
Carleton PlaceTown45.14034-76.14657
CarlingtonSuburb45.37994-75.73152
CarpVillage45.34515-76.03672
CasselmanTown45.31353-75.08675
CentretownSuburb45.41634-75.69429
ChelseaVillage45.50317-75.80802
CheneyVillage45.41115-75.24242
ChestervilleVillage45.10243-75.22892
Clarence CreekVillage45.50699-75.21835
Clarence-RocklandCity45.47655-75.21052
ClaytonVillage45.19157-76.32641
Constance BayVillage45.48623-76.07357
CryslerVillage45.21848-75.15275
CumberlandVillage45.51677-75.41070
EmbrunTown45.27420-75.27491
FallbrookVillage44.95614-76.39127
Farm PointVillage45.60276-75.89259
FinchVillage45.14322-75.08493
Fitzroy HarbourVillage45.47169-76.21491
FranktownVillage45.04063-76.06059
GalettaVillage45.42523-76.25568
GatineauCity45.42777-75.71098
GloucesterSuburb45.43506-75.60893
GreelyVillage45.26270-75.56003
HallvilleVillage45.06178-75.51759
HammondVillage45.44158-75.23994
HintonburgSuburb45.40297-75.72513
HopetownVillage45.08225-76.44600
HullSuburb45.44058-75.73268
InnisvilleVillage45.05376-76.25003
IroquoisVillage44.84928-75.31511
JasperVillage44.83251-75.93473
KanataSuburb45.31280-75.89405
KarsVillage45.15493-75.64842
KemptvilleTown45.01542-75.64457
KenmoreVillage45.22789-75.41453
KinburnVillage45.39177-76.18834
Lac-des-LoupsVillage45.68540-76.21097
LanarkVillage45.01814-76.36499
LimogesVillage45.33414-75.25200
LombardyVillage44.82409-76.09230
LouisvilleVillage44.89771-75.01602
LowertownSuburb45.43249-75.68938
LuskvilleVillage45.53260-76.01447
ManotickVillage45.22644-75.68606
MariatownVillage44.88483-75.20348
MassonVillage45.54452-75.41653
Masson-AngersSuburb45.54670-75.43808
MerrickvilleTown44.91611-75.83693
Merrickville-WolfordVillage44.86345-75.85012
MetcalfeTown45.23622-75.47264
MiddlevilleVillage45.09806-76.39626
MorewoodVillage45.17750-75.28544
MorrisburgTown44.89770-75.18296
MountainVillage45.03383-75.49489
MunsterVillage45.16433-75.93986
NavanVillage45.42111-75.42595
NepeanSuburb45.34469-75.76394
NewingtonVillage45.11659-75.01370
North GowerVillage45.13326-75.71653
Norway BayVillage45.51825-76.41612
Old Ottawa EastSuburb45.40829-75.67594
Old Ottawa SouthSuburb45.39381-75.68412
OrléansSuburb45.48103-75.51000
OsgoodeVillage45.14088-75.61546
OttawaCity45.42088-75.69011
Oxford MillsVillage44.96544-75.67816
PakenhamVillage45.33307-76.29030
PapineauvilleVillage45.61884-75.02014
PendletonVillage45.45049-75.06345
PerkinsVillage45.60015-75.61934
PerthTown44.89924-76.24873
PlaisanceVillage45.60635-75.11352
Port ElmsleyVillage44.89265-76.12074
QuyonVillage45.52046-76.23023
RichmondVillage45.19433-75.83863
Riverside SouthSuburb45.28211-75.68577
Rockcliffe ParkSuburb45.45096-75.67895
RocklandTown45.54858-75.29156
RussellTown45.25732-75.35833
Saint Pascal BaylonVillage45.49469-75.15569
Saint-Pierre de WakefieldVillage45.68452-75.71803
Saint-SixteVillage45.69874-75.20725
Sainte-Cécile-de-MashamVillage45.64022-76.03723
Sandy HillSuburb45.42635-75.67777
SarsfieldVillage45.44205-75.34483
ShanlyVillage44.89098-75.47041
ShawvilleVillage45.60356-76.49147
Smiths FallsTown44.90133-76.02121
South KeysSuburb45.35981-75.65364
South MountainVillage44.99027-75.45126
SpencervilleVillage44.84331-75.54637
St. AlbertVillage45.25502-75.12210
StittsvilleSuburb45.25848-75.92064
The GlebeSuburb45.40248-75.69239
ThursoTown45.59819-75.24605
VanierSuburb45.43641-75.66191
VarsVillage45.35599-75.35278
VernonVillage45.16089-75.46204
WabaVillage45.35050-76.46195
WaddingtonVillage44.86463-75.20416
WakefieldVillage45.63997-75.92926
WendoverVillage45.57260-75.12709
WestboroSuburb45.39196-75.75429
White LakeVillage45.35496-76.49125
WilliamsburgVillage44.97487-75.24366
WinchesterTown45.09288-75.35299

Weight tweaks#

To fix the classification of a few facilities near the edges, I added a weight mechanism to tweak the boundaries of some of the regions. Each weight is a distance added to (or, when negative, subtracted from) a region’s reach, so a positive value grows its cell and a negative value shrinks it. A few facilities sit just over a region’s edge but clearly belong to its neighbour; a small weight nudges the boundary past them.

The table below lists each weight and the facilities it reassigned, against the unweighted result. The distance is how far past the unweighted boundary the facility sat, which is the gap the weights had to close. A couple of facilities needed a pair of tweaks: one to shrink the region they were wrongly in, and one to grow the neighbour that should have them.

RegionWeightReassigned facilities
Aylmer-1.50 km
Pinhey's Point Historic Site → Constance Bay 0.71 km
Centretown+0.45 km
Hintonburg-0.60 km
Fisher Park Community Centre → Westboro 0.88 km
Plant Recreation Centre → Centretown 0.89 km
Old Ottawa South-0.10 km
Lansdowne Park → The Glebe 0.02 km
South Keys-0.40 km
Albion-Heatherington Recreation Centre → Alta Vista 0.33 km
Jim Durrell Recreation Centre → Alta Vista 0.01 km
Westboro+0.60 km