urban-mapper
Spatial Join & Enrich any urban layer given any external urban dataset of interest, streamline your urban analysis with Scikit-Learn-Like pipelines, and share your insights with the urban research community!
Science Score: 52.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
✓Institutional organization owner
Organization vida-nyu has institutional domain (vida.engineering.nyu.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.0%) to scientific vocabulary
Keywords
Repository
Spatial Join & Enrich any urban layer given any external urban dataset of interest, streamline your urban analysis with Scikit-Learn-Like pipelines, and share your insights with the urban research community!
Basic Info
- Host: GitHub
- Owner: VIDA-NYU
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://urbanmapper.readthedocs.io/en/latest/
- Size: 27.9 MB
Statistics
- Stars: 55
- Watchers: 7
- Forks: 4
- Open Issues: 10
- Releases: 1
Topics
Metadata Files
README.md
UrbanMapper
Enrich Urban Layers Given Urban Datasets
with ease-of-use API and Sklearn-alike Shareable & Reproducible Urban Pipeline

[!IMPORTANT] - 📹
UrbanMapperIntroductory Video 👉 https://www.youtube.com/watch?v=QUmfvda_z2U 👈 - 🤝 We support JupyterGIS following one of yourUrban Pipeline's analysis for collaborative in real-time exploration on Jupyter 🏂 Shout-out to @mfisher87 andJGISteam for their tremendous help.
UrbanMapper, In a Nutshell
UrbanMapper lets you link your data to spatial features—matching, for example, traffic events to streets—to enrich
each location with meaningful, location-based information. Formally, it defines a spatial enrichment
function $f(X, Y) = X \bowtie Y$, where $X$ represents urban layers (e.g., Streets, Sidewalks, Intersections and
more)
and $Y$ is a user-provided dataset (e.g., traffic events, sensor data). The operator $\bowtie$ performs a spatial
join, enriching each feature in $X$ with relevant attributes from $Y$.
In short, UrbanMapper is a Python toolkit that enriches typically plain urban layers with datasets in a reproducible,
shareable, and easily updatable way using minimal code. For example, given traffic accident data and a streets layer
from OpenStreetMap, you can compute accidents per street with
a Scikit-Learn–style pipeline called the Urban Pipeline—in under 15 lines of code.
As your data evolves or team members want new analyses, you can share and update the Urban Pipeline like a trained
model, enabling others to run or extend the same workflow without rewriting code.
There are more to UrbanMapper, explore!
Installation
Install UrbanMapper via pip (works in any environment):
bash
pip install urban-mapper
Then launch Jupyter Lab to explore UrbanMapper:
bash
jupyter lab
[!TIP] We recommend installing
UrbanMapperin a virtual environment to keep things tidy and avoid dependency conflicts. You can find detailed instructions—including how to install within a virtual environment using uv, conda or from source in the UrbanMapper Installation Guide.
Urban Layers Currently Supported
UrbanMapper currently supports loading the following urban layers:
- Street networks (
roadsandintersections) fromOpenStreetMapvia OSMNx - Pedestrian infrastructure (
sidewalksandcrosswalks) viaTile2Net( automated mapping from aerial imagery) - City features (
buildings,parks,bike lanes, etc.) fromOpenStreetMapvia OSMNx - Administrative boundaries (
neighborhoods,cities,states,countries) fromOpenStreetMapvia OSMNx
More layers, like subway/tube networks, will be added in the future. If you have any suggestions, please feel free
to
open an issue or a pull request!
🚀 Getting Started with UrbanMapper
Are you ready to dive into urban data analysis in a couple of lines of code? The simplest approach to get started with
UrbanMapper is to look
through the two getting-started examples available in the documentation then walk through the hands-on examples in the
examples/ directory. Documentation is available
at UrbanMapper Documentation.
Licence
UrbanMapper is released under the MIT Licence.
Acknowledgments
This work is supported by the NSF and is part of the OSCUR initiative.

