Load the bundled BIDIRECTIONAL 158 <-> 140 neighbourhood crosswalk
Source:R/toronto_neighbourhoods.R
morie_to_hood_crosswalk.RdReturns the bundled inst/extdata/to_hood_158_140_crosswalk.csv,
computed from polygon intersection of the two upstream Open Toronto
GeoJSON layers (Neighbourhoods - 4326.geojson and
Neighbourhoods - historical 140 - 4326.geojson) reprojected to
EPSG:3347 (NAD83 Statistics Canada Lambert – metric, accurate
areas). Seven columns:
Value
A data.frame with the columns above. hood_140 and
hood_158 are character (zero-padded to 3 chars).
Details
- hood_140
3-char zero-padded historical short code
- name_140
historical neighbourhood name (carries "(NN)" suffix)
- hood_158
3-char zero-padded current short code
- name_158
current neighbourhood name
- pct_140_in_158
FORWARD: percent of the 140's area inside this 158. Per-140 rows sum to 100. Used by
morie_tps_disaggregate_140_to_158()as the cake-cutting weight under a uniform-density assumption.- pct_158_in_140
REVERSE: percent of the 158's area inside this 140. Per-158 rows sum to 100. For pure cake-cuts every split child has
pct_158_in_140 == 100(each 158 is entirely inside its parent 140), somorie_tps_aggregate_158_to_140()is mathematically EXACT (lossless sum) for the 1:1 + split cohort. Only the one split+merge sliver in the bundled OT data has a non-100 reverse percent.- relation
"1:1" / "split" (one 140 -> N 158s) / "merge" (multiple 140s -> one 158) / "split+merge"
Empirical distribution on the bundled OT data:
123 1:1 rows (78\
34 split rows (16 historical hoods) – pct_158_in_140 == 100
1 merge – both percents == 100
1 split+merge – one sliver < 100