Skip to content

henryspatialanalysis/OpenPOIs

Repository files navigation

OpenPOIs

A unified, confidence-scored open dataset of U.S. points of interest, built from OpenStreetMap and Overture Maps.

OpenPOIs interactive map

License: MIT Data: ODbL Python Site deploy

What is OpenPOIs?

OpenPOIs conflates points of interest from OpenStreetMap and Overture Maps into a single unified dataset, then attaches a per-POI confidence score estimating the probability that the place still exists. Confidence comes from a Bayesian turnover model fit on OSM tag-edit history. The published dataset covers the United States and is refreshed monthly, following the Overture Maps monthly release cycle.

This repository contains the Python library used to produce the data, the end-to-end pipelines that download and conflate sources, and the Vue front-end that powers the live map.

Quickstart β€” read the data

No install required. The dataset is hosted anonymously on Source Cooperative; read it straight from S3:

import pyarrow.dataset as ds
import pyarrow.fs as pafs

BASE = "us-west-2.opendata.source.coop/henryspatialanalysis/openpois"
VERSION = "latest"   # or pin a dated folder, e.g. "2026-04-23-v0"

fs = pafs.S3FileSystem(anonymous = True, region = "us-west-2")
pois = ds.dataset(
    f"{BASE}/{VERSION}/conflated-parquet/",
    filesystem = fs,
    format = "parquet",
    partitioning = "hive",
)
print(pois.schema)
print(f"{pois.count_rows():,} POIs")

GeoPandas, DuckDB, and PMTiles examples live in the dataset README on Source Cooperative.

Python package

The full OpenPOIs package API β€” I/O adapters, the turnover model, conflation primitives β€” is documented at https://openpois.org/docs/.

Installation

This package can be installed from source:

git clone https://github.com/henryspatialanalysis/openpois.git
cd openpois
make build_env          # conda env from environment.yml
conda activate openpois
make install_package    # pip install -e .

Repository layout

Path Purpose
src/openpois/ Library source: I/O, models, conflation, publishing
scripts/ End-to-end pipelines using config.yaml
site/ Vue 3 + Vite frontend powering openpois.org
docs/ Sphinx documentation source
tests/ Unit tests

Reproduce the dataset yourself

The data is produced by four pipelines under scripts/, each driven by config.yaml:

  1. Snapshot downloads (OSM + Overture)
  2. OSM history download and Bayesian turnover-model fit
  3. Apply model to OSM snapshot to get per-POI confidence
  4. Conflate OSM Γ— Overture, partition, publish to Source Cooperative

Each pipeline and its scripts are documented in the workflows reference at https://openpois.org/docs/workflows.html.

Web map

The interactive map at https://openpois.org is a Vue 3 + Vite app rendering PMTiles archives over MapLibre GL. To run it locally:

make site_dev      # http://localhost:5173, hot reload
make site_build    # production build to site/dist/

The site auto-deploys to GitHub Pages via .github/workflows/deploy-site.yml on every push to main that touches site/, src/, docs/, or scripts/.

Development

pytest               # run the test suite
make lint            # flake8 + pylint
make export_env      # rewrite environment.yml after adding deps

Licensing

OpenPOIs is dual-licensed:

Citation

If you use OpenPOIs in research, please cite:

Henry, N. (2026). OpenPOIs: a unified, confidence-scored dataset of U.S. points of interest. Henry Spatial Analysis. https://openpois.org

A machine-readable citation is provided in CITATION.cff; GitHub renders it as a "Cite this repository" button on the repo home page.

Contact

Bug reports, feature requests, and contributions are welcome via GitHub issues.