Owner
- Name: VIDA-NYU
- Login: VIDA-NYU
- Kind: organization
- Location: New York, NY
- Website: https://vida.engineering.nyu.edu/
- Twitter: nyuvida
- Repositories: 92
- Profile: https://github.com/VIDA-NYU
Visualization, Imaging, and Data Analysis Center at New York University
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this library, please cite it as below 👇" authors: - family-names: "Provost" given-names: "Simon" orcid: "https://orcid.org/0000-0001-8402-5464" - family-names: "Rulff" given-names: "Joao" orcid: "https://orcid.org/0000-0003-3341-7059" - family-names: "Castelo Quispe" given-names: "Sonia" orcid: "https://orcid.org/0000-0001-6881-3006" - family-names: "Felix Dias" given-names: "Fabio" orcid: "https://orcid.org/0000-0003-2081-1233" - family-names: "Freire" given-names: "Juliana" orcid: "https://orcid.org/0000-0003-3915-7075" - family-names: "T. Silva" given-names: "Claudio" orcid: "https://orcid.org/0000-0003-2452-2295" title: "🗺️ Spatial Join & Enrich any urban layer given any external urban dataset of interest, streamline your urban analysis with Scikit-Learn-Like pipelines, and share your insights with the urban research community!" version: 0.0.1 date-released: 2025-04-27 url: "https://github.com/VIDA-NYU/UrbanMapper"
GitHub Events
Total
- Create event: 41
- Commit comment event: 2
- Issues event: 36
- Watch event: 45
- Delete event: 39
- Member event: 1
- Issue comment event: 86
- Push event: 166
- Pull request review event: 97
- Pull request review comment event: 94
- Pull request event: 59
- Fork event: 3
Last Year
- Create event: 41
- Commit comment event: 2
- Issues event: 36
- Watch event: 45
- Delete event: 39
- Member event: 1
- Issue comment event: 86
- Push event: 166
- Pull request review event: 97
- Pull request review comment event: 94
- Pull request event: 59
- Fork event: 3
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Provost Simon | s****t@e****u | 132 |
| sonia | s****2@g****m | 9 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 51
- Total pull requests: 75
- Average time to close issues: about 1 month
- Average time to close pull requests: 1 day
- Total issue authors: 3
- Total pull request authors: 4
- Average comments per issue: 2.31
- Average comments per pull request: 0.56
- Merged pull requests: 71
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 51
- Pull requests: 75
- Average time to close issues: about 1 month
- Average time to close pull requests: 1 day
- Issue authors: 3
- Pull request authors: 4
- Average comments per issue: 2.31
- Average comments per pull request: 0.56
- Merged pull requests: 71
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- simonprovost (23)
- soniacq (4)
- fabiofelix (1)
Pull Request Authors
- simonprovost (56)
- soniacq (7)
- ctsilva (4)
- fabiofelix (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 3
-
Total downloads:
- pypi 133 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 15
- Total maintainers: 1
proxy.golang.org: github.com/vida-nyu/urbanmapper
- Documentation: https://pkg.go.dev/github.com/vida-nyu/urbanmapper#section-documentation
- License: mit
-
Latest release: v0.1.4
published 6 months ago
Rankings
proxy.golang.org: github.com/VIDA-NYU/UrbanMapper
- Documentation: https://pkg.go.dev/github.com/VIDA-NYU/UrbanMapper#section-documentation
- License: mit
-
Latest release: v0.1.4
published 6 months ago
Rankings
pypi.org: urban-mapper
🗺️ Spatial Join & Enrich any urban layer given any external urban dataset of interest, streamline your urban analysis with Scikit-Learn-Like pipelines, and share your insights with the urban research community!
- Homepage: https://github.com/VIDA-NYU/UrbanMapper
- Documentation: https://urbanmapper.readthedocs.io/en/latest/
- License: MIT
-
Latest release: 0.1.4
published 6 months ago
Rankings
Maintainers (1)
Dependencies
- auctus-search *
- beartype >=0.19.0
- dependency-injector >=4.45.0
- folium >=0.19.4
- geopandas >=1.0.1
- ipython >=8.18.1
- ipywidgets >=8.1.5
- joblib >=1.4.2
- jupyter >=1.1.1
- jupyter-contrib-nbextensions >=0.7.0
- jupyter-server-ydoc >=1.1.0
- jupytergis-core >=0.2.1
- jupytergis-qgis >=0.2.1
- jupyterlab-widgets >=3.0.13
- mapclassify >=2.8.1
- matplotlib >=3.9.4
- millify >=0.1.1
- networkx >=3.2.1
- notebook ==6.4.12
- osmnx >=2.0.1
- pre-commit >=4.1.0
- psygnal >=0.12.0
- pyarrow >=19.0.1
- scikit-learn >=1.6.1
- skrub >=0.5.1
- tqdm >=4.67.1
- traitlets ==5.9.0
- actions/checkout v4 composite
- callowayproject/bump-my-version master composite
- readthedocs/actions/preview v1 composite
- actions/checkout v4 composite
- astral-sh/setup-uv v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- astral-sh/setup-uv v5 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- astral-sh/setup-uv v5 composite
- about-time ==4.2.1 development
- alembic ==1.15.2 development
- alive-progress ==3.2.0 development
- annotated-types ==0.7.0 development
- ansimarkup ==1.5.0 development
- anthropic ==0.49.0 development
- anyio ==4.9.0 development
- appdirs ==1.4.4 development
- appnope ==0.1.4 development
- argon2-cffi ==23.1.0 development
- argon2-cffi-bindings ==21.2.0 development
- arrow ==1.3.0 development
- asttokens ==3.0.0 development
- async-lru ==2.0.5 development
- attrs ==25.3.0 development
- babel ==2.17.0 development
- backports-tarfile ==1.2.0 development
- backrefs ==5.8 development
- beartype ==0.20.2 development
- beautifulsoup4 ==4.13.3 development
- black ==25.1.0 development
- bleach ==6.2.0 development
- branca ==0.8.1 development
- build ==1.2.2.post1 development
- cachetools ==5.5.2 development
- cairocffi ==1.7.1 development
- cairosvg ==2.7.1 development
- cattrs ==24.1.3 development
- certifi ==2025.1.31 development
- cffi ==1.17.1 development
- cfgv ==3.4.0 development
- charset-normalizer ==3.4.1 development
- click ==8.1.8 development
- colorama ==0.4.6 development
- comm ==0.1.4 development
- contourpy ==1.3.1 development
- coverage ==7.8.0 development
- cryptography ==44.0.2 development
- csscompressor ==0.9.5 development
- cssselect2 ==0.8.0 development
- cycler ==0.12.1 development
- data-profile-viewer ==0.2.7 development
- datamart-geo ==0.3.1 development
- datamart-profiler ==0.11 development
- debugpy ==1.8.14 development
- decorator ==5.2.1 development
- defusedxml ==0.7.1 development
- dependency-injector ==4.46.0 development
- deprecated ==1.2.18 development
- dill ==0.3.9 development
- distlib ==0.3.9 development
- distro ==1.9.0 development
- dnspython ==2.7.0 development
- docutils ==0.21.2 development
- duty ==1.6.0 development
- ell-ai ==0.0.17 development
- email-validator ==2.2.0 development
- exceptiongroup ==1.2.2 development
- execnet ==2.1.1 development
- executing ==2.2.0 development
- failprint ==1.0.3 development
- fastapi ==0.111.1 development
- fastapi-cli ==0.0.7 development
- fastjsonschema ==2.21.1 development
- filelock ==3.18.0 development
- folium ==0.19.5 development
- fonttools ==4.57.0 development
- fqdn ==1.5.1 development
- geographiclib ==2.0 development
- geopandas ==1.0.1 development
- geopy ==2.4.1 development
- ghp-import ==2.1.0 development
- git-changelog ==2.5.3 development
- gitdb ==4.0.12 development
- gitpython ==3.1.44 development
- google-auth ==2.38.0 development
- google-genai ==1.10.0 development
- grapheme ==0.6.0 development
- greenlet ==3.1.1 development
- griffe ==1.7.2 development
- groq ==0.22.0 development
- h11 ==0.14.0 development
- htmlmin2 ==0.1.13 development
- httpcore ==1.0.7 development
- httptools ==0.6.4 development
- httpx ==0.28.1 development
- id ==1.5.0 development
- identify ==2.6.9 development
- idna ==3.10 development
- importlib-metadata ==8.6.1 development
- iniconfig ==2.1.0 development
- ipykernel ==6.29.5 development
- ipython ==8.21.0 development
- ipython-genutils ==0.2.0 development
- ipywidgets ==8.1.6 development
- isoduration ==20.11.0 development
- jaraco-classes ==3.4.0 development
- jaraco-context ==6.0.1 development
- jaraco-functools ==4.1.0 development
- jedi ==0.19.2 development
- jeepney ==0.9.0 development
- jinja2 ==3.1.6 development
- jiter ==0.9.0 development
- joblib ==1.4.2 development
- jsmin ==3.0.1 development
- json5 ==0.12.0 development
- jsonpointer ==3.0.0 development
- jsonschema ==4.23.0 development
- jsonschema-specifications ==2024.10.1 development
- jupyter ==1.1.1 development
- jupyter-client ==8.6.3 development
- jupyter-collaboration ==3.1.2 development
- jupyter-collaboration-ui ==1.1.2 development
- jupyter-console ==6.6.3 development
- jupyter-contrib-core ==0.4.2 development
- jupyter-contrib-nbextensions ==0.7.0 development
- jupyter-core ==5.7.2 development
- jupyter-docprovider ==1.1.2 development
- jupyter-events ==0.12.0 development
- jupyter-highlight-selected-word ==0.2.0 development
- jupyter-lsp ==2.2.5 development
- jupyter-nbextensions-configurator ==0.6.4 development
- jupyter-resource-usage ==1.1.1 development
- jupyter-server ==2.15.0 development
- jupyter-server-fileid ==0.9.3 development
- jupyter-server-terminals ==0.5.3 development
- jupyter-server-ydoc ==1.1.2 development
- jupyter-ydoc ==3.0.3 development
- jupytergis ==0.4.4 development
- jupytergis-core ==0.4.4 development
- jupytergis-lab ==0.4.4 development
- jupytergis-qgis ==0.4.4 development
- jupyterlab ==4.4.0 development
- jupyterlab-pygments ==0.3.0 development
- jupyterlab-server ==2.27.3 development
- jupyterlab-widgets ==3.0.14 development
- jupytext ==1.17.0 development
- keyring ==25.6.0 development
- kiwisolver ==1.4.8 development
- loguru ==0.7.3 development
- lxml ==5.3.2 development
- mako ==1.3.10 development
- mapclassify ==2.8.1 development
- markdown ==3.7 development
- markdown-callouts ==0.4.0 development
- markdown-exec ==1.10.3 development
- markdown-it-py ==3.0.0 development
- markupsafe ==3.0.2 development
- matplotlib ==3.10.1 development
- matplotlib-inline ==0.1.7 development
- mdit-py-plugins ==0.4.2 development
- mdurl ==0.1.2 development
- mergedeep ==1.3.4 development
- millify ==0.1.1 development
- mistune ==3.1.3 development
- mkdocs ==1.6.1 development
- mkdocs-autorefs ==1.4.1 development
- mkdocs-coverage ==1.1.0 development
- mkdocs-gen-files ==0.5.0 development
- mkdocs-get-deps ==0.2.0 development
- mkdocs-git-revision-date-localized-plugin ==1.4.5 development
- mkdocs-jupyter ==0.25.1 development
- mkdocs-literate-nav ==0.6.2 development
- mkdocs-material ==9.6.11 development
- mkdocs-material-extensions ==1.3.1 development
- mkdocs-minify-plugin ==0.8.0 development
- mkdocstrings ==0.29.1 development
- mkdocstrings-python ==1.16.10 development
- more-itertools ==10.6.0 development
- mypy ==1.15.0 development
- mypy-extensions ==1.0.0 development
- nbclient ==0.10.2 development
- nbconvert ==7.16.6 development
- nbformat ==5.10.4 development
- nbstripout ==0.8.1 development
- nest-asyncio ==1.6.0 development
- networkx ==3.4.2 development
- nh3 ==0.2.21 development
- nodeenv ==1.9.1 development
- notebook ==6.4.12 development
- notebook-shim ==0.2.4 development
- numpy ==2.2.4 development
- openai ==1.72.0 development
- opentelemetry-api ==1.32.0 development
- osmnx ==2.0.2 development
- overrides ==7.7.0 development
- packaging ==24.2 development
- paginate ==0.5.7 development
- pandas ==2.2.3 development
- pandocfilters ==1.5.1 development
- parso ==0.8.4 development
- pathspec ==0.12.1 development
- pexpect ==4.9.0 development
- pillow ==10.4.0 development
- platformdirs ==4.3.7 development
- pluggy ==1.5.0 development
- pre-commit ==4.2.0 development
- prometheus-client ==0.21.1 development
- prompt-toolkit ==3.0.50 development
- psutil ==5.9.8 development
- psygnal ==0.12.0 development
- ptyprocess ==0.7.0 development
- pure-eval ==0.2.3 development
- pyarrow ==19.0.1 development
- pyasn1 ==0.6.1 development
- pyasn1-modules ==0.4.2 development
- pycparser ==2.22 development
- pycrdt ==0.12.12 development
- pycrdt-websocket ==0.15.4 development
- pydantic ==2.11.3 development
- pydantic-core ==2.33.1 development
- pygments ==2.19.1 development
- pymdown-extensions ==10.14.3 development
- pyogrio ==0.10.0 development
- pyparsing ==3.2.3 development
- pyproj ==3.7.1 development
- pyproject-hooks ==1.2.0 development
- pytest ==8.3.5 development
- pytest-cov ==6.1.1 development
- pytest-randomly ==3.16.0 development
- pytest-xdist ==3.6.1 development
- python-dateutil ==2.9.0.post0 development
- python-dotenv ==1.1.0 development
- python-json-logger ==3.3.0 development
- python-multipart ==0.0.20 development
- pytz ==2025.2 development
- pywin32 ==310 development
- pywin32-ctypes ==0.2.3 development
- pywinpty ==2.0.15 development
- pyyaml ==6.0.2 development
- pyyaml-env-tag ==0.1 development
- pyzmq ==26.4.0 development
- rapidfuzz ==3.13.0 development
- reacttrs ==0.2.1 development
- readme-renderer ==44.0 development
- referencing ==0.36.2 development
- regex ==2024.11.6 development
- requests ==2.32.3 development
- requests-toolbelt ==1.0.0 development
- rfc3339-validator ==0.1.4 development
- rfc3986 ==2.0.0 development
- rfc3986-validator ==0.1.1 development
- rich ==14.0.0 development
- rich-toolkit ==0.14.1 development
- rpds-py ==0.24.0 development
- rsa ==4.9 development
- ruff ==0.11.5 development
- scikit-learn ==1.6.1 development
- scipy ==1.15.2 development
- secretstorage ==3.3.3 development
- semver ==3.0.4 development
- send2trash ==1.8.3 development
- setuptools ==78.1.0 development
- shapely ==2.1.0 development
- shellingham ==1.5.4 development
- six ==1.17.0 development
- skrub ==0.5.3 development
- smmap ==5.0.2 development
- sniffio ==1.3.1 development
- soupsieve ==2.6 development
- sqlalchemy ==2.0.40 development
- sqlite-anyio ==0.2.3 development
- sqlmodel ==0.0.24 development
- stack-data ==0.6.3 development
- starlette ==0.37.2 development
- terminado ==0.18.1 development
- thefuzz ==0.22.1 development
- threadpoolctl ==3.6.0 development
- tinycss2 ==1.4.0 development
- tomli ==2.2.1 development
- tornado ==6.4.2 development
- tqdm ==4.67.1 development
- traitlets ==5.9.0 development
- twine ==6.1.0 development
- typer ==0.15.2 development
- types-markdown ==3.7.0.20250322 development
- types-python-dateutil ==2.9.0.20241206 development
- types-pyyaml ==6.0.12.20250402 development
- typing-extensions ==4.13.2 development
- typing-inspection ==0.4.0 development
- tzdata ==2025.2 development
- uri-template ==1.3.0 development
- urllib3 ==2.4.0 development
- uvicorn ==0.30.6 development
- uvloop ==0.21.0 development
- virtualenv ==20.30.0 development
- watchdog ==6.0.0 development
- watchfiles ==1.0.5 development
- wcwidth ==0.2.13 development
- webcolors ==24.11.1 development
- webencodings ==0.5.1 development
- websocket-client ==1.8.0 development
- websockets ==15.0.1 development
- widgetsnbextension ==4.0.14 development
- win32-setctime ==1.2.0 development
- wrapt ==1.17.2 development
- xyzservices ==2025.1.0 development
- yjs-widgets ==0.4.0 development
- ypywidgets ==0.9.7 development
- zipp ==3.21.0 development