..
This commit is contained in:
parent
1ee796b282
commit
ab688243d7
36 changed files with 307 additions and 135 deletions
|
|
@ -5,7 +5,7 @@ The right pane shows each crime metric next to its area context: the mean
|
|||
average-annual count (``"X (/yr, 7y)"``) across the selection's postcode sector (e.g.
|
||||
``"E14 2"``), its outcode (e.g. ``"E14"``), and the nation. Crime is constant
|
||||
within a postcode (the merge keys it on the postcode), so each postcode
|
||||
contributes its single value weighted by how many properties sit in it — keeping
|
||||
contributes its single value weighted by how many properties sit in it, keeping
|
||||
every scope on the same property-weighted basis as the per-selection mean, so the
|
||||
four numbers (this selection / sector / outcode / nation) are directly
|
||||
comparable. The national figure here is an EXACT property-weighted mean, which is
|
||||
|
|
@ -18,7 +18,7 @@ crime values from ``postcode.parquet`` and the per-postcode property weights fro
|
|||
``properties.parquet`` mirrors exactly the two inputs the server loads, so the
|
||||
result matches what the server used to compute (minus its u16 quantization loss).
|
||||
|
||||
Output schema — one row per area:
|
||||
Output schema, one row per area:
|
||||
|
||||
scope : ``"national"`` | ``"outcode"`` | ``"sector"``
|
||||
area : the outcode (``"E14"``) / sector (``"E14 2"``);
|
||||
|
|
@ -43,7 +43,7 @@ SCOPE_NATIONAL = "national"
|
|||
SCOPE_OUTCODE = "outcode"
|
||||
SCOPE_SECTOR = "sector"
|
||||
|
||||
# Area label on the national row — it spans the whole country, so it has no code.
|
||||
# Area label on the national row. It spans the whole country, so it has no code.
|
||||
NATIONAL_AREA = ""
|
||||
|
||||
# Both merge outputs key on the canonical NSPL `pcds` postcode (spaced, e.g.
|
||||
|
|
@ -71,7 +71,7 @@ def _weighted_mean(column: str) -> pl.Expr:
|
|||
|
||||
A null crime value is a genuine gap (the postcode's police force published no
|
||||
usable data), not zero crime, so it must dilute neither the numerator nor the
|
||||
denominator — exactly as the server's former estimator skipped NaN values.
|
||||
denominator, exactly as the server's former estimator skipped NaN values.
|
||||
Yields null when no postcode in the group has data for this type.
|
||||
"""
|
||||
weight = pl.col(_WEIGHT_COLUMN)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue