This is the third in a series detailing the projects I have worked on at UCL in the last academic year.
School Catchments was developed to complement the Education Profiler. Like the Education Profiler, It is powered by OpenLayers, but uses Google Maps tiles as its background rather than custom OpenStreetMap-based ones. For each of the schools in the database, it loads in “catchment maps” for the GCSE and A-Level students. OpenLayers’ vector mapping is used to display them on the Google Map. These reveal the “real” catchment areas for a school, which may or may not correlate with the school’s official catchment area, if available (many schools choose not to publish this information.)
Most schools are roughly in the centre of their catchment area, but geographies, spatial distribution of population – and geodemographics – can all act to distort the contour’s shape. In general, the Roman Catholic and other faith schools have noticeably large catchment areas. Of the regular schools, poorly performing schools often have very small catchments. It should be noted that we only had geodemographic data for the state school sector.
The process of developing the catchment maps was interesting – the known postcodes for each pupil are geocoded and the resulting grid of locations is simplified into a single “contour”, generally surrounding at least 60% of the pupils. One requirement was that only a single contour is produced – problematic when one school serves two small and well spaced villages. The contours were created in R, a statistical programming language popular in the academic community – it’s popular in the department, but quite alien to my Java/PHP/python past. I found the learning curve rather steep and am still a “non-proficient” R coder. Most available documentation for R assumes a level of experience I do not have. Searching for R information in Google is a pain too, thanks to its name.
The generation process is highlighted in the second half of this screen video that my boss produced for a presentation – in the context of the School Profiler that also included the catchments.
The website is also the first eCommerce site I’ve developed (my boss is planning on the catchment vectors being available only through a subscription.) It was interesting getting to grips with the eCommerce paradigm. After struggling for a while to try and make sense of Google Checkout (having assumed, incorrectly in this case, that Google=easy) I switched to using NoChex as the payment processor. It is impressively simple to use, if not well documented, and I got the end-to-end flow set up in only a couple of days.
The site is still in “test” mode and needs some polishing (and the underlying data updated) before a public release.