{"id":31582285,"url":"https://github.com/maps-as-data/mapreader","last_synced_at":"2025-10-08T17:23:14.495Z","repository":{"id":40265131,"uuid":"430661738","full_name":"maps-as-data/MapReader","owner":"maps-as-data","description":"A computer vision pipeline for exploring and analyzing images at scale","archived":false,"fork":false,"pushed_at":"2025-09-19T16:39:29.000Z","size":461442,"stargazers_count":120,"open_issues_count":83,"forks_count":19,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-09-29T11:13:59.187Z","etag":null,"topics":["article","computer-vision","deep-learning","digital-humanities","hut23","hut23-96","machine-learning","maps","pytorch","spatial-data"],"latest_commit_sha":null,"homepage":"https://mapreader.readthedocs.io/en/latest/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maps-as-data.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-22T10:29:48.000Z","updated_at":"2025-09-19T16:39:30.000Z","dependencies_parsed_at":"2025-05-14T03:44:38.877Z","dependency_job_id":"8ef5bb5c-f1ea-462e-9979-689c9fec6ee1","html_url":"https://github.com/maps-as-data/MapReader","commit_stats":{"total_commits":1005,"total_committers":14,"mean_commits":71.78571428571429,"dds":0.4805970149253731,"last_synced_commit":"8ba4cb33df5aa77c07c4a7946b00eb00038cdefb"},"previous_names":["maps-as-data/mapreader","living-with-machines/mapreader"],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/maps-as-data/MapReader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maps-as-data%2FMapReader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maps-as-data%2FMapReader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maps-as-data%2FMapReader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maps-as-data%2FMapReader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maps-as-data","download_url":"https://codeload.github.com/maps-as-data/MapReader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maps-as-data%2FMapReader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278532355,"owners_count":26002346,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["article","computer-vision","deep-learning","digital-humanities","hut23","hut23-96","machine-learning","maps","pytorch","spatial-data"],"created_at":"2025-10-05T22:54:04.869Z","updated_at":"2025-10-05T22:54:06.745Z","avatar_url":"https://github.com/maps-as-data.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MapReader\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors)\n[![PyPI](https://img.shields.io/pypi/v/MapReader)](https://pypi.org/project/mapreader/)\n[![](https://readthedocs.org/projects/mapreader/badge/?version=latest)](https://mapreader.readthedocs.io/en/latest)\n![License](https://img.shields.io/badge/License-MIT-yellow.svg)\n![Integration Tests badge](https://github.com/Living-with-machines/MapReader/actions/workflows/mr_ci.yml/badge.svg)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.13643609.svg)](https://zenodo.org/records/13643609)\n[![CodeCov](https://codecov.io/gh/maps-as-data/MapReader/graph/badge.svg?token=38GQ3O1GB5)](https://codecov.io/gh/maps-as-data/MapReader)\n[![JOSS Paper](https://joss.theoj.org/papers/10.21105/joss.06434/status.svg)](https://doi.org/10.21105/joss.06434)\n\n## Table of Contents\n\n- [MapReader](#mapreader)\n  - [Table of Contents](#table-of-contents)\n  - [What is MapReader?](#what-is-mapreader)\n  - [Overview](#overview)\n    - [MapReader classification pipeline](#mapreader-classification-pipeline)\n    - [MapReader text spotting pipeline](#mapreader-classification-pipeline)\n  - [Documentation](#documentation)\n  - [What is included in this repo?](#what-is-included-in-this-repo)\n    - [What is not included in this repo?](#what-is-not-included-in-this-repo)\n  - [How to cite MapReader](#how-to-cite-mapreader)\n  - [Acknowledgements](#acknowledgements)\n  - [Contributors](#contributors)\n\n---\n\u003c!--- sphinx-include ---\u003e\n\n## What is MapReader?\n\n**MapReader is a open-source python library for exploring and analyzing map images at scale.**\n\nIt contains two different pipelines:\n\n- Classification pipeline: This pipeline enables users to fine-tune a classification model and predict the labels of patches created from a parent image.\n- Text spotting pipeline: This pipeline enables users to detect and recognize text in map images.\n\nMapReader was developed in the [Living with Machines](https://livingwithmachines.ac.uk/) project to analyze large collections of historical maps but is a _**generalizable**_ computer vision tool which can be applied to _**any images**_ in a wide variety of domains.\n\n## Overview\n\n### MapReader classification pipeline\n\nThe MapReader classification pipeline enables users to train a classification model to recognize visual features within map images and to identify patches containing these features across entire map collections:\n\n\u003cfigure align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/maps-as-data/MapReader/main/docs/source/_static/pipeline_explained.png\"\n        alt=\"MapReader pipeline\"\n        width=\"70%\"\u003e\n\u003c/figure\u003e\n\n### MapReader text spotting pipeline\n\nThe MapReader text spotting pipeline enables users to detect and recognize text in map images using a pre-trained text spotting model:\n\n\u003cfigure align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/maps-as-data/MapReader/main/docs/source/_static/text-spotting-pipeline.png\"\n        alt=\"MapReader text spotting pipeline\"\n        width=\"70%\"\u003e\n\u003c/figure\u003e\n\n## Documentation\n\nThe MapReader documentation can be found at https://mapreader.readthedocs.io/en/latest/.\n\n**New users** should refer to the [Installation instructions](https://mapreader.readthedocs.io/en/latest/getting-started/installation-instructions/index.html) and [Input guidance](https://mapreader.readthedocs.io/en/latest/using-mapreader/input-guidance/) for help with the initial set up of MapReader.\n\n**All users** should refer to our [User Guide](https://mapreader.readthedocs.io/en/latest/using-mapreader/) for guidance on how to use MapReader.\nThis contains end-to-end instructions on how to use the MapReader pipeline.\n\n**Developers and contributors** may also want to refer to the [API documentation](https://mapreader.readthedocs.io/en/latest/in-depth-resources/api/mapreader/) and [Contribution guide](https://mapreader.readthedocs.io/en/latest/community-and-contributions/contribution-guide/) for guidance on how to contribute to the MapReader package.\n\n\n## Stay in touch\n\n**All users** are encouraged to join our community! Please refer to the [Community and contributions](https://mapreader.readthedocs.io/en/latest/community-and-contributions/events.html) page for information on ways to get involved.\n\n**Join our Slack workspace!**\nPlease fill out [this form](https://forms.gle/dXjECHZQkwrZ3Xpt9) to receive an invitation to the Slack workspace.\n\n## What is included in this repo?\n\nThis repository contains everything needed for running MapReader.\n\nThe repository is structured as follows:\n\n- `mapreader/`: Contains the source code for the MapReader library.\n- `docs/`: Contains the documentation for the MapReader library.\n- `tests/` and `test_text_spotting/`: Contains the tests for the MapReader library.\n\n### What is not included in this repo?\n\nOur worked examples can be found in the [mapreader-examples](https://github.com/maps-as-data/MapReader-examples) repository.\n\nWe also have a number of other MapReader and map related repositories which can be found on the [maps-as-data](https://github.com/maps-as-data) GitHub organisation page.\n\n## How to cite MapReader\n\nIf you use MapReader in your work, please cite:\n- Our [JOSS paper](https://doi.org/10.21105/joss.06434) - to acknowledge the software irrespective of the version you used.\n- Our [Zenodo record](https://zenodo.org/records/13643609) - to acknowledge the specific version of the software you used (or use the \"Cite all versions?\" option if your specific version isn't there).\n- Optionally, our [SIGSPATIAL paper](https://dl.acm.org/doi/10.1145/3557919.3565812) to acknowledge the development of the software and the research behind it.\n\n\u003c!-- Add bibtext entries for the papers here --\u003e\n\n## Acknowledgements\n\nThis work was supported by Living with Machines (AHRC grant AH/S01179X/1), Data/Culture (AHRC grant AH/Y00745X/1) and The Alan Turing Institute (EPSRC grant EP/N510129/1).\n\nLiving with Machines, funded by the UK Research and Innovation (UKRI) Strategic Priority Fund, is a multidisciplinary collaboration delivered by the Arts and Humanities Research Council (AHRC), with The Alan Turing Institute, the British Library and the Universities of Cambridge, East Anglia, Exeter, and Queen Mary University of London.\n\nMaps above reproduced with the permission of the National Library of Scotland https://maps.nls.uk/index.html\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://www.turing.ac.uk/people/researchers/katherine-mcdonough\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/20363927?v=4?s=100\" width=\"100px;\" alt=\"Katie McDonough\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKatie McDonough\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#research-kmcdono2\" title=\"Research\"\u003e🔬\u003c/a\u003e \u003ca href=\"#ideas-kmcdono2\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=kmcdono2\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#projectManagement-kmcdono2\" title=\"Project Management\"\u003e📆\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/pulls?q=is%3Apr+reviewed-by%3Akmcdono2\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#talk-kmcdono2\" title=\"Talks\"\u003e📢\u003c/a\u003e \u003ca href=\"#tutorial-kmcdono2\" title=\"Tutorials\"\u003e✅\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://danielwilson.info\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/34318222?v=4?s=100\" width=\"100px;\" alt=\"Daniel C.S. Wilson\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDaniel C.S. Wilson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#research-dcsw2\" title=\"Research\"\u003e🔬\u003c/a\u003e \u003ca href=\"#ideas-dcsw2\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#talk-dcsw2\" title=\"Talks\"\u003e📢\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=dcsw2\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kasra-hosseini\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/1899856?v=4?s=100\" width=\"100px;\" alt=\"Kasra Hosseini\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKasra Hosseini\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=kasra-hosseini\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-kasra-hosseini\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#research-kasra-hosseini\" title=\"Research\"\u003e🔬\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/pulls?q=is%3Apr+reviewed-by%3Akasra-hosseini\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#talk-kasra-hosseini\" title=\"Talks\"\u003e📢\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/rwood-97\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/72076688?v=4?s=100\" width=\"100px;\" alt=\"Rosie Wood\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRosie Wood\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=rwood-97\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=rwood-97\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#ideas-rwood-97\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"#talk-rwood-97\" title=\"Talks\"\u003e📢\u003c/a\u003e \u003ca href=\"#tutorial-rwood-97\" title=\"Tutorials\"\u003e✅\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/pulls?q=is%3Apr+reviewed-by%3Arwood-97\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#maintenance-rwood-97\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"#research-rwood-97\" title=\"Research\"\u003e🔬\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.westerling.nu\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7298727?v=4?s=100\" width=\"100px;\" alt=\"Kalle Westerling\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKalle Westerling\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=kallewesterling\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=kallewesterling\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#maintenance-kallewesterling\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/pulls?q=is%3Apr+reviewed-by%3Akallewesterling\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#talk-kallewesterling\" title=\"Talks\"\u003e📢\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://maps.nls.uk\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3666702?v=4?s=100\" width=\"100px;\" alt=\"Chris Fleet\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eChris Fleet\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#data-ChrisFleet\" title=\"Data\"\u003e🔣\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/kasparvonbeelen\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11618160?v=4?s=100\" width=\"100px;\" alt=\"Kaspar Beelen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKaspar Beelen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#ideas-kasparvonbeelen\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/pulls?q=is%3Apr+reviewed-by%3Akasparvonbeelen\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e \u003ca href=\"#research-kasparvonbeelen\" title=\"Research\"\u003e🔬\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/andrewphilipsmith\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/5346065?v=4?s=100\" width=\"100px;\" alt=\"Andy Smith\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndy Smith\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=andrewphilipsmith\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=andrewphilipsmith\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"#mentoring-andrewphilipsmith\" title=\"Mentoring\"\u003e🧑‍🏫\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/pulls?q=is%3Apr+reviewed-by%3Aandrewphilipsmith\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://mradamcox.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10427268?v=4?s=100\" width=\"100px;\" alt=\"Adam Cox\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAdam Cox\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=mradamcox\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/maps-as-data/MapReader/commits?author=mradamcox\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaps-as-data%2Fmapreader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaps-as-data%2Fmapreader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaps-as-data%2Fmapreader/lists"}