Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ The following table shows which versions of MapReader are compatible with which

## Pre-release

### Removed

- Worked examples removed from MapReader code repo - see instead https://github.com/maps-as-data/mapreader-examples for worked examples ([#555](https://github.com/maps-as-data/MapReader/pull/555))

_Add new changes here_

## [v1.6.3](https://github.com/Living-with-machines/MapReader/releases/tag/v1.6.3) (2025-02-11)
Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
- [MapReader text spotting pipeline](#mapreader-classification-pipeline)
- [Documentation](#documentation)
- [What is included in this repo?](#what-is-included-in-this-repo)
- [What is not included in this repo?](#what-is-not-included-in-this-repo)
- [How to cite MapReader](#how-to-cite-mapreader)
- [Acknowledgements](#acknowledgements)
- [Contributors](#contributors)
Expand Down Expand Up @@ -88,7 +89,12 @@ The repository is structured as follows:
- `mapreader/`: Contains the source code for the MapReader library.
- `docs/`: Contains the documentation for the MapReader library.
- `tests/` and `test_text_spotting/`: Contains the tests for the MapReader library.
- `worked_examples/`: Contains worked examples of how to use the MapReader library.

### What is not included in this repo?

Our worked examples can be found in the [mapreader-examples](https://github.com/maps-as-data/MapReader-examples) repository.

We 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.

## How to cite MapReader

Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
How to write a tutorial or worked example
==========================================

If you are using MapReader in your own work, we would love for you to showcase an example of how you are using MapReader by writing a new tutorial or worked example.
If you are using MapReader in your own work, we would love for you to showcase an example of how you are using MapReader by writing a new tutorial or worked example to our worked example repository.

Before you begin
----------------

If you are currently unfamiliar with using GitHub for collaboration, remember to take a look at our :doc:`GitHub guide </in-depth-resources/github-basics>`.

Before you begin writing your tutorial, you should ensure your tutorial/worked example has a corresponding issue on the `MapReader repository <https://github.com/Living-with-machines/MapReader>`_ (or create one if needed).
Before you begin writing your tutorial, you should ensure your tutorial/worked example has a corresponding issue on the `mapreader-examples repository <https://github.com/maps-as-data/mapreader-examples>`_ (or create one if needed).
You should then either assign yourself to the issue or comment on it saying you will be working on making this tutorial.
This ensures that other people know what you are working on.

You will then need to fork the `MapReader repository <https://github.com/Living-with-machines/MapReader>`_ in order to make your changes.
You will then need to fork the `mapreader-examples repository <https://github.com/maps-as-data-mapreader-examples>`_ in order to make your changes.

Writing your tutorial or worked example
----------------------------------------

You can write your tutorial/worked example in any way you like but should save it in the ``worked_examples`` folder.
We suggest using a `Jupyter notebook <https://jupyter-notebook.readthedocs.io/en/latest/>`_.
You can write your tutorial/worked example in any way you like, we suggest using a `Jupyter notebook <https://jupyter-notebook.readthedocs.io/en/latest/>`_.

Take a look through our current :doc:`worked examples </in-depth-resources/worked-examples/index>` for inspiration.

When you are finished
---------------------

Once you have finished writing your tutorial/worked example, please create a new `pull request <https://github.com/Living-with-machines/MapReader/pulls>`_ to let us know you'd like us to look at your work.
Once you have finished writing your tutorial/worked example, please create a new `pull request <https://github.com/maps-as-data/mapreader-examples/pulls>`_ to let us know you'd like us to look at your work.

If possible, please link your pull request to your corresponding GitHub issue so that we can see that these are related.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,31 +11,18 @@ Classification of one-inch OS maps

.. image:: /_static/tutorial_classification_one_inch_maps_001.png
:width: 400px
:target: https://github.com/Living-with-machines/MapReader/tree/main/worked_examples/geospatial
:target: https://github.com/maps-as-data/mapreader-examples/tree/main/notebooks/geospatial/classification_one_inch_maps

We have provided two examples of how to use MapReader to identify railspace patches in one-inch OS maps.
Both examples demonstrate how to use MapReader with maps hosted on a tileserver.

Our examples show a full end-to-end use of the MapReader pipeline, including downloading, loading and patchifying map images, annotating patches to create training data, training a model and using the model to classify patches.

The ``classification_one_inch_maps`` example demonstrates how to use MapReader to classify patches using a standard patch-level classification model in which patches are used as inputs to the model.
It can be found `here <https://github.com/Living-with-machines/MapReader/blob/main/worked_examples/geospatial/classification_one_inch_maps/Pipeline.ipynb>`__.
It can be found `here <https://github.com/maps-as-data/mapreader-examples/blob/main/notebooks/geospatial/classification_one_inch_maps/Pipeline.ipynb>`__.

The ``context_classification_one_inch_maps`` example demonstrates how to use MapReader to classify patches using a context-level classification model in which patches and their surrounding patches (i.e. context) are used as inputs to the model.
It can be found `here <https://github.com/Living-with-machines/MapReader/blob/main/worked_examples/geospatial/context_classification_one_inch_maps/Pipeline.ipynb>`__.


Annotation examples
-------------------

Alongside the classification examples, we have provided two worked examples of how to use our annotator.

The ``how-to-annotate-patches`` example demonstrates how to use the annotator to create training data for patch classification using OS one-inch maps. It can be found `here <https://github.com/Living-with-machines/MapReader/blob/geospatial_readme/worked_examples/geospatial/annotation_examples/how-to-annotate-patches.ipynb>`__.

The ``how-to-annotate-model-predictions`` example shows how the annotator could also be used to evaluate the predictions from a classification model. It can be found `here <https://github.com/Living-with-machines/MapReader/blob/geospatial_readme/worked_examples/geospatial/annotation_examples/how-to-annotate-model-predictions.ipynb>`__.

.. note::
The "predictions" in the second example are random values used for demonstration purposes. In reality, instead of loading in ``patch_df.csv``, you would load a ``predictions_patch_df.csv`` generated by MapReader after inference to annotate model predictions.
It can be found `here <https://github.com/maps-as-data/mapreader-examples/tree/main/notebooks/geospatial/context_classification_one_inch_maps>`__.


Workshop notebooks
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ Classification of plant phenotypes

.. image:: /_static/tutorial_classification_plant_phenotype.png
:width: 400px
:target: https://github.com/Living-with-machines/MapReader/blob/main/worked_examples/non-geospatial/classification_plant_phenotype/Pipeline.ipynb
:target: https://github.com/maps-as-data/mapreader-examples/tree/main/notebooks/non-geospatial/classification_plant_phenotype

In our ``classification_plant_phenotype`` example, we demonstrate how to use MapReader to classify plant phenotypes in images of plants.
Importantly, this worked example demonstrates how to use MapReader with non-georeferenced images (e.g. non-georeferenced map images).
It can be found `here <https://github.com/Living-with-machines/MapReader/blob/main/worked_examples/non-geospatial/classification_plant_phenotype/Pipeline.ipynb>`__.
It can be found `here <https://github.com/maps-as-data/mapreader-examples/blob/main/notebooks/non-geospatial/classification_plant_phenotype/Pipeline.ipynb>`__.

Classification of MNIST digits
------------------------------

.. image:: /_static/tutorial_classification_mnist.png
:width: 400px
:target: https://github.com/Living-with-machines/MapReader/blob/main/worked_examples/non-geospatial/classification_mnist/Pipeline.ipynb
:target: https://github.com/maps-as-data/mapreader-examples/tree/main/notebooks/non-geospatial/classification_mnist

In our ``classification_mnist`` example, we demonstrate how to use MapReader to classify MNIST digits.
Importantly, this example demonstrates how to use MapReader to classify whole images instead of patches and therefore how MapReader can generalize to much broader use cases.
It can be found `here <https://github.com/Living-with-machines/MapReader/blob/main/worked_examples/non-geospatial/classification_mnist/Pipeline.ipynb>`__.
It can be found `here <https://github.com/maps-as-data/mapreader-examples/blob/main/notebooks/non-geospatial/classification_mnist/Pipeline.ipynb>`__.
25 changes: 0 additions & 25 deletions worked_examples/annotation_tasks.yaml

This file was deleted.

11 changes: 0 additions & 11 deletions worked_examples/geospatial/NLS_metadata/README.md

This file was deleted.

31 changes: 0 additions & 31 deletions worked_examples/geospatial/README.md

This file was deleted.

Loading