WGSSS-funded PhD Researcher in Human Geography | GIS & Spatial Analysis | Accessibility, Mobility & Spatial Data
I am a WGSSS-funded PhD researcher at Aberystwyth University, investigating migrants' lived accessibility in small Welsh towns. My work considers how formal or modelled access to transport, services and opportunities can differ from the access people achieve in everyday life.
Alongside my PhD, I build independent, reproducible projects in transport analysis, geospatial data quality and evidence-informed decision support. I focus on source provenance, transparent assumptions, sensitivity testing and communicating what an analysis can—and cannot—establish.
An independent assessment of how community-level active-travel priority conclusions in Neath Port Talbot change under alternative policy-value weights and normalisation methods.
- Examines 416 routes across 16 communities using five synthetic weighting scenarios.
- Finds a maximum 11-place community rank range across weighting scenarios.
- Shows why a precise independent route-by-route ranking is not defensible with the available community-level evidence.
Methods: GIS, Python, source-data reconciliation, sensitivity analysis and reproducible decision support. Release: v1.0.0.
Independent analysis; not the official NPT or Transport for Wales prioritisation model.
A Python toolkit for comparing successive GTFS Schedule datasets and distinguishing identifier churn from conservative evidence of route or service-calendar continuity.
- Demonstrates that 20 of 22 historical Santa Monica routes had exact semantic matches despite complete route-ID turnover.
- Detects service-calendar changes in MBTA histories despite persistent route identifiers.
- Includes a command-line interface, schemas, provenance records and 31 passing automated tests (local verification, 20 October 2026).
Methods: Python, GTFS, JSON schemas, unittest, CLI tooling and reproducible data comparisons.
Descriptive observability, not GTFS validation or proof of real-world service withdrawal.
An independent observational evaluation of cycling-volume differences associated with Cycleway 6 section B, examining how results depend on counterfactual construction and pre-treatment comparability.
- Assesses three primary monitoring sites using matched donor ensembles, spatial contamination screening and placebo diagnostics.
- Reports heterogeneous site-level results, rather than a single route-wide causal effect.
- Preserves a frozen analytical evidence record; 53 of 53 manifest-listed files passed a local SHA-256 integrity check (20 October 2026).
Methods: Python, time-series comparison, donor selection, counterfactual estimation and robustness analysis. Release: v1.0.0.
Comparison-adjusted differences are not definitive causal treatment effects; no TfL endorsement is implied.
- Environmental EO Evidence Reliability Audit — Tests whether a single-date Sentinel-2 vegetation signal provides decision-ready woodland evidence, examining disagreement with National Forest Inventory and contextual land-cover products rather than promoting a weak binary classifier. Release:
v1.0.0. - Ceredigion NaPTAN–OpenStreetMap Audit — Compares public-transport records using deterministic linkage, spatial candidates and evidence-bounded validation; avoids treating either source as ground truth or making automatic map edits.
These are contributions to upstream projects, separate from my independent portfolio work.
MobilityData — GTFS Validator
- #2175 — Conditional
min_transfer_timevalidation — Merged; tests conditionally required transfer data. - #2178 — Preserve original GTFS source in reports — Merged; improves source reporting.
- #2179 — Detect invalid GTFS line endings — Merged; improves input-file diagnostics.
- #2192 — Recommend
trip_headsign— Merged; improves best-practice field validation.
MobilityData — Mobility Feed API
- #1811 — GTFS-RT location inheritance — Merged; handles location metadata inherited from static feeds.
- #1822 — GTFS-RT entity-type replacement — Merged; corrects stale entity-type retention.
- Transport for the North
caf.viz#48 — Merged XY plotting-column validation with regression tests. - pyproj #1640 — Merged documentation clarification of the CRS acronym.
- pyproj #1638 — Documentation review contribution to CRS concepts and glossary; the pull request was authored by another contributor and merged after review.
My PhD combines questions of accessibility, mobility and belonging with an interest in where service provision and spatial models diverge from lived experience. My technical projects complement that research rather than substitute for it.
Across both, I aim to:
- preserve provenance and make workflows inspectable;
- distinguish observed evidence from interpretation;
- test sensitivity to assumptions and modelling choices;
- avoid converting discrepancies into unsupported error or causal claims;
- document limitations and negative results; and
- stop adding complexity when it is not justified by the decision need.
Research interests: lived accessibility in small towns, transport and service access, active travel, geospatial evidence quality and reproducible spatial analysis.
