golfvec

Category: Supporting tool  |  Status: In active development, in internal use

An aerial-imagery vectorisation pipeline that turns public high-resolution aerial photography into structured hole geometry — greens, fairways, bunkers and hazards — feeding the course data behind LokiLoop.

Why it exists

Accurate yardages need accurate geometry. Community mapping data covers golf courses unevenly: some are mapped in fine detail, many have little more than a boundary, and some are wrong in ways that are invisible until someone is standing on the tee wondering why the number is off by twenty yards. Buying commercial course data for every course is not viable for an independent product.

golfvec closes that gap by deriving geometry directly from aerial imagery, using a segmentation model to trace features that are plainly visible from above, then exporting them as clean geospatial data.

Key capabilities

  • Fetches recent public aerial imagery for a target course.
  • Segments hole features and converts them to vector geometry.
  • Handles projection correctly per course, choosing the appropriate coordinate zone from the course location so measurements stay accurate rather than drifting with distance from a fixed reference.
  • Provides a review interface with a manual draw mode and switchable imagery backgrounds, because automated segmentation gets most of a course right and a human should correct the rest.
  • Exports geometry ready for consumption by the app.

A problem worth noting

One instructive failure: courses that sit adjacent to one another had their greens conflated, because a purely spatial query does not care about property lines. Yardages on affected holes froze or pointed at a neighbouring course's green. The importer now scopes features to each course's own boundary polygon — a good reminder that geospatial data will happily give you a confidently wrong answer.

Current status

Running as an internal service with a review interface, in regular use for producing course data. It is a tool that supports a product rather than a product in its own right, and it is scoped deliberately narrowly to that job.