Ran (Jora) Ju · London

I’m a Mathematics with Economics student at UCL. I use quantitative and spatial methods in projects on housing, transport and environmental inequality.

SELECTED WORK · 2026
Ran Ju standing beside stone columns RAN JULONDON2026
Abstract painting evoking an urban network
London housing affordability study London Housing affordability Chicago transit accessibility study Chicago Rail access
01

Research interests

My current interests are transport access, housing affordability and environmental inequality.

01

Mobility & access

Travel times, public transport networks, and access to jobs and services.

02

Housing markets

Housing affordability, spatial sorting, and variation between neighbourhoods.

03

Urban environment

Urban heat, green space, and unequal exposure to environmental risk.

02

Selected projects

Two analyses using public data

London housing.
Chicago rail access.

Each project includes the question, data, method, main result, limitations and the Python code used to produce the figure.

01 / London

HOUSING AFFORDABILITY · 2019

Housing affordability
across London boroughs.

Question

How does the house-price-to-earnings ratio vary across London boroughs, and is it spatially clustered?

London borough price-to-earnings ratio cartogram
FIG 01 Price-to-earnings surface across all 33 London boroughs · 2019
Median borough14.5×price-to-earnings ratio
Inner London mean18.1×14.1× in Outer London
Moran’s I0.17grid adjacency
Findings

Inner London has higher price-to-earnings ratios, with modest positive spatial clustering.

The mean ratio is 18.1 in Inner London and 14.1 in Outer London, a difference of about 28%. Kensington & Chelsea has the highest value at 44.5. Using grid-cartogram adjacency, Moran’s I is 0.17.

A London-wide average masks substantial borough-level variation, so local patterns matter when interpreting affordability.

Method
  1. INGESTGLA Housing in London 2019, Table 3
  2. STANDARDISE33 borough names + Inner / Outer classification
  3. TRANSFORMMedian house price ÷ median workplace earnings
  4. WEIGHTQueen-style neighbours on an auditable grid cartogram
  5. TESTGlobal Moran’s I for spatial autocorrelation
Measure
I = n / W · ΣᵢΣⱼwᵢⱼzᵢzⱼ / Σᵢzᵢ²

zᵢ is each borough’s centred affordability ratio; wᵢⱼ equals one for neighbouring cartogram cells. A positive result indicates like values are closer together than a fully random arrangement.

PythonSpatial weightsDescriptive analysis
Limitations
  • Topology Cartogram neighbours are transparent but approximate true polygon contiguity.
  • Time A 2019 cross-section describes structure; it does not identify a causal shock.
  • Scale Borough averages may hide within-borough affordability gaps.

Next step Land Registry microdata, real borough geometry, local Moran clusters and earnings controls.

Code and data

One script generates the statistics and final cartographic output from the source table.

Open Python source ↗ Official dataset ↗
Abstract painting in blue, ochre and black
02 / Chicago

CTA RAIL ACCESS · CURRENT NETWORK

Distance to the nearest
CTA rail station.

Question

What share of the station-defined study area lies within 1 km of a CTA rail station?

Stations144from 302 stop records
Within 1 km41.3%of the study area
90th percentile3.27 kmnearest-station distance
Chicago nearest CTA station distance surface
FIG 02 Haversine distance to the nearest unique CTA rail station
Findings

Only 41.3% of the station-defined study area lies within 1 km of a station.

The median grid cell is 1.24 km from a station; the 90th-percentile distance is 3.27 km. These figures describe the rail-network hull, not Chicago’s municipal area or population-weighted access.

Station counts alone do not show how access is distributed. The distance surface highlights gaps between rail branches.

Method
  1. INGESTCity of Chicago / CTA dataset 8pix-ypme
  2. DEDUPLICATE302 platform records → 144 stations by map_id
  3. BOUNDConvex hull of the rail network as the study area
  4. SAMPLERegular spatial grid clipped to the network hull
  5. MEASURENearest-station great-circle distance per cell
Measure
d(c) = minₛ∈S Haversine(c, s)

Every valid grid cell c is assigned the minimum geodesic distance to the set of unique stations S. The resulting continuous field makes access gaps comparable across the study surface.

Geodesic distanceConvex hullGrid analysis
Limitations
  • Exposure Area-weighted coverage is not population-weighted accessibility.
  • Boundary The network hull is analytical, not Chicago’s municipal boundary.
  • Service Proximity does not capture frequency, reliability, transfers or fares.

Next step Census weighting, timetable frequency and multimodal travel time to employment centres.

Code and data

The full workflow deduplicates stops, builds the analytical boundary and renders the distance surface.

Open Python source ↗ Official dataset ↗
Abstract painting with flowing blue and coral forms
03

Methods

Tools and methods

My workflow combines data cleaning, spatial analysis and cartographic communication. For each project, I state the unit of analysis, transformations and limitations.

01

Data

Administrative records, transit feeds, property data and public APIs.

SQL · APIs · DATA QA
02

Spatial analysis

Projection, topology, networks, buffers, joins and reproducible geoprocessing.

GEOPANDAS · QGIS · OSMNX
03

Statistical analysis

Panel models, spatial dependence and sensitivity analysis.

PYTHON · ECONOMETRICS · LISA
04

Mapping & visualisation

Cartography that separates evidence, assumptions and interpretation.

MATPLOTLIB · TABLEAU · WEB