Skip to content
OvertureMapsPublic

About

Python matchers used by OMF to conflate data.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

69 Commits

Folders and files

Repository files navigation

matchers: conflation for Overture Maps data, in PySpark

Test Python Lint Python 3.11+ Spark 3.5 uv Ruff License: MIT

Python matchers for conflating Overture Maps data.

This repository implements matching for Overture's places, divisions, and addresses themes. Matching is about ID assignment — incoming records from data providers are matched against a persistent baseline. If a record matches, it takes the baseline record's GERS ID. If nothing matches, it gets a new one.

%%{init: {"theme": "dark", "flowchart": {"padding": 14}, "themeVariables": {"fontSize": "14px", "fontFamily": "Montserrat, Arial, sans-serif", "mainBkg": "#001A39", "nodeBorder": "#0EC1BD", "lineColor": "#4051CC", "primaryTextColor": "#FFFFFF", "edgeLabelBackground": "#001A39"}}}%%
flowchart LR
    classDef default rx:8,ry:8,stroke-width:0.75px
    C[Incoming records] --> M[Matcher]
    B[Overture baseline] --> M
    M -->|match| E[Baseline GERS ID]
    M -->|no match| N[New GERS ID]
Loading

Each matcher runs as a PySpark job on AWS Glue 5 (Spark 3.5, Python 3.11). This repo is a port of Overture's Scala matchers, and the package is pre-alpha while the port is in progress. The plan and progress are tracked in OvertureMaps/matchers#1.

Packages

Package Description PyPI
overture_matchers The places, divisions and addresses matchers. PyPI

Each directory under packages/ with a pyproject.toml and a tests/ directory is one package, versioned and published to PyPI on its own.

Design and parity

Path What it holds
python-migration.md The design for the port: the Scala system in brief, the target structure, library swaps and sequencing.
parity/ A harness that compares two matcher runs on the same input and prints where they differ.

Releases

Merging to main releases any package whose changes warrant a version bump. The PR title's Conventional Commits type sets the bump (feat!: major, feat: minor, any other type patch), and the release is tagged <package_dir>-v<version>. See PACKAGE_VERSIONING.md for the flow and the one-time PyPI setup a new package needs.

Contributing

See CONTRIBUTING.md for development setup, tests and lint.

About

Python matchers used by OMF to conflate data.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